]>
git.proxmox.com Git - pmg-gui.git/blob - js/ReceiverStatistics.js
2 Ext
.define('PMG.ReceiverDetails', {
3 extend
: 'Ext.grid.GridPanel',
4 xtype
: 'pmgReceiverDetails',
12 html
: gettext('Please select a receiver.')
16 disableSelection
: true,
18 plugins
: 'gridfilters',
20 setUrl: function(url
, title
) {
24 me
.store
.setRemoteFilter(url
!== undefined);
25 Proxmox
.Utils
.setErrorMask(me
, false);
28 var infopanel
= me
.getComponent('info');
30 infopanel
.update(title
);
32 infopanel
.update(gettext('Please select a sender.'));
40 remoteFilter
: false, // enabled dynamically
42 'sender', 'virusinfo',
43 { type
: 'integer', name
: 'bytes' },
44 { type
: 'boolean', name
: 'blocked' },
45 { type
: 'integer', name
: 'spamlevel' },
46 { type
: 'date', dateFormat
: 'timestamp', name
: 'time' }
49 type
: 'pmgfilterproxy',
50 filterId
: 'x-gridfilter-sender',
63 text
: gettext('Sender'),
64 renderer
: Ext
.htmlEncode
,
66 filter
: { type
: 'string' },
70 header
: gettext('Size') + ' (KB)',
71 renderer: function(v
) { return Ext
.Number
.toFixed(v
/1024, 0); },
76 header
: gettext('Date'),
82 header
: gettext('Time'),
87 header
: gettext('Virus info'),
88 dataIndex
: 'virusinfo'
91 header
: gettext('Score'),
92 dataIndex
: 'spamlevel'
96 initComponent: function() {
100 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
104 Ext
.define('PMG.ReceiverList', {
105 extend
: 'Ext.grid.GridPanel',
106 alias
: 'widget.pmgReceiverList',
108 title
: gettext('Statistics') + ': ' + gettext('Receiver') +
109 ' (' + gettext('Incoming') +')',
111 multiColumnSort
: true,
112 plugins
: 'gridfilters',
114 emptyText
: gettext('No data in database.'),
116 deferEmptyText
: false
119 tbar
: [ { xtype
: 'pmgStatTimeSelector' } ],
122 type
: 'pmgStatStore',
123 staturl
: '/api2/json/statistics/receiver',
128 { type
: 'integer', name
: 'count' },
129 { type
: 'integer', name
: 'bytes' },
130 { type
: 'integer', name
: 'viruscount' }
133 type
: 'pmgfilterproxy',
134 sortParam
: 'orderby',
135 filterId
: 'x-gridfilter-receiver'
147 property
: 'receiver',
155 text
: gettext('Receiver'),
157 renderer
: Ext
.htmlEncode
,
158 dataIndex
: 'receiver',
162 // any Ext.form.field.Text configs accepted
167 text
: gettext('Count'),
170 text
: gettext('Mail'),
174 header
: gettext('Virus'),
175 dataIndex
: 'viruscount'
178 header
: gettext('Spam'),
179 dataIndex
: 'spamcount'
184 text
: gettext('Size') + ' (KB)',
186 renderer: function(v
) {
187 return Ext
.Number
.toFixed(v
/1024, 0);
192 initComponent: function() {
196 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
200 Ext
.define('PMG.ReceiverStatistics', {
201 extend
: 'Ext.panel.Panel',
202 xtype
: 'pmgReceiverStatistics',
211 xclass
: 'Ext.app.ViewController',
213 selectionChange: function(grid
, selected
, eOpts
) {
214 var details
= this.lookupReference('details');
215 if (selected
.length
> 0) {
216 var receiver
= selected
[0].data
.receiver
;
217 var url
= "/api2/json/statistics/receiver/" +
218 encodeURIComponent(receiver
);
219 details
.setUrl(url
, '<b>' + gettext('Receiver') + ':</b> ' + Ext
.htmlEncode(receiver
));
228 xtype
: 'pmgReceiverList',
229 multiColumnSort
: true,
234 listeners
: { selectionchange
: 'selectionChange' }
237 xtype
: 'pmgReceiverDetails',
239 reference
: 'details',