diff --git a/lib/gui.js b/lib/gui.js index 2e85f8d..4ce989d 100644 --- a/lib/gui.js +++ b/lib/gui.js @@ -85,7 +85,6 @@ function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist, fanoutUnfiltered.add(meshstats) fanoutUnfiltered.add(newnodeslist) fanoutUnfiltered.add(lostnodeslist) - fanoutUnfiltered.add(infobox) fanout.add(nodelist) fanout.add(linklist) fanout.add(statistics) diff --git a/lib/infobox/main.js b/lib/infobox/main.js index d90497d..deebc03 100644 --- a/lib/infobox/main.js +++ b/lib/infobox/main.js @@ -2,7 +2,6 @@ define(["infobox/link", "infobox/node", "infobox/location"], function (Link, Nod return function (config, sidebar, router) { var self = this var el - var nodeDict function destroy() { if (el && el.parentNode) { @@ -34,7 +33,7 @@ define(["infobox/link", "infobox/node", "infobox/location"], function (Link, Nod self.gotoNode = function (d) { create() - new Node(config, el, router, d, nodeDict) + new Node(config, el, router, d) } self.gotoLink = function (d) { @@ -47,14 +46,6 @@ define(["infobox/link", "infobox/node", "infobox/location"], function (Link, Nod new Location(config, el, router, d) } - self.setData = function (d) { - nodeDict = {} - d.graph.nodes.forEach(function (d) { - nodeDict[d.id.substr(0, 8)] = d - }) - - } - return self } }) diff --git a/lib/infobox/node.js b/lib/infobox/node.js index 38b56e8..f975f64 100644 --- a/lib/infobox/node.js +++ b/lib/infobox/node.js @@ -313,21 +313,7 @@ define(["moment", "numeral", "tablesort", "tablesort.numeric"], return document.createTextNode(text) } - function lookupNode(d, nodeDict) { - if (!d) - return null - - if (d.node || d.id) - return d - - var node = nodeDict[d.substr(0, 8)] - if (!node) - return d - - return node - } - - function showGateway(d, router, nodeDict) { + function showGateway(d, router) { var nh if (dictGet(d.statistics, ["nexthop"])) nh = dictGet(d.statistics, ["nexthop"]) @@ -337,13 +323,27 @@ define(["moment", "numeral", "tablesort", "tablesort.numeric"], if (!gw) return null return function (el) { - if (nh) { - el.appendChild(createLink(lookupNode(nh, nodeDict), router)) - if (nh.substr(0, 8) !== gw.substr(0, 8)) - el.appendChild(document.createTextNode(" -> ... -> ")) + var num = 0 + while (gw && nh && gw.id !== nh.id && num < 10) { + if (num !== 0) el.appendChild(document.createTextNode(" -> ")) + el.appendChild(createLink(nh, router)) + num++ + if (!nh.node || !nh.node.statistics) break + if (dictGet(nh.node.statistics, ["gateway"]).id !== gw.id) break + if (dictGet(nh.node.statistics, ["gateway_nexthop"])) + nh = dictGet(nh.node.statistics, ["gateway_nexthop"]) + else if (dictGet(nh.node.statistics, ["nexthop"])) + nh = dictGet(nh.node.statistics, ["nexthop"]) + else + break } - if (!nh || nh.substr(0, 8) !== gw.substr(0, 8)) - el.appendChild(createLink(lookupNode(gw, nodeDict), router)) + if (gw && nh && gw.id !== nh.id) { + if (num !== 0) el.appendChild(document.createTextNode(" -> ")) + num++ + el.appendChild(document.createTextNode("...")) + } + if (num !== 0) el.appendChild(document.createTextNode(" -> ")) + el.appendChild(createLink(gw, router)) } } @@ -424,7 +424,7 @@ define(["moment", "numeral", "tablesort", "tablesort.numeric"], return showStat(o, subst) } - return function(config, el, router, d, nodeDict) { + return function(config, el, router, d) { var attributes = document.createElement("table") attributes.classList.add("attributes") @@ -471,7 +471,7 @@ define(["moment", "numeral", "tablesort", "tablesort.numeric"], attributeEntry(attributes, "Arbeitsspeicher", showRAM(d)) attributeEntry(attributes, "IP Adressen", showIPs(d)) attributeEntry(attributes, "Webseite", showPages(d)) - attributeEntry(attributes, "Gewähltes Gateway", showGateway(d, router, nodeDict)) + attributeEntry(attributes, "Gewähltes Gateway", showGateway(d, router)) attributeEntry(attributes, "Autom. Updates", showAutoupdate(d)) attributeEntry(attributes, "Clients", showClients(d), showMeshClients(d)) diff --git a/lib/proportions.js b/lib/proportions.js index cf5f80d..f5b0b26 100644 --- a/lib/proportions.js +++ b/lib/proportions.js @@ -23,7 +23,7 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc var uplinkTable = document.createElement("table") uplinkTable.classList.add("proportion") - var gwNodesTable = document.createElement("table") + var gwNodesTable = document.createElement("table") gwNodesTable.classList.add("proportion") var gwClientsTable = document.createElement("table") @@ -119,8 +119,9 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc var onlineNodes = data.nodes.all.filter(online) var nodes = onlineNodes.concat(data.nodes.lost) var nodeDict = {} - data.graph.nodes.forEach(function (d) { - nodeDict[d.id.substr(0, 8)] = d + + data.nodes.all.forEach(function (d) { + nodeDict[d.nodeinfo.node_id] = d }) var statusDict = count(nodes, ["flags", "online"], function (d) { @@ -161,13 +162,6 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc if (d.id) return d.id - var n = nodeDict[d.substr(0, 8)] - if (!n) - return d - var name = dictGet(n, ["node", "nodeinfo", "hostname"]) - if (name) - return name - return d }) @@ -181,13 +175,6 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc if (d.id) return d.id - var n = nodeDict[d.substr(0, 8)] - if (!n) - return d - var name = dictGet(n, ["node", "nodeinfo", "hostname"]) - if (name) - return name - return d })