From ec03340acbf414ccaee2f2ac9bed6fb68fe75674 Mon Sep 17 00:00:00 2001 From: Roman Bazalevsky Date: Fri, 13 Dec 2019 16:36:07 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=B8=20?= =?utf8?q?=D0=BD=D0=B0=20=D0=BE=D1=81=D1=8F=D1=85=20+=20=D0=B8=D1=81=D0=BA?= =?utf8?q?=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=BE=20=D0=B4=D0=B2=D0=BE=D0=B9?= =?utf8?q?=D0=BD=D0=BE=D0=B5=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?utf8?q?=D0=BD=D0=B8=D0=B5=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- web/squid.js | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/web/squid.js b/web/squid.js index dbcf25b..58a9542 100644 --- a/web/squid.js +++ b/web/squid.js @@ -1,6 +1,6 @@ urlbase="./api.php" -refresh = 500 +refresh = 1000 online_history = 60 graph_colors = [ @@ -39,6 +39,9 @@ timer = null assigned_colors = [] +current_time = null +time_labels = [] + var d = new Date(); var curr_day = d.getDate(); var curr_month = d.getMonth() + 1; @@ -402,11 +405,18 @@ function AddTraffic(label,b) { function ProduceOnline(res) { if (!online_traffic) { + current_time = null online_traffic = [] + time_labels = [] + cur = Date.now() + for (i = 1; i<=online_history; i++) { + cur = cur - refresh + time_labels.unshift(cur) + } config = { type: 'line', data: { - labels: new Array(online_history).fill('*'), + labels: time_labels, datasets: online_traffic, }, options: { @@ -416,6 +426,7 @@ function ProduceOnline(res) { responsive: true, scales: { xAxes: [{ + type: 'time', scaleLabel: { display: true, } @@ -427,6 +438,7 @@ function ProduceOnline(res) { }, scaleLabel: { display: true, + labelString: "Скорость, Кбит/c" } }] } @@ -434,13 +446,23 @@ function ProduceOnline(res) { } DrawGraph(config) } + + var delta + + if (current_time) { + delta = (Date.now() - current_time)/1000 + } else { + delta = 1 + } + + current_time = Date.now() + + time_labels.shift() + time_labels.push(current_time) for (i = online_traffic.length-1; i>=0; i--) { online_traffic[i].data.shift() online_traffic[i].data.push(0) - if (Math.max.apply(null,online_traffic[i].data) == 0) { - online_traffic.splice(i,1) - } } dictionary = res["dictionary"] @@ -483,11 +505,17 @@ function ProduceOnline(res) { new_online_connections[idx] = bytes - AddTraffic(username,bytes-last_bytes) + AddTraffic(username,8*(bytes-last_bytes)/(1024*delta)) } online_connections = new_online_connections + for (i = online_traffic.length-1; i>=0; i--) { + if (Math.max.apply(null,online_traffic[i].data) == 0) { + online_traffic.splice(i,1) + } + } + headerHTML = Macro("header-row",{DATA:MergeTH(dictionary)}) reportHTML = Macro("report-table",{HEADER:headerHTML,LINES:innerHTML}) @@ -589,7 +617,7 @@ function Rerun() { } function Online() { - timer = null + CancelRefresh() RefreshFilterPane() var header = document.getElementById("report-name") header.innerText = "Активные соединения" -- 2.34.1