aboutsummaryrefslogtreecommitdiffstats
path: root/interface/js
diff options
context:
space:
mode:
authorAlexander Moisseev <moiseev@mezonplus.ru>2017-01-01 18:13:22 +0300
committerAlexander Moisseev <moiseev@mezonplus.ru>2017-01-01 18:13:22 +0300
commit0d65bb8602a7d2398caec8dd97501e8391b71fe4 (patch)
treef5a62280057a36a554d5fea5e4e73d71a07b06f7 /interface/js
parent74be226aad438bf5bdc4612f09c1e9fe8b48ee38 (diff)
downloadrspamd-0d65bb8602a7d2398caec8dd97501e8391b71fe4.tar.gz
rspamd-0d65bb8602a7d2398caec8dd97501e8391b71fe4.zip
[WebUI] Add Throughput graph autorefreshing (#820)
Diffstat (limited to 'interface/js')
-rw-r--r--interface/js/rspamd.js23
1 files changed, 18 insertions, 5 deletions
diff --git a/interface/js/rspamd.js b/interface/js/rspamd.js
index 2ea7eeca7..6c0af1dc6 100644
--- a/interface/js/rspamd.js
+++ b/interface/js/rspamd.js
@@ -32,14 +32,14 @@
var graph;
var symbols;
var read_only = false;
- var stat_timeout;
+ var timer_id = [];
var selected = []; // Keep graph selectors state
// Bind event handlers to selectors
$("#selData").change(function () {
selected.selData = this.value;
- getGraphData(this.value);
+ tabClick("#throughput_nav");
});
$("#selConvert").change(function () {
graph.convert(this.value);
@@ -51,6 +51,12 @@
graph.interpolate(this.value);
});
+ function stopTimers() {
+ for (var key in timer_id) {
+ Visibility.stop(timer_id[key]);
+ }
+ }
+
function disconnect() {
if (pie) {
pie.destroy();
@@ -69,7 +75,7 @@
symbols.destroy();
symbols = null;
}
- Visibility.stop(stat_timeout);
+ stopTimers();
cleanCredentials();
connectRSPAMD();
// window.location.reload();
@@ -80,7 +86,7 @@
if ($(tab_id).attr('disabled')) return;
$(tab_id).attr('disabled', true);
- Visibility.stop(stat_timeout);
+ stopTimers();
if (tab_id === "#refresh") {
tab_id = "#" + $('.navbar-nav .active > a' ).attr('id');
@@ -89,13 +95,20 @@
switch (tab_id) {
case "#status_nav":
statWidgets();
- stat_timeout = Visibility.every(10000, function () {
+ timer_id.status = Visibility.every(10000, function () {
statWidgets();
});
getChart();
break;
case "#throughput_nav":
getGraphData(selected.selData);
+ const autoRefresh = {
+ hourly: 60000,
+ daily: 300000
+ };
+ timer_id.throughput = Visibility.every(autoRefresh[selected.selData] || 3600000, function () {
+ getGraphData(selected.selData);
+ });
break;
case "#configuration_nav":
getActions();