From ec03340acbf414ccaee2f2ac9bed6fb68fe75674 Mon Sep 17 00:00:00 2001
From: Roman Bazalevsky <rvb@rvb.name>
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