diff --git a/report.tmpl b/report.tmpl index cf29640..fd96242 100644 --- a/report.tmpl +++ b/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); - xs.sort(); - const k = (x) => new Date(1000 * x).toLocaleDateString('en-US', {month: 'numeric', day: 'numeric', weekday: 'short'}); - xs = xs.map(k); + if (xs && !isNaN(parseFloat(kify(xs[0])))) { + xs = xs.map(kify); + xs.sort((a, b) => parseFloat(a) - parseFloat(b)); + } else { + xs.sort(); + 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) {}