From d0adff06bed72f9a0edd7adccfa6a1111784bc8b Mon Sep 17 00:00:00 2001 From: Koren Lev Date: Fri, 29 Sep 2017 01:38:18 +0300 Subject: release 1.0 calipso for opnfv apex Change-Id: I3e63cd27c5f4d3756e67a07c749863a68e84dde2 Signed-off-by: Koren Lev (cherry picked from commit d32f75145676bacefde0d08a14680a5984623451) --- .../ui/components/network-graph/network-graph.js | 29 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'ui/imports/ui/components/network-graph/network-graph.js') diff --git a/ui/imports/ui/components/network-graph/network-graph.js b/ui/imports/ui/components/network-graph/network-graph.js index 68b3a57..04b69e3 100644 --- a/ui/imports/ui/components/network-graph/network-graph.js +++ b/ui/imports/ui/components/network-graph/network-graph.js @@ -27,6 +27,7 @@ Template.NetworkGraph.onCreated(function() { instance.simpleState = { graphData: null }; + instance.prevForce = null; instance.autorun(function () { let data = Template.currentData(); @@ -73,11 +74,27 @@ Template.NetworkGraph.rendered = function() { instance.onDragStart, instance.onDragEnd, instance.onGroupOver, - instance.onLinkOver + instance.onLinkOver, + function onNewForce(newForce) { + if (instance.prevForce) { + instance.prevForce.stop(); + } + instance.prevForce = newForce; + } ); }); }; +Template.NetworkGraph.onDestroyed(function () { + let instance = Template.instance(); + let graphEl = instance.$('.sm-graph')[0]; + let svg = d3.select(graphEl).select('svg'); + if (instance.prevForce) { + instance.prevForce.stop(); + } + + svg.remove(); +}); /* * Events */ @@ -138,10 +155,13 @@ function renderGraph( onDragStart, onDragEnd, onGroupOver, - onLinkOver + onLinkOver, + onNewForce ) { let force = genForceCola(cola, d3, w, h); + onNewForce(force); + let drag = force.drag() .on('start', function (_d) { onDragStart(); @@ -295,7 +315,8 @@ function genSvgNodes(g, nodes, drag, onNodeOver, onNodeOut, onNodeClick, onGroup onNodeOut(d._osmeta.nodeId); }) .on('click', function (d) { - if (R.path(['_osmeta', 'type'], d) === 'view_group') { + let type = R.defaultTo('', R.path(['_osmeta', 'type'], d)); + if (R.contains(type, ['view_group-host', 'view_group-switch'])) { onGroupNodeClick(d._osmeta.nodeId); } onNodeClick(d._osmeta.nodeId); @@ -624,7 +645,7 @@ function calcClosedGroupsNodes(rejectedGroups, prevViewNodes) { return R.append({ _osid: nodeId, _osmeta: { - type: 'view_group', + type: `view_group-${group.type}`, nodeId: group._osid, }, width: 60, -- cgit 1.2.3-korg