-Ext.define('PMG.SpamList', {
- extend: 'Ext.grid.GridPanel',
- xtype: 'pmgSpamList',
-
- title: gettext('Spam List'),
-
- emptyText: gettext('No E-Mail address selected'),
- viewConfig: {
- deferEmptyText: false
- },
-
- setUser: function(user) {
- var me = this;
- var params = me.getStore().getProxy().getExtraParams();
- params.pmail = user;
- me.getStore().getProxy().setExtraParams(params);
- me.user = user;
- },
-
- setFrom: function(from) {
- var me = this;
- var params = me.getStore().getProxy().getExtraParams();
- params.starttime = from;
- me.getStore().getProxy().setExtraParams(params);
- },
-
- setTo: function(to) {
- var me = this;
- var params = me.getStore().getProxy().getExtraParams();
- params.endtime = to;
- me.getStore().getProxy().setExtraParams(params);
- },
-
- load: function() {
- var me = this;
- if (me.user || PMG.view === 'quarantine') {
- // extjs has no method to dynamically change the emptytext on
- // grids, so we have to do it this way
- var view = me.getView();
- view.emptyText = '<div class="x-grid-empty">'+ gettext('No Spam E-Mails found') + '</div>';
- view.refresh();
- }
- me.getStore().load();
- },
-
- store: {
- model: 'pmg-spam-list',
- groupField: 'day',
- groupDir: 'DESC',
- sorters: [{
- property: 'time',
- direction: 'DESC'
- }]
- },
-
- features: [
- {
- ftype: 'grouping',
- groupHeaderTpl: '{columnName}: {name} ({children.length})'
- }
- ],
-
- columns: [
- {
- header: gettext('Sender/Subject'),
- dataIndex: 'subject',
- renderer: function(value, metaData, rec) {
- var subject = Ext.htmlEncode(value);
- var from = Ext.htmlEncode(rec.data.from);
- var sender = Ext.htmlEncode(rec.data.sender);
- if (sender) {
- from = Ext.String.format(gettext("{0} on behalf of {1}"),
- sender, from);
- }
- return '<small>' + from + '</small><br>' + subject;
- },
- flex: 1
- },
- {
- header: gettext('Score'),
- dataIndex: 'spamlevel'
- },
- {
- header: gettext('Size') + ' (KB)',
- renderer: function(v) { return Ext.Number.toFixed(v/1024, 0); },
- dataIndex: 'bytes'
- },
- {
- header: gettext('Arrival Day'),
- dataIndex: 'day',
- hidden: true
- },
- {
- xtype: 'datecolumn',
- header: gettext('Arrival Time'),
- dataIndex: 'time',
- format: 'H:m:s'
- },
- ]
-});
-