diff --git a/html/force.js b/html/force.js index 6143c4e..9ea139e 100644 --- a/html/force.js +++ b/html/force.js @@ -187,12 +187,35 @@ var visible = {clients: true, vpn: true} function reload() { d3.json("nodes.json", function(json) { + // update existing nodes with new info + // XXX inefficient data structure + json.nodes.forEach(function(d, i) { + var n + force.nodes().forEach(function(x) {if (x.id == d.id) n = x}) + if (n) { + for (var key in d) + if (d.hasOwnProperty(key)) + n[key] = d[key] + json.nodes[i] = n + } + }) + + json.links.forEach(function(d, i) { + var n + force.links().forEach(function(x) {if (x.id == d.id) n = x}) + if (n) { + json.links[i] = n + } + }) + + // replace indices with real objects json.links.forEach( function(d) { if (typeof d.source == "number") d.source = json.nodes[d.source]; if (typeof d.target == "number") d.target = json.nodes[d.target]; }) + // count uplinks json.links.forEach(function(d) { var node, other @@ -214,28 +237,6 @@ function reload() { } }) - // update existing nodes with new info - json.nodes.forEach(function(d, i) { - var n - force.nodes().forEach(function(x) {if (x.id == d.id) n = x}) - if (n) { - for (var key in d) - if (d.hasOwnProperty(key)) - n[key] = d[key] - - json.nodes[i] = n - } - }) - - json.links.forEach(function(d) { - var n - force.links().forEach(function(x) {if (x.id == d.id) n = x}) - if (n) { - d.source = n.source - d.target = n.target - } - }) - data = json update()