]> arthur.barton.de Git - netdata.git/commitdiff
fixed refresh bug
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sun, 13 Apr 2014 04:45:44 +0000 (07:45 +0300)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sun, 13 Apr 2014 04:45:44 +0000 (07:45 +0300)
web/index.html

index 11a773fa301b8c051a2d725043c85a36cabbe62d..2e3f5cf930eaad1631227b4014703e7a3ec90ee2 100644 (file)
        // copy the chart c to mainchart
        // switch to main graphs screen
        function mainChart(c) {
-               if(mainchart && mainchart.chart) mainchart.chart.clearChart();
+               if(mainchart && mainchart.chart) {
+                       mainchart.chart.clearChart();
+                       mainchart.chart = null;
+               }
 
                mainchart = $.extend(true, {}, c);
 
                last_main_chart_avg = g;
        }
 
-       var stop_refreshing = 0;
+       var stop_refreshing = 1;
        function playGraphs() {
                stop_refreshing = 0;
                $('.mainchart_play_button').button('play');
        // make sure it gets updated frequently
        function mainChartRefresh() {
                if(!mainchart || mode != MODE_MAIN) {
-                       if(mainchart) mainchart.clearChart();
+                       if(mainchart) {
+                               if(mainchart.chart) {
+                                       mainchart.chart.clearChart();
+                                       mainchart.chart = null;
+                               }
+                               mainchart = null;
+                       }
                        showThumbGraphs();
                        return;
                }
        function thumbChartsRefresh() {
                if(mycharts.length == 0 || mode != MODE_THUMBS) triggerRefresh();
 
+               if(last_thumb_updated >= mycharts.length) last_thumb_updated = 0;
+
                // find a chart to refresh
                var orig = last_thumb_updated;
                last_thumb_updated++;
                if(last_thumb_updated >= mycharts.length) last_thumb_updated = 0;
 
-               while(last_thumb_updated != orig) {
+               while(1) {
                        if(refreshChart(mycharts[last_thumb_updated], chartsRefresh)) break;
 
                        last_thumb_updated++;
                        if(last_thumb_updated >= mycharts.length) last_thumb_updated = 0;
+
+                       if(last_thumb_updated == orig) break;
                }
 
                // no chart refreshed
        function groupChartsRefresh() {
                if(!group_charts || group_charts.length == 0 || mode != MODE_GROUP_THUMBS) triggerRefresh();
 
+               if(last_group_updated >= group_charts.length) last_group_updated = 0;
+
                // find a chart to refresh
                var orig = last_group_updated;
                last_group_updated++;
                if(last_group_updated >= group_charts.length) last_group_updated = 0;
 
-               while(last_group_updated != orig) {
+               while(1) {
                        if(refreshChart(group_charts[last_group_updated], chartsRefresh)) break;
 
                        last_group_updated++;
                        if(last_group_updated >= group_charts.length) last_group_updated = 0;
+
+                       if(last_group_updated == orig) break;
                }
 
                // no chart refreshed
        // refresh the proper chart
        var timeout;
        function chartsRefresh() {
-               if(stop_refreshing) return;
-
                if(timeout) {
                        clearTimeout(timeout);
                        timeout = null;
                }
 
+               if(stop_refreshing) return;
+
                     if(mode == MODE_THUMBS)            thumbChartsRefresh();
                else if(mode == MODE_GROUP_THUMBS)  groupChartsRefresh();
                else if(mode == MODE_MAIN)              mainChartRefresh();
 
                if(!group_charts) thumbsScrollPosition = window.pageYOffset;
 
-               mode = MODE_MAIN;
-
                document.getElementById('maingraph_container').style.display = 'block';
                document.getElementById('thumbgraphs_container').style.display = 'none';
                document.getElementById('groupgraphs_container').style.display = 'none';
 
                if(group_charts) clearGroupGraphs();
 
-               playGraphs();
+               mode = MODE_MAIN;
+               if(stop_refreshing) playGraphs();
        }
 
        function showThumbGraphs() {
-               mode = MODE_THUMBS;
-
                document.getElementById('maingraph_container').style.display = 'none';
                document.getElementById('thumbgraphs_container').style.display = 'block';
                document.getElementById('groupgraphs_container').style.display = 'none';
                if(thumbsScrollPosition) window.scrollTo(0, thumbsScrollPosition);
 
                if(mainchart) {
-                       if(mainchart.chart) mainchart.chart.clearChart();
+                       if(mainchart.chart) {
+                               mainchart.chart.clearChart();
+                               mainchart.chart = null;
+                       }
                        mainchart = null;
                }
                if(group_charts) clearGroupGraphs();
 
-               playGraphs();
+               mode = MODE_THUMBS;
+               if(stop_refreshing) playGraphs();
        }
 
        function showGroupGraphs() {
 
                if(!mainchart) thumbsScrollPosition = window.pageYOffset;
 
-               mode = MODE_GROUP_THUMBS;
-
                document.getElementById('maingraph_container').style.display = 'none';
                document.getElementById('thumbgraphs_container').style.display = 'none';
                document.getElementById('groupgraphs_container').style.display = 'block';
                window.scrollTo(0, 0);
 
                if(mainchart) {
-                       if(mainchart.chart) mainchart.chart.clearChart();
+                       if(mainchart.chart) {
+                               mainchart.chart.clearChart();
+                               mainchart.chart = null;
+                       }
                        mainchart = null;
                }
 
-               playGraphs();
+               mode = MODE_GROUP_THUMBS;
+               if(stop_refreshing) playGraphs();
        }
 
        function groupWidth() {
                        group_charts = null;
                }
 
-               document.getElementById("groupgroups").innerHTML = "";
-               mode = MODE_THUMBS;
-               playGraphs();
+               document.getElementById("groupgraphs").innerHTML = "";
        }
 
        </script>