luci/applications/luci-app-statistics/htdocs/luci-static/resources/statistics/rrdtool/definitions/olsrd.js
Martin Schitter d91702cb22 luci-app-statistics: protect nested formating litteral
Signed-off-by: Martin Schitter <ms+git@mur.at>
2021-11-06 12:52:51 +01:00

142 lines
3.3 KiB
JavaScript

/*
* Copyright 2011 Manuel Munz <freifunk at somakoma dot de>
* Licensed to the public under the Apache License 2.0.
*/
'use strict';
'require baseclass';
return baseclass.extend({
title: _('OLSRd'),
rrdargs: function(graph, host, plugin, plugin_instance, dtype) {
var g = [];
if (plugin_instance == "routes") {
g.push({
/* diagram data description */
title: "%H: Total amount of OLSR routes",
vlabel: "n",
number_format: "%5.0lf",
data: {
types: [ "routes" ],
options: {
routes: {
color: "ff0000",
title: "Total number of routes"
}
}
}
}, {
title: "%H: Average route ETX",
vlabel: "ETX",
detail: true,
number_format: "%5.1lf",
data: {
instances: [ "average" ], /* falls es irgendwann mal welche pro ip gibt, wie bei links, dann werden die hier excludiert */
types: [ "route_etx" ],
options: {
route_etx: {
title: "Average route ETX"
}
}
}
}, {
title: "%H: Average route metric",
vlabel: "metric",
detail: true,
number_format: "%5.1lf",
data: {
instances: [ "average" ], /* falls es irgendwann mal welche pro ip gibt, wie bei links, dann werden die hier excludiert */
types: [ "route_metric" ],
options: {
route_metric: {
title: "Average route metric"
}
}
}
});
}
else if (plugin_instance == "links") {
g.push({
/* diagram data description */
title: "%H: Total amount of OLSR neighbours",
vlabel: "n",
number_format: "%5.0lf",
data: {
instances: [ "" ],
types: [ "links" ],
options: {
links: {
color: "00ff00",
title: "Number of neighbours"
}
}
}
});
var instances = graph.dataInstances(host, plugin, plugin_instance, "signal_quality").sort();
/* define one diagram per host, containing the rx and lq values */
for (var i = 0; i < instances.length; i += 2) {
var dsn1 = "signal_quality_%s_value".format(instances[i].replace(/\W+/g, '_')),
dsn2 = "signal_quality_%s_value".format(instances[i+1].replace(/\W+/g, '_')),
host = instances[i].match(/^[^-]+-([^-]+)-.+$/),
host = host ? host[1] : 'avg',
opts = {};
opts[dsn1] = { color: "00ff00", title: "LQ (%s)".format(host) };
opts[dsn2] = { color: "0000ff", title: "NLQ (%s)".format(host), flip: true };
g.push({
title: "%%H: Signal Quality (%s)".format(host),
vlabel: "ETX",
number_format: "%5.2lf", detail: true,
data: {
types: [ "signal_quality" ],
instances: {
signal_quality: [ instances[i], instances[i+1] ],
},
options: opts
}
});
}
}
else if (plugin_instance == "topology") {
g.push({
title: "%H: Total amount of OLSR links",
vlabel: "n",
number_format: "%5.0lf",
data: {
instances: [ "" ],
types: [ "links" ],
options: {
links: {
color: "0000ff",
title: "Total number of links"
}
}
}
}, {
title: "%H: Average signal quality",
vlabel: "n",
number_format: "%5.2lf",
detail: true,
data: {
instances: [ "average" ], /* exclude possible per-ip stuff */
types: [ "signal_quality" ],
options: {
signal_quality: {
color: "0000ff",
title: "Average signal quality"
}
}
}
});
}
return g;
}
});