]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/StatStore.js
dashboard: fix untranslated use of "Subscription"
[pmg-gui.git] / js / StatStore.js
index 3a9bb04b3fcb7db2d3138cb57dad80d313138253..0fc1d31c6c2a8b27b6ebfa264e33f1268afd62bb 100644 (file)
@@ -7,19 +7,45 @@ Ext.define('PMG.data.StatStore', {
     staturl: undefined,
 
     includeTimeSpan: false,
-    
+
+    setUrl: function(url, extraparam) {
+       var me = this;
+
+       me.proxy.abort(); // abort pending requests
+
+       me.staturl = url;
+       me.proxy.extraParams = {};
+       if (extraparam !== undefined) {
+           me.proxy.extraParams = extraparam;
+       }
+
+       me.setData([]);
+    },
+
     reload: function() {
        var me = this;
 
+       me.proxy.abort(); // abort pending requests
+
+       if (me.staturl === undefined) {
+           me.proxy.extraParams = {};
+           me.setData([]);
+           return;
+       }
+
        var ts = PMG.StatTimeSelector.getTimeSpan();
 
        var last = me.proxy.extraParams;
-       
-       if (last.starttime === ts.starttime && last.endtime === ts.endtime)
+
+       if (last.starttime === ts.starttime && last.endtime === ts.endtime) {
            return; // avoid repeated loads
+       }
 
        me.proxy.url = me.staturl;
-       me.proxy.extraParams = { starttime: ts.starttime, endtime: ts.endtime };
+       Ext.apply(me.proxy.extraParams, {
+           starttime: ts.starttime,
+           endtime: ts.endtime,
+       });
 
        var timespan = 3600;
        if (me.includeTimeSpan) {
@@ -31,28 +57,29 @@ Ext.define('PMG.data.StatStore', {
            }
            me.proxy.extraParams.timespan = timespan;
        }
-       
+
        me.load();
     },
 
     proxy: {
-       type: 'proxmox'
+       type: 'proxmox',
     },
 
+    autoReload: true,
+
     constructor: function(config) {
        var me = this;
 
        config = config || {};
 
-       // staturl is required
-       if (!config.staturl) {
-           throw "no staturl specified";
-       }
-       
-       me.mon(Ext.GlobalEvents, 'pmgStatTimeSelectorUpdate', me.reload, me);
-       
+       me.mon(Ext.GlobalEvents, 'pmgStatTimeSelectorUpdate', function() {
+           if (me.autoReload) {
+               me.reload();
+           }
+       }, me);
+
        me.callParent([config]);
 
        me.reload();
-   }
+   },
 });