]>
git.proxmox.com Git - pmg-gui.git/blob - js/ReceiverStatistics.js
1 Ext
.define('PMG.ReceiverDetails', {
2 extend
: 'Ext.grid.GridPanel',
3 xtype
: 'pmgReceiverDetails',
11 html
: gettext('Please select a receiver.'),
15 disableSelection
: true,
17 plugins
: 'gridfilters',
19 setUrl: function(url
, extraparam
, title
) {
22 me
.store
.setUrl(url
, extraparam
);
23 me
.store
.setRemoteFilter(url
!== undefined);
24 Proxmox
.Utils
.setErrorMask(me
, false);
27 var infopanel
= me
.getComponent('info');
29 infopanel
.update(title
);
31 infopanel
.update(gettext('Please select a sender.'));
39 remoteFilter
: false, // enabled dynamically
41 'sender', 'virusinfo',
42 { type
: 'integer', name
: 'bytes' },
43 { type
: 'boolean', name
: 'blocked' },
44 { type
: 'integer', name
: 'spamlevel' },
45 { type
: 'date', dateFormat
: 'timestamp', name
: 'time' },
48 type
: 'pmgfilterproxy',
49 filterId
: 'x-gridfilter-sender',
62 text
: gettext('Sender'),
63 renderer
: Ext
.htmlEncode
,
65 filter
: { type
: 'string' },
69 header
: gettext('Size') + ' (KB)',
70 renderer: function(v
) { return Ext
.Number
.toFixed(v
/1024, 0); },
75 header
: gettext('Date'),
81 header
: gettext('Time'),
86 header
: gettext('Virus info'),
87 dataIndex
: 'virusinfo',
90 header
: gettext('Score'),
91 dataIndex
: 'spamlevel',
95 initComponent: function() {
99 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
103 Ext
.define('PMG.ReceiverList', {
104 extend
: 'Ext.grid.GridPanel',
105 alias
: 'widget.pmgReceiverList',
107 title
: gettext('Statistics') + ': ' + gettext('Receiver') +
108 ' (' + gettext('Incoming') +')',
110 multiColumnSort
: true,
111 plugins
: 'gridfilters',
113 emptyText
: gettext('No data in database'),
115 deferEmptyText
: false,
118 tbar
: [{ xtype
: 'pmgStatTimeSelector' }],
121 type
: 'pmgStatStore',
122 staturl
: '/api2/json/statistics/receiver',
127 { type
: 'integer', name
: 'count' },
128 { type
: 'integer', name
: 'bytes' },
129 { type
: 'integer', name
: 'viruscount' },
132 type
: 'pmgfilterproxy',
133 sortParam
: 'orderby',
134 filterId
: 'x-gridfilter-receiver',
146 property
: 'receiver',
154 text
: gettext('Receiver'),
156 renderer
: Ext
.htmlEncode
,
157 dataIndex
: 'receiver',
161 // any Ext.form.field.Text configs accepted
166 text
: gettext('Count'),
169 text
: gettext('Mail'),
173 header
: gettext('Virus'),
174 dataIndex
: 'viruscount',
177 header
: gettext('Spam'),
178 dataIndex
: 'spamcount',
183 text
: gettext('Size') + ' (KB)',
185 renderer: function(v
) {
186 return Ext
.Number
.toFixed(v
/1024, 0);
191 initComponent: function() {
195 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
199 Ext
.define('PMG.ReceiverStatistics', {
200 extend
: 'Ext.panel.Panel',
201 xtype
: 'pmgReceiverStatistics',
210 xclass
: 'Ext.app.ViewController',
212 selectionChange: function(grid
, selected
, eOpts
) {
213 var details
= this.lookupReference('details');
214 if (selected
.length
> 0) {
215 var url
= "/api2/json/statistics/detail";
216 var receiver
= selected
[0].data
.receiver
;
217 var extraparam
= { address
: receiver
, type
: 'receiver' };
218 details
.setUrl(url
, extraparam
, '<b>' + gettext('Receiver') + ':</b> ' + Ext
.htmlEncode(receiver
));
227 xtype
: 'pmgReceiverList',
228 multiColumnSort
: true,
233 listeners
: { selectionchange
: 'selectionChange' },
236 xtype
: 'pmgReceiverDetails',
238 reference
: 'details',