]> git.proxmox.com Git - pmg-gui.git/blob - js/StatStore.js
cleanup: use Ext.data.Proxy.Ajax.abort()
[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 me.proxy.abort(); // abort pending requests
23
24 if (me.staturl === undefined) {
25 me.proxy.extraParams = {};
26 me.setData([]);
27 return;
28 }
29
30 var ts = PMG.StatTimeSelector.getTimeSpan();
31
32 var last = me.proxy.extraParams;
33
34 if (last.starttime === ts.starttime && last.endtime === ts.endtime)
35 return; // avoid repeated loads
36
37 me.proxy.url = me.staturl;
38 me.proxy.extraParams = { starttime: ts.starttime, endtime: ts.endtime };
39
40 var timespan = 3600;
41 if (me.includeTimeSpan) {
42 var period = ts.endtime - ts.starttime;
43 if (period <= 86400*7) {
44 timespan = 3600;
45 } else {
46 timespan = 3600*24;
47 }
48 me.proxy.extraParams.timespan = timespan;
49 }
50
51 me.load();
52 },
53
54 proxy: {
55 type: 'proxmox'
56 },
57
58 constructor: function(config) {
59 var me = this;
60
61 config = config || {};
62
63 me.mon(Ext.GlobalEvents, 'pmgStatTimeSelectorUpdate', me.reload, me);
64
65 me.callParent([config]);
66
67 me.reload();
68 }
69 });