]> source.dussan.org Git - rspamd.git/commitdiff
[WebUI] Fix graph selectors state resetting
authorAlexander Moisseev <moiseev@mezonplus.ru>
Mon, 9 Jan 2017 16:10:38 +0000 (19:10 +0300)
committerAlexander Moisseev <moiseev@mezonplus.ru>
Mon, 9 Jan 2017 16:10:38 +0000 (19:10 +0300)
on reconnect / reload

Reported by: @denhli

interface/js/rspamd.js

index be757ce4d69a63fd82142e1909bfdcc561eb8594..9ce9c76cbc900557dcd6f3befd46c82fe7ad8fa2 100644 (file)
         var checked_server = "All SERVERS";
 
         var timer_id = [];
-        var selected = []; // Keep graph selectors state
+        var selData; // Graph's dataset selector state
 
         // Bind event handlers to selectors
         $("#selData").change(function () {
-            selected.selData = this.value;
+            selData = this.value;
             tabClick("#throughput_nav");
         });
         $("#selConvert").change(function () {
                     getChart();
                     break;
                 case "#throughput_nav":
-                    getGraphData(selected.selData);
+                    getGraphData(selData);
                     const autoRefresh = {
                         hourly: 60000,
                         daily: 300000
                     };
-                    timer_id.throughput = Visibility.every(autoRefresh[selected.selData] || 3600000, function () {
-                        getGraphData(selected.selData);
+                    timer_id.throughput = Visibility.every(autoRefresh[selData] || 3600000, function () {
+                        getGraphData(selData);
                     });
                     break;
                 case "#configuration_nav":
             height: 370,
             yAxisLabel: "Message rate, msg/s",
 
-            type: selected.selType,
-            interpolate: selected.selInterpolate,
-            convert: selected.selConvert,
-
             legend: {
                 space: 140,
                 entries: [{
 
         function initGraph() {
             // Get selectors' current state
-            var selIds = ["selData", "selConvert", "selType", "selInterpolate"];
-            selIds.forEach(function (id) {
+            function getSelector(id) {
                 var e = document.getElementById(id);
-                selected[id] = e.options[e.selectedIndex].value;
-            });
+                return e.options[e.selectedIndex].value;
+            }
+
+            selData = getSelector("selData");
 
-            graph = new D3Evolution("graph", graph_options);
+            graph = new D3Evolution("graph", $.extend({}, graph_options, {
+                type:        getSelector("selType"),
+                interpolate: getSelector("selInterpolate"),
+                convert:     getSelector("selConvert"),
+            }));
         }
 
         function getRrdSummary(json) {