functions are good
parent
d38352f050
commit
2f3739b24f
42
report.tmpl
42
report.tmpl
|
|
@ -113,40 +113,48 @@
|
|||
}
|
||||
|
||||
function drawEventVolume(messages) {
|
||||
drawEventVolumeWith(
|
||||
messages,
|
||||
"eventVolume",
|
||||
(ts) => new Date(1000 * ts).
|
||||
toLocaleDateString('en-US', {month: 'numeric', day: 'numeric', weekday: 'short'}),
|
||||
(m) => m.EventName,
|
||||
);
|
||||
}
|
||||
|
||||
function drawEventVolumeWith(messages, documentId, kify, nameify) {
|
||||
const points = [];
|
||||
messages.forEach((m) => {
|
||||
points.push({x: m.TS, name: m.EventName});
|
||||
points.push({x: m.TS, name: nameify(m)});
|
||||
});
|
||||
|
||||
var xs = points.map((point) => point.x);
|
||||
if (xs && !isNaN(parseFloat(kify(xs[0])))) {
|
||||
xs = xs.map(kify);
|
||||
xs.sort((a, b) => parseFloat(a) - parseFloat(b));
|
||||
} else {
|
||||
xs.sort();
|
||||
const k = (x) => new Date(1000 * x).toLocaleDateString('en-US', {month: 'numeric', day: 'numeric', weekday: 'short'});
|
||||
xs = xs.map(k);
|
||||
xs = xs.map(kify);
|
||||
}
|
||||
xs = [...new Set(xs)];
|
||||
|
||||
const names = [...new Set(points.map((p) => p.name))];
|
||||
const nameAndData = names.map((name) => {
|
||||
return {
|
||||
name: name,
|
||||
data: xs.map((x) => points.filter((p) => { return p.name == name && k(p.x) == x }).length),
|
||||
data: xs.map((x) => points.filter((p) => { return p.name == name && kify(p.x) == x }).length),
|
||||
}
|
||||
});
|
||||
draw("eventVolume", xs, nameAndData);
|
||||
draw(documentId, xs, nameAndData);
|
||||
}
|
||||
|
||||
function drawEventVolumeByHour(messages) {
|
||||
var byHour = [];
|
||||
for(var i = 0; i < 24; i++)
|
||||
byHour.push(0);
|
||||
for(var m of messages) {
|
||||
var d = new Date(1000 * m.TS);
|
||||
byHour[d.getHours()] += 1;
|
||||
}
|
||||
byHour = byHour.map((cnt, idx) => {
|
||||
return {x: idx, y: cnt};
|
||||
});
|
||||
|
||||
draw("eventVolumeByHour", byHour);
|
||||
drawEventVolumeWith(
|
||||
messages,
|
||||
"eventVolumeByHour",
|
||||
(ts) => new Date(1000 * ts).getHours(),
|
||||
(m) => m.EventName,
|
||||
);
|
||||
}
|
||||
|
||||
function drawEventVolumeByAsset(messages) {}
|
||||
|
|
|
|||
Loading…
Reference in New Issue