]> git.proxmox.com Git - pve-manager.git/commitdiff
rrd display : avoid 2 refresh
authorAlexandre Derumier <aderumier@odiso.com>
Tue, 11 Jun 2013 09:12:58 +0000 (11:12 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 12 Jun 2013 04:51:38 +0000 (06:51 +0200)
Currently when we open a new summary panel

- we display the rrd with default hour timeframe
- then we refresh it
- then we update from timeframe selector

With this patch:
- We display the rrd with timeframe from selector, or if not defined default hour
- We update from timeframe selector value if timeframe && cf are differents from current value

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
www/manager/panel/RRDView.js

index 486a1951ce6f31bbe18680c4fced6d656bcc61d5..84d245004a7b533b1c7030a997b7e01b3dcd99aa 100644 (file)
@@ -5,14 +5,6 @@ Ext.define('PVE.panel.RRDView', {
     initComponent : function() {
        var me = this;
 
-       if (!me.timeframe) {
-           me.timeframe = 'hour';
-       }
-
-       if (!me.rrdcffn) {
-           me.rrdcffn = 'AVERAGE';
-       }
-
        if (!me.datasource) {
            throw "no datasource specified";
        }
@@ -21,6 +13,27 @@ Ext.define('PVE.panel.RRDView', {
            throw "no rrdurl specified";
        }
 
+       var stateid = 'pveRRDTypeSelection';
+       var sp = Ext.state.Manager.getProvider();
+       var stateinit = sp.get(stateid);
+
+       if (!me.timeframe) {
+           if(stateinit.timeframe){
+               me.timeframe = stateinit.timeframe;
+           }else{
+               me.timeframe = 'hour';
+           }
+       }
+
+       if (!me.rrdcffn) {
+           if(stateinit.rrdcffn){
+               me.rrdcffn = stateinit.cf;
+           }else{
+               me.rrdcffn = 'AVERAGE';
+           }
+       }
+
+
        var datasource = me.datasource;
 
        // fixme: dcindex??
@@ -33,7 +46,6 @@ Ext.define('PVE.panel.RRDView', {
            return url;
        };
 
-       var stateid = 'pveRRDTypeSelection';
 
        Ext.apply(me, {
            layout: 'fit',
@@ -45,9 +57,11 @@ Ext.define('PVE.panel.RRDView', {
            },
            applyState : function(state) {
                if (state && state.id) {
-                   me.timeframe = state.timeframe;
-                   me.rrdcffn = state.cf;
-                   me.reload_task.delay(10);
+                   if(state.timeframe !== me.timeframe || state.cf !== me.rrdcffn){
+                       me.timeframe = state.timeframe;
+                       me.rrdcffn = state.cf;
+                       me.reload_task.delay(10);
+                   }
                }
            }
        });
@@ -80,9 +94,6 @@ Ext.define('PVE.panel.RRDView', {
            me.reload_task.cancel();
        });
 
-       var sp = Ext.state.Manager.getProvider();
-       me.applyState(sp.get(stateid));
-
        var state_change_fn = function(prov, key, value) {
            if (key == stateid) {
                me.applyState(value);