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