proportions: count only values that are present

This commit is contained in:
Nils Schneider 2015-04-22 01:35:31 +02:00
parent d5a9c52788
commit f65e89aaca

View file

@ -6,7 +6,7 @@ define(["chroma-js", "virtual-dom", "numeral-intl"],
var fwTable, hwTable, autoTable, gwTable var fwTable, hwTable, autoTable, gwTable
var scale = Chroma.scale("YlGnBu").mode("lab") var scale = Chroma.scale("YlGnBu").mode("lab")
function count(nodes, key, def, f) { function count(nodes, key, f) {
var dict = {} var dict = {}
nodes.forEach( function (d) { nodes.forEach( function (d) {
@ -16,7 +16,7 @@ define(["chroma-js", "virtual-dom", "numeral-intl"],
v = f(v) v = f(v)
if (v === null) if (v === null)
v = def return
dict[v] = 1 + (v in dict ? dict[v] : 0) dict[v] = 1 + (v in dict ? dict[v] : 0)
}) })
@ -63,16 +63,18 @@ define(["chroma-js", "virtual-dom", "numeral-intl"],
nodeDict[d.nodeinfo.node_id] = d nodeDict[d.nodeinfo.node_id] = d
}) })
var fwDict = count(nodes, ["nodeinfo", "software", "firmware", "release"], "n/a") var fwDict = count(nodes, ["nodeinfo", "software", "firmware", "release"])
var hwDict = count(nodes, ["nodeinfo", "hardware", "model"], "n/a") var hwDict = count(nodes, ["nodeinfo", "hardware", "model"])
var autoDict = count(nodes, ["nodeinfo", "software", "autoupdater"], "deaktiviert", function (d) { var autoDict = count(nodes, ["nodeinfo", "software", "autoupdater"], function (d) {
if (d === null || !d.enabled) if (d === null)
return null return null
else else if (d.enabled)
return d.branch return d.branch
else
return "(deaktiviert)"
}) })
var gwDict = count(onlineNodes, ["statistics", "gateway"], "n/a", function (d) { var gwDict = count(onlineNodes, ["statistics", "gateway"], function (d) {
if (d === null) if (d === null)
return null return null