From f312ede1eaa0602d9fea23310c807d4ae2ffc390 Mon Sep 17 00:00:00 2001 From: Michael Debertol Date: Sat, 25 Dec 2021 02:07:19 +0100 Subject: [PATCH] show datapoints with 0 downloads Dates with zero downloads are not included in the downloaded data, so we have to insert new datapoints between the other datapoints. --- web/script.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/web/script.js b/web/script.js index 12c79747879b..aaba0be9345f 100644 --- a/web/script.js +++ b/web/script.js @@ -89,6 +89,28 @@ function updateDatasets() { }); } } + // Insert additional "0" data points between non-zero data points + for (let arch of Object.keys(datasets)) { + let dataset = datasets[arch]; + let dateInBetween = new Date(dataset.data[0].x); + let datasetIndex = 0; + // Don't show today and yesterday as 0. They might be zero because the data hasn't been updated yet. + const twoDaysAgo = new Date(); + twoDaysAgo.setDate(twoDaysAgo.getDate() - 2); + while (dateInBetween < twoDaysAgo) { + // Is dateInBetween the next element in the dataset? If not, insert a new element, otherwise skip to the next date. + if (dataset.data.length > datasetIndex && dataset.data[datasetIndex].x.getTime() === dateInBetween.getTime()) { + datasetIndex += 1; + } else { + dataset.data.push({ + x: new Date(dateInBetween), + y: 0 + }); + } + dateInBetween.setDate(dateInBetween.getDate() + 1); + } + dataset.data.sort((a, b) => a.x - b.x); + } chart.data.datasets = Object.values(datasets); chart.update(); updateBasicStats();