]> git.proxmox.com Git - pmg-gui.git/blob - js/StatStore.js
StatStore.js: allow store with undefined staturl, implement setUrl helper
[pmg-gui.git] / js / StatStore.js
1 Ext.define('PMG.data.StatStore', {
2 extend: 'Ext.data.Store',
3 alias: 'store.pmgStatStore',
4
5 autoDestroy: true,
6
7 staturl: undefined,
8
9 includeTimeSpan: false,
10
11 setUrl: function(url) {
12 var me = this;
13
14 me.staturl = url;
15 me.proxy.extraParams = {};
16 me.reload();
17 },
18
19 reload: function() {
20 var me = this;
21
22 Ext.Ajax.abort(me.proxy.activeRequest);
23 delete me.proxy.activeRequest;
24
25 if (me.staturl === undefined) {
26 me.proxy.extraParams = {};
27 me.setData([]);
28 return;
29 }
30
31 var ts = PMG.StatTimeSelector.getTimeSpan();
32
33 var last = me.proxy.extraParams;
34
35 if (last.starttime === ts.starttime && last.endtime === ts.endtime)
36 return; // avoid repeated loads
37
38 me.proxy.url = me.staturl;
39 me.proxy.extraParams = { starttime: ts.starttime, endtime: ts.endtime };
40
41 var timespan = 3600;
42 if (me.includeTimeSpan) {
43 var period = ts.endtime - ts.starttime;
44 if (period <= 86400*7) {
45 timespan = 3600;
46 } else {
47 timespan = 3600*24;
48 }
49 me.proxy.extraParams.timespan = timespan;
50 }
51
52 me.load();
53 },
54
55 proxy: {
56 type: 'proxmox'
57 },
58
59 constructor: function(config) {
60 var me = this;
61
62 config = config || {};
63
64 me.mon(Ext.GlobalEvents, 'pmgStatTimeSelectorUpdate', me.reload, me);
65
66 me.callParent([config]);
67
68 me.reload();
69 }
70 });