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 <[email protected]>
---
 www/manager/panel/RRDView.js |   41 ++++++++++++++++++++++++++---------------
 1 file changed, 26 insertions(+), 15 deletions(-)

diff --git a/www/manager/panel/RRDView.js b/www/manager/panel/RRDView.js
index 486a195..84d2450 100644
--- a/www/manager/panel/RRDView.js
+++ b/www/manager/panel/RRDView.js
@@ -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);
-- 
1.7.10.4

_______________________________________________
pve-devel mailing list
[email protected]
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to