mirror of
https://git.proxmox.com/git/pmg-gui
synced 2025-05-29 18:43:34 +00:00
79 lines
1.4 KiB
JavaScript
79 lines
1.4 KiB
JavaScript
Ext.define('PMG.data.StatStore', {
|
|
extend: 'Ext.data.Store',
|
|
alias: 'store.pmgStatStore',
|
|
|
|
autoDestroy: true,
|
|
|
|
staturl: undefined,
|
|
|
|
includeTimeSpan: false,
|
|
|
|
setUrl: function(url) {
|
|
var me = this;
|
|
|
|
me.proxy.abort(); // abort pending requests
|
|
|
|
me.staturl = url;
|
|
me.proxy.extraParams = {};
|
|
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) {
|
|
return; // avoid repeated loads
|
|
}
|
|
|
|
me.proxy.url = me.staturl;
|
|
me.proxy.extraParams = { starttime: ts.starttime, endtime: ts.endtime };
|
|
|
|
var timespan = 3600;
|
|
if (me.includeTimeSpan) {
|
|
var period = ts.endtime - ts.starttime;
|
|
if (period <= 86400*7) {
|
|
timespan = 3600;
|
|
} else {
|
|
timespan = 3600*24;
|
|
}
|
|
me.proxy.extraParams.timespan = timespan;
|
|
}
|
|
|
|
me.load();
|
|
},
|
|
|
|
proxy: {
|
|
type: 'proxmox',
|
|
},
|
|
|
|
autoReload: true,
|
|
|
|
constructor: function(config) {
|
|
var me = this;
|
|
|
|
config = config || {};
|
|
|
|
me.mon(Ext.GlobalEvents, 'pmgStatTimeSelectorUpdate', function() {
|
|
if (me.autoReload) {
|
|
me.reload();
|
|
}
|
|
}, me);
|
|
|
|
me.callParent([config]);
|
|
|
|
me.reload();
|
|
},
|
|
});
|