mirror of
https://git.proxmox.com/git/pmg-gui
synced 2025-05-29 23:24:43 +00:00

the new /statistics/detail api calls takes the type (contact, sender, receiver) and address for which to display the statistics as explicit parameter instead of path-component. This makes it possible to accept '/' as part of an e-mail address which is allowed (in the local-part by RFC5322 [0], and accepted by postfix. [0] https://tools.ietf.org/html/rfc5322 Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
86 lines
1.5 KiB
JavaScript
86 lines
1.5 KiB
JavaScript
Ext.define('PMG.data.StatStore', {
|
|
extend: 'Ext.data.Store',
|
|
alias: 'store.pmgStatStore',
|
|
|
|
autoDestroy: true,
|
|
|
|
staturl: undefined,
|
|
|
|
includeTimeSpan: false,
|
|
|
|
setUrl: function(url, extraparam) {
|
|
var me = this;
|
|
|
|
me.proxy.abort(); // abort pending requests
|
|
|
|
me.staturl = url;
|
|
me.proxy.extraParams = {};
|
|
if (extraparam !== undefined) {
|
|
me.proxy.extraParams = extraparam;
|
|
}
|
|
|
|
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;
|
|
Ext.apply(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();
|
|
},
|
|
});
|