Merge pull request #17 from Little-Ben/globalInfos
statistics: show global statistics image (globalGraph) - v2
This commit is contained in:
commit
339d7c7683
29
README.md
29
README.md
|
@ -97,6 +97,35 @@ Examples for `nodeInfos`:
|
|||
|
||||
In order to have statistics images available, you have to run the backend with parameter `--with-rrd` or generate them in other ways.
|
||||
|
||||
## globalInfos (array, optional)
|
||||
|
||||
This option allows to show global statistics on statistics page depending on following case-sensitive parameters:
|
||||
|
||||
- `name` caption of statistics segment in infobox
|
||||
- `href` absolute or relative URL to statistics image
|
||||
- `thumbnail` absolute or relative URL to thumbnail image,
|
||||
can be the same like `href`
|
||||
- `caption` is shown, if `thumbnail` is not present (no thumbnail in infobox)
|
||||
|
||||
In contrast to `nodeInfos` there is no template substitution in `href`, `thumbnail` or `caption`.
|
||||
|
||||
Examples for `globalInfos`:
|
||||
|
||||
"globalInfos": [
|
||||
{ "name": "Wochenstatistik",
|
||||
"href": "nodes/globalGraph.png",
|
||||
"thumbnail": "nodes/globalGraph.png",
|
||||
"caption": "Bild mit Wochenstatistik"
|
||||
},
|
||||
{ "name": "Jahresstatistik",
|
||||
"href": "nodes/globalGraph52.png",
|
||||
"thumbnail": "nodes/globalGraph52.png",
|
||||
"caption": "Bild mit Jahresstatistik"
|
||||
}
|
||||
]
|
||||
|
||||
In order to have global statistics available, you have to run the backend with parameter `--with-rrd` (this only creates globalGraph.png) or generate them in other ways.
|
||||
|
||||
# Building
|
||||
|
||||
Just run the following command from the meshviewer directory:
|
||||
|
|
|
@ -74,7 +74,7 @@ function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Linklist,
|
|||
var lostnodeslist = new SimpleNodelist("lost", "lastseen", router, "Verschwundene Knoten")
|
||||
var nodelist = new Nodelist(router)
|
||||
var linklist = new Linklist(linkScale, router)
|
||||
var statistics = new Proportions()
|
||||
var statistics = new Proportions(config)
|
||||
var about = new About()
|
||||
|
||||
dataTargets.push(meshstats)
|
||||
|
|
|
@ -1,11 +1,44 @@
|
|||
define(["chroma-js", "virtual-dom", "numeral-intl"],
|
||||
function (Chroma, V, numeral) {
|
||||
|
||||
return function () {
|
||||
return function (config) {
|
||||
var self = this
|
||||
var fwTable, hwTable, autoTable, gwTable
|
||||
var scale = Chroma.scale("YlGnBu").mode("lab")
|
||||
|
||||
function showStatGlobal(o) {
|
||||
var content, caption
|
||||
|
||||
if (o.thumbnail) {
|
||||
content = document.createElement("img")
|
||||
content.src = o.thumbnail
|
||||
}
|
||||
|
||||
if (o.caption) {
|
||||
caption = o.caption
|
||||
|
||||
if (!content)
|
||||
content = document.createTextNode(caption)
|
||||
}
|
||||
|
||||
var p = document.createElement("p")
|
||||
|
||||
if (o.href) {
|
||||
var link = document.createElement("a")
|
||||
link.target = "_blank"
|
||||
link.href = o.href
|
||||
link.appendChild(content)
|
||||
|
||||
if (caption && o.thumbnail)
|
||||
link.title = caption
|
||||
|
||||
p.appendChild(link)
|
||||
} else
|
||||
p.appendChild(content)
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
function count(nodes, key, f) {
|
||||
var dict = {}
|
||||
|
||||
|
@ -123,6 +156,15 @@ define(["chroma-js", "virtual-dom", "numeral-intl"],
|
|||
gwTable = document.createElement("table")
|
||||
gwTable.classList.add("proportion")
|
||||
el.appendChild(gwTable)
|
||||
|
||||
if (config.globalInfos)
|
||||
config.globalInfos.forEach( function (globalInfo) {
|
||||
h2 = document.createElement("h2")
|
||||
h2.textContent = globalInfo.name
|
||||
el.appendChild(h2)
|
||||
|
||||
el.appendChild(showStatGlobal(globalInfo))
|
||||
})
|
||||
}
|
||||
|
||||
return self
|
||||
|
|
|
@ -221,6 +221,9 @@ button.close {
|
|||
table {
|
||||
padding: 0 $buttondistance;
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
|
|
Loading…
Reference in a new issue