Select Git revision
statistics.js
Forked from
firmware / FFS Gluon
Source project has a limited visibility.
-
Matthias Schiffer authored
It is not supported by all browsers yet. Also change load display always to display 2 decimal digits (as it is read from the kernel with 2 decimal digits). Fixes #606
Matthias Schiffer authoredIt is not supported by all browsers yet. Also change load display always to display 2 decimal digits (as it is read from the kernel with 2 decimal digits). Fixes #606
statistics.js 6.62 KiB
"use strict"
define(["lib/helper"], function (Helper) {
function streamElement(type, stream) {
var el = document.createElement(type)
el.destroy = stream.onValue(update)
function update(d) {
el.textContent = d
}
return el
}
function streamNode(stream) {
var el = document.createTextNode("")
el.destroy = stream.onValue(update)
function update(d) {
el.textContent = d
}
return el
}
function mkRow(table, label, stream) {
var tr = document.createElement("tr")
var th = document.createElement("th")
var td = streamElement("td", stream)
th.textContent = label
tr.appendChild(th)
tr.appendChild(td)
table.appendChild(tr)
tr.destroy = function () {
td.destroy()
table.removeChild(tr)
}
return tr
}
function mkTrafficRow(table, children, label, stream, selector) {
var tr = document.createElement("tr")
var th = document.createElement("th")
var td = document.createElement("td")
th.textContent = label
var traffic = stream.slidingWindow(2, 2)
var pkts = streamNode(traffic.map(deltaUptime(selector + ".packets")).map(prettyPackets))
var bw = streamNode(traffic.map(deltaUptime(selector + ".bytes")).map(prettyBits))
var bytes = streamNode(stream.map(selector).map(".bytes").map(prettyBytes))
td.appendChild(pkts)
td.appendChild(document.createElement("br"))
td.appendChild(bw)
td.appendChild(document.createElement("br"))
td.appendChild(bytes)
tr.appendChild(th)
tr.appendChild(td)
table.appendChild(tr)
children.push(pkts)
children.push(bw)
children.push(bytes)
}
function mkMeshVPN(el, stream) {
var children = {}
var init = false