]>
git.proxmox.com Git - pmg-gui.git/blob - js/SenderStatistics.js
2 Ext
.define('PMG.SenderDetails', {
3 extend
: 'Ext.grid.GridPanel',
4 xtype
: 'pmgSenderDetails',
12 html
: gettext('Please select a sender.')
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 'receiver', '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-receiver',
63 text
: gettext('Receiver'),
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'),
88 initComponent: function() {
92 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
96 Ext
.define('PMG.SenderList', {
97 extend
: 'Ext.grid.GridPanel',
98 alias
: 'widget.pmgSenderList',
100 title
: gettext('Statistics') + ': ' + gettext('Sender') +
101 ' (' + gettext('Outgoing') +')',
103 multiColumnSort
: true,
104 plugins
: 'gridfilters',
106 emptyText
: gettext('No data in database.'),
108 deferEmptyText
: false
111 tbar
: [ { xtype
: 'pmgStatTimeSelector' } ],
114 type
: 'pmgStatStore',
115 staturl
: '/api2/json/statistics/sender',
120 { type
: 'integer', name
: 'count' },
121 { type
: 'integer', name
: 'bytes' },
122 { type
: 'integer', name
: 'viruscount' }
125 type
: 'pmgfilterproxy',
126 sortParam
: 'orderby',
127 filterId
: 'x-gridfilter-sender'
147 text
: gettext('Sender'),
149 renderer
: Ext
.htmlEncode
,
154 // any Ext.form.field.Text configs accepted
159 text
: gettext('Count'),
162 text
: gettext('Mail'),
166 header
: gettext('Virus'),
167 dataIndex
: 'viruscount'
172 text
: gettext('Size') + ' (KB)',
174 renderer: function(v
) {
175 return Ext
.Number
.toFixed(v
/1024, 0);
180 initComponent: function() {
184 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
188 Ext
.define('PMG.SenderStatistics', {
189 extend
: 'Ext.panel.Panel',
190 xtype
: 'pmgSenderStatistics',
199 xclass
: 'Ext.app.ViewController',
201 selectionChange: function(grid
, selected
, eOpts
) {
202 var details
= this.lookupReference('details');
203 if (selected
.length
> 0) {
204 var sender
= selected
[0].data
.sender
;
205 var url
= "/api2/json/statistics/sender/" +
206 encodeURIComponent(sender
);
207 details
.setUrl(url
, '<b>' + gettext('Sender') + ':</b> ' + Ext
.htmlEncode(sender
));
216 xtype
: 'pmgSenderList',
217 multiColumnSort
: true,
222 listeners
: { selectionchange
: 'selectionChange' }
225 xtype
: 'pmgSenderDetails',
227 reference
: 'details',