]> git.proxmox.com Git - pmg-gui.git/blob - js/StatStore.js
Dashboard.js - fix subscription status for single node installations
[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.proxy.abort(); // abort pending requests
15
16 me.staturl = url;
17 me.proxy.extraParams = {};
18 me.setData([]);
19 },
20
21 reload: function() {
22 var me = this;
23
24 me.proxy.abort(); // abort pending requests
25
26 if (me.staturl === undefined) {
27 me.proxy.extraParams = {};
28 me.setData([]);
29 return;
30 }
31
32 var ts = PMG.StatTimeSelector.getTimeSpan();
33
34 var last = me.proxy.extraParams;
35
36 if (last.starttime === ts.starttime && last.endtime === ts.endtime) {
37 return; // avoid repeated loads
38 }
39
40 me.proxy.url = me.staturl;
41 me.proxy.extraParams = { starttime: ts.starttime, endtime: ts.endtime };
42
43 var timespan = 3600;
44 if (me.includeTimeSpan) {
45 var period = ts.endtime - ts.starttime;
46 if (period <= 86400*7) {
47 timespan = 3600;
48 } else {
49 timespan = 3600*24;
50 }
51 me.proxy.extraParams.timespan = timespan;
52 }
53
54 me.load();
55 },
56
57 proxy: {
58 type: 'proxmox'
59 },
60
61 autoReload: true,
62
63 constructor: function(config) {
64 var me = this;
65
66 config = config || {};
67
68 me.mon(Ext.GlobalEvents, 'pmgStatTimeSelectorUpdate', function() {
69 if (me.autoReload) {
70 me.reload();
71 }
72 }, me);
73
74 me.callParent([config]);
75
76 me.reload();
77 }
78 });