Browse Source

update statistics

add vpn-gw statistic
use the name of the region, not the site_code
rename site -> region
Karsten Böddeker 7 years ago
parent
commit
8ea9ee8e37
2 changed files with 45 additions and 10 deletions
  1. 1 1
      lib/infobox/node.js
  2. 44 9
      lib/proportions.js

+ 1 - 1
lib/infobox/node.js

@@ -219,7 +219,7 @@ define(["moment", "numeral", "tablesort", "tablesort.numeric"],
     attributeEntry(attributes, "Hardware",  dictGet(d.nodeinfo, ["hardware", "model"]))
     attributeEntry(attributes, "Primäre MAC", dictGet(d.nodeinfo, ["network", "mac"]))
     attributeEntry(attributes, "Node ID", dictGet(d.nodeinfo, ["node_id"]))
-    attributeEntry(attributes, "Site", showSite(d))
+    attributeEntry(attributes, "Region", showSite(d))
     attributeEntry(attributes, "Firmware", showFirmware(d))
     attributeEntry(attributes, "Uptime", showUptime(d))
     attributeEntry(attributes, "Teil des Netzes", showFirstseen(d))

+ 44 - 9
lib/proportions.js

@@ -20,6 +20,9 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc
     var autoTable = document.createElement("table")
     autoTable.classList.add("proportion")
 
+    var gwTable = document.createElement("table")
+    gwTable.classList.add("proportion")
+
     var siteTable = document.createElement("table")
     siteTable.classList.add("proportion")
 
@@ -141,14 +144,41 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc
         else
           return "(deaktiviert)"
       })
-      var siteDict = count(nodes, ["nodeinfo", "system", "site_code"])
+      var gwDict = count(nodes, ["statistics", "vpn_peers", "groups", "backbone", "peers"], function (d) {
+        var peers = ""
+        for ( var gw in d ) {
+          if ( d[gw] !== null ) {
+            if (peers !== "")
+              peers += " & "
+            peers += gw
+          }
+        }
+        if (peers !== "")
+          return peers
+	else
+          return null
+      })
+      var siteDict = count(nodes, ["nodeinfo", "system"], function (d) {
+        if (d === null)
+          return null
+        else if ( d.site_name ) {
+          var region = d.site_name.split(" - ")[1]
+          if (region)
+            return region
+          else
+            return d.site_name
+          }
+        else
+          return null
+      })
 
       fillTable("Status", statusTable, statusDict.sort(function (a, b) { return b[1] - a[1] }))
       fillTable("Firmware", fwTable, fwDict.sort(function (a, b) { return vercomp(b[0], a[0]) }))
-      fillTable("Hardware", hwTable, hwDict.sort(function (a, b) { return b[1] - a[1] }))
       fillTable("Koordinaten", geoTable, geoDict.sort(function (a, b) { return b[1] - a[1] }))
       fillTable("Autom. Updates", autoTable, autoDict.sort(function (a, b) { return b[1] - a[1] }))
-      fillTable("Site", siteTable, siteDict.sort(function (a, b) { return b[1] - a[1] }))
+      fillTable("VPN-GW", gwTable, gwDict.sort(function (a, b) { return vercomp(a[0], b[0]) }))
+      fillTable("Region", siteTable, siteDict.sort(function (a, b) { return b[1] - a[1] }))
+      fillTable("Hardware", hwTable, hwDict.sort(function (a, b) { return b[1] - a[1] }))
     }
 
     self.render = function (el) {
@@ -163,11 +193,6 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc
       el.appendChild(h2)
       el.appendChild(fwTable)
 
-      h2 = document.createElement("h2")
-      h2.textContent = "Hardwaremodelle"
-      el.appendChild(h2)
-      el.appendChild(hwTable)
-
       h2 = document.createElement("h2")
       h2.textContent = "Auf der Karte sichtbar"
       el.appendChild(h2)
@@ -179,10 +204,20 @@ define(["chroma-js", "virtual-dom", "numeral-intl", "filters/genericnode", "verc
       el.appendChild(autoTable)
 
       h2 = document.createElement("h2")
-      h2.textContent = "Site"
+      h2.textContent = "VPN-Gateway"
+      el.appendChild(h2)
+      el.appendChild(gwTable)
+
+      h2 = document.createElement("h2")
+      h2.textContent = "Region"
       el.appendChild(h2)
       el.appendChild(siteTable)
 
+      h2 = document.createElement("h2")
+      h2.textContent = "Hardwaremodelle"
+      el.appendChild(h2)
+      el.appendChild(hwTable)
+
       if (config.globalInfos)
           config.globalInfos.forEach( function (globalInfo) {
             h2 = document.createElement("h2")