]> git.proxmox.com Git - pmg-gui.git/blame - js/SenderStatistics.js
implement sender statistic grid
[pmg-gui.git] / js / SenderStatistics.js
CommitLineData
ff8a07c6 1Ext.define('PMG.SenderStatistics', {
6d979e4e 2 extend: 'Ext.grid.GridPanel',
ff8a07c6
DM
3 xtype: 'pmgSenderStatistics',
4
5 title: gettext('Statistics') + ': ' + gettext('Sender'),
6
7 tbar: [ { xtype: 'pmgStatTimeSelector' } ],
8
6d979e4e 9 layout: 'fit',
ff8a07c6 10
6d979e4e 11 plugins: 'gridfilters',
ff8a07c6 12
6d979e4e
DM
13 store: {
14 type: 'pmgStatStore',
15 staturl: '/api2/json/statistics/sender',
16 remoteSort: true,
17 remoteFilter: true,
18 fields: [
19 'sender',
20 { type: 'integer', name: 'count' },
21 { type: 'integer', name: 'bytes' },
22 { type: 'integer', name: 'viruscount' }
23 ],
24 proxy: {
25 type: 'proxmox',
26 sortParam: 'orderby',
27 getParams: function(operation) {
28 var me = this, i;
29 if (!operation.isReadOperation) {
30 return {};
31 }
32 var params = Ext.data.RestProxy.prototype.getParams.apply(me, arguments);
ff8a07c6 33
6d979e4e
DM
34 var filters = operation.getFilters() || [];
35 for (i = 0; i < filters.length; i++) {
36 filter = filters[i];
37 if (filter.config.id === 'x-gridfilter-sender') {
38 var v = filter.getValue();
39 if (v !== undefined && v !== '') {
40 params.filter = v;
41 }
42 }
43 }
44 return params;
45 }
46 },
47 sorters: [
48 {
49 property: 'count',
50 direction: 'DESC'
51 }
52 ]
53 },
ff8a07c6 54
6d979e4e
DM
55 columns: [
56 {
57 text: gettext('Sender'),
58 flex: 1,
59 dataIndex: 'sender',
60 filter: {
61 type: 'string',
62 itemDefaults: {
63 // any Ext.form.field.Text configs accepted
64 }
65 }
66 },
67 {
68 text: gettext('Count'),
69 dataIndex: 'count'
70 },
71 {
72 text: gettext('Size') + ' (KB)',
73 dataIndex: 'bytes',
74 renderer: function(v) {
75 return Ext.Number.toFixed(v/1024, 0);
76 }
77 }
78 ]
79});