]>
git.proxmox.com Git - pmg-gui.git/blob - js/ReceiverStatistics.js
2 /*jslint confusion: true*/
3 /* filter is a function and object */
4 Ext
.define('PMG.ReceiverDetails', {
5 extend
: 'Ext.grid.GridPanel',
6 xtype
: 'pmgReceiverDetails',
14 html
: gettext('Please select a receiver.')
18 disableSelection
: true,
20 plugins
: 'gridfilters',
22 setUrl: function(url
, title
) {
26 me
.store
.setRemoteFilter(url
!== undefined);
27 Proxmox
.Utils
.setErrorMask(me
, false);
30 var infopanel
= me
.getComponent('info');
32 infopanel
.update(title
);
34 infopanel
.update(gettext('Please select a sender.'));
42 remoteFilter
: false, // enabled dynamically
44 'sender', 'virusinfo',
45 { type
: 'integer', name
: 'bytes' },
46 { type
: 'boolean', name
: 'blocked' },
47 { type
: 'integer', name
: 'spamlevel' },
48 { type
: 'date', dateFormat
: 'timestamp', name
: 'time' }
51 type
: 'pmgfilterproxy',
52 filterId
: 'x-gridfilter-sender',
65 text
: gettext('Sender'),
66 renderer
: Ext
.htmlEncode
,
68 filter
: { type
: 'string' },
72 header
: gettext('Size') + ' (KB)',
73 renderer: function(v
) { return Ext
.Number
.toFixed(v
/1024, 0); },
78 header
: gettext('Date'),
84 header
: gettext('Time'),
89 header
: gettext('Virus info'),
90 dataIndex
: 'virusinfo'
93 header
: gettext('Score'),
94 dataIndex
: 'spamlevel'
98 initComponent: function() {
102 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
106 Ext
.define('PMG.ReceiverList', {
107 extend
: 'Ext.grid.GridPanel',
108 alias
: 'widget.pmgReceiverList',
110 title
: gettext('Statistics') + ': ' + gettext('Receiver') +
111 ' (' + gettext('Incoming') +')',
113 multiColumnSort
: true,
114 plugins
: 'gridfilters',
116 emptyText
: gettext('No data in database.'),
118 deferEmptyText
: false
121 tbar
: [ { xtype
: 'pmgStatTimeSelector' } ],
124 type
: 'pmgStatStore',
125 staturl
: '/api2/json/statistics/receiver',
130 { type
: 'integer', name
: 'count' },
131 { type
: 'integer', name
: 'bytes' },
132 { type
: 'integer', name
: 'viruscount' }
135 type
: 'pmgfilterproxy',
136 sortParam
: 'orderby',
137 filterId
: 'x-gridfilter-receiver'
149 property
: 'receiver',
157 text
: gettext('Receiver'),
159 renderer
: Ext
.htmlEncode
,
160 dataIndex
: 'receiver',
164 // any Ext.form.field.Text configs accepted
169 text
: gettext('Count'),
172 text
: gettext('Mail'),
176 header
: gettext('Virus'),
177 dataIndex
: 'viruscount'
180 header
: gettext('Spam'),
181 dataIndex
: 'spamcount'
186 text
: gettext('Size') + ' (KB)',
188 renderer: function(v
) {
189 return Ext
.Number
.toFixed(v
/1024, 0);
194 initComponent: function() {
198 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
202 Ext
.define('PMG.ReceiverStatistics', {
203 extend
: 'Ext.panel.Panel',
204 xtype
: 'pmgReceiverStatistics',
213 xclass
: 'Ext.app.ViewController',
215 selectionChange: function(grid
, selected
, eOpts
) {
216 var details
= this.lookupReference('details');
217 if (selected
.length
> 0) {
218 var receiver
= selected
[0].data
.receiver
;
219 var url
= "/api2/json/statistics/receiver/" +
220 encodeURIComponent(receiver
);
221 details
.setUrl(url
, '<b>' + gettext('Receiver') + ':</b> ' + Ext
.htmlEncode(receiver
));
230 xtype
: 'pmgReceiverList',
231 multiColumnSort
: true,
236 listeners
: { selectionchange
: 'selectionChange' }
239 xtype
: 'pmgReceiverDetails',
241 reference
: 'details',