Add direct linking to user home

This commit is contained in:
2021-08-10 19:17:54 +02:00
parent d76b26b6d0
commit a7bf875dcc
3 changed files with 100 additions and 34 deletions

View File

@@ -1,24 +1,24 @@
function loadGraph(graph, stat, minutes, interval){
function loadGraph(graph, stat, minutes, interval) {
let today = new Date()
let start = new Date()
start.setMinutes(start.getMinutes()-minutes)
start.setMinutes(start.getMinutes() - minutes)
fetch(
apiEndpoint+"/user/time_series/" + stat +
"?start="+start.toISOString() +
"&end="+today.toISOString() +
"&interval="+interval
apiEndpoint + "/user/time_series/" + stat +
"?start=" + start.toISOString() +
"&end=" + today.toISOString() +
"&interval=" + interval
).then(resp => {
if (!resp.ok) { return Promise.reject("Error: "+resp.status);}
if (!resp.ok) { return Promise.reject("Error: " + resp.status); }
return resp.json();
}).then(resp => {
resp.timestamps.forEach((val, idx) => {
let date = new Date(val);
let dateStr = ("00"+(date.getMonth()+1)).slice(-2);
dateStr += "-"+("00"+date.getDate()).slice(-2);
dateStr += " "+("00"+date.getHours()).slice(-2);
dateStr += ":"+("00"+date.getMinutes()).slice(-2);
resp.timestamps[idx] = " "+dateStr+" "; // Poor man's padding
let dateStr = ("00" + (date.getMonth() + 1)).slice(-2);
dateStr += "-" + ("00" + date.getDate()).slice(-2);
dateStr += " " + ("00" + date.getHours()).slice(-2);
dateStr += ":" + ("00" + date.getMinutes()).slice(-2);
resp.timestamps[idx] = " " + dateStr + " "; // Poor man's padding
});
graph.data.labels = resp.timestamps;
graph.data.datasets[0].data = resp.amounts;
@@ -35,27 +35,53 @@ function loadGraph(graph, stat, minutes, interval){
document.getElementById("total_downloads").innerText = formatThousands(total);
} else if (stat == "bandwidth") {
document.getElementById("total_bandwidth").innerText = formatDataVolume(total, 3);
} else if (stat == "direct_bandwidth") {
document.getElementById("total_direct_bandwidth").innerText = formatDataVolume(total, 3);
}
}).catch(e => {
console.error("Error requesting time series: "+e);
console.error("Error requesting time series: " + e);
})
}
function loadDirectBW() {
let today = new Date()
let start = new Date()
start.setDate(start.getDate() - 30)
fetch(
apiEndpoint + "/user/time_series/direct_bandwidth" +
"?start=" + start.toISOString() +
"&end=" + today.toISOString() +
"&interval=60"
).then(resp => {
if (!resp.ok) { return Promise.reject("Error: " + resp.status); }
return resp.json();
}).then(resp => {
let total = resp.amounts.reduce((accum, val) => accum += val, 0);
document.getElementById("direct_bandwidth_month").innerText = formatDataVolume(total, 4)
}).catch(e => {
console.error("Error requesting time series: " + e);
})
}
let graphViews = drawGraph(document.getElementById("views_chart"), "Views", "number");
let graphDownloads = drawGraph(document.getElementById("downloads_chart"), "Downloads", "number");
let graphBandwidth = drawGraph(document.getElementById("bandwidth_chart"), "Bandwidth", "bytes");
let graphDirectBandwidth = drawGraph(document.getElementById("direct_bandwidth_chart"), "Direct Bandwidth", "bytes");
let graphTimeout = null;
function updateGraphs(minutes, interval, live) {
if (graphTimeout !== null) { clearTimeout(graphTimeout) }
if (live) {
graphTimeout = setTimeout(() => {updateGraphs(minutes, interval, true)}, 10000)
graphTimeout = setTimeout(() => { updateGraphs(minutes, interval, true) }, 10000)
}
loadGraph(graphViews, "views", minutes, interval);
loadGraph(graphDownloads, "downloads", minutes, interval);
loadGraph(graphBandwidth, "bandwidth", minutes, interval);
loadGraph(graphDirectBandwidth, "direct_bandwidth", minutes, interval);
loadDirectBW()
}
// Default
updateGraphs(10080, 60, false);
updateGraphs(1440, 1, true);