]>
git.proxmox.com Git - pmg-gui.git/blob - js/ContactStatistics.js
1 Ext
.define('PMG.ContactDetails', {
2 extend
: 'Ext.grid.GridPanel',
3 xtype
: 'pmgContactDetails',
11 html
: gettext('Please select a contact'),
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 contact'));
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'),
87 initComponent: function() {
91 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
95 Ext
.define('PMG.ContactList', {
96 extend
: 'Ext.grid.GridPanel',
97 alias
: 'widget.pmgContactList',
99 title
: gettext('Statistics') + ': ' + gettext('Contact') +
100 ' (' + gettext('Receiver') + ', ' + gettext('Outgoing') +')',
102 multiColumnSort
: true,
103 plugins
: 'gridfilters',
105 emptyText
: gettext('No data in database'),
107 deferEmptyText
: false,
110 tbar
: [{ xtype
: 'pmgStatTimeSelector' }],
113 type
: 'pmgStatStore',
114 staturl
: '/api2/json/statistics/contact',
119 { type
: 'integer', name
: 'count' },
120 { type
: 'integer', name
: 'viruscount' },
121 { type
: 'integer', name
: 'bytes' },
124 type
: 'pmgfilterproxy',
125 sortParam
: 'orderby',
126 filterId
: 'x-gridfilter-contact',
146 text
: gettext('Contact'),
148 renderer
: Ext
.htmlEncode
,
149 dataIndex
: 'contact',
153 // any Ext.form.field.Text configs accepted
158 text
: gettext('Count'),
161 text
: gettext('Mail'),
165 header
: gettext('Virus'),
166 dataIndex
: 'viruscount',
171 text
: gettext('Size') + ' (KB)',
173 renderer: function(v
) {
174 return Ext
.Number
.toFixed(v
/1024, 0);
179 initComponent: function() {
183 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
187 Ext
.define('PMG.ContactStatistics', {
188 extend
: 'Ext.panel.Panel',
189 xtype
: 'pmgContactStatistics',
198 xclass
: 'Ext.app.ViewController',
200 selectionChange: function(grid
, selected
, eOpts
) {
201 var details
= this.lookupReference('details');
202 if (selected
.length
> 0) {
203 var contact
= selected
[0].data
.contact
;
204 var extraparam
= { address
: contact
, type
: 'contact' };
205 var url
= "/api2/json/statistics/detail";
206 details
.setUrl(url
, extraparam
, '<b>' + gettext('Contact') + ':</b> ' + Ext
.htmlEncode(contact
));
215 xtype
: 'pmgContactList',
216 multiColumnSort
: true,
221 listeners
: { selectionchange
: 'selectionChange' },
224 xtype
: 'pmgContactDetails',
226 reference
: 'details',