aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/ui/components/network-graph/network-graph.js
diff options
context:
space:
mode:
authorKoren Lev <korenlev@gmail.com>2017-09-29 01:38:18 +0300
committerYaron Yogev <yaronyogev@gmail.com>2017-10-03 09:46:58 +0000
commitd0adff06bed72f9a0edd7adccfa6a1111784bc8b (patch)
tree4b5eaf1107e6973b1eac636309a99c83074acbfc /ui/imports/ui/components/network-graph/network-graph.js
parentfbbaf20912c79bd99a5c3696850d70c11965f56b (diff)
release 1.0 calipso for opnfv apex
Change-Id: I3e63cd27c5f4d3756e67a07c749863a68e84dde2 Signed-off-by: Koren Lev <korenlev@gmail.com> (cherry picked from commit d32f75145676bacefde0d08a14680a5984623451)
Diffstat (limited to 'ui/imports/ui/components/network-graph/network-graph.js')
-rw-r--r--ui/imports/ui/components/network-graph/network-graph.js29
1 files changed, 25 insertions, 4 deletions
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,