]>
git.proxmox.com Git - pmg-gui.git/blob - js/SpamQuarantine.js
1 Ext
.define('pmg-spam-archive', {
2 extend
: 'Ext.data.Model',
4 { type
: 'number', name
: 'spamavg' },
5 { type
: 'integer', name
: 'count' },
6 { type
: 'date', dateFormat
: 'timestamp', name
: 'day' },
10 url
: "/api2/json/quarantine/spam",
15 Ext
.define('pmg-spam-list', {
16 extend
: 'Ext.data.Model',
17 fields
: ['id', 'envelope_sender', 'from', 'sender', 'receiver', 'subject',
18 { type
: 'number', name
: 'spamlevel' },
19 { type
: 'integer', name
: 'bytes' },
20 { type
: 'date', dateFormat
: 'timestamp', name
: 'time' },
24 convert: function(v
, rec
) {
25 return Ext
.Date
.format(rec
.get('time'), 'Y-m-d');
31 url
: "/api2/json/quarantine/spam",
36 Ext
.define('PMG.SpamQuarantineController', {
37 extend
: 'PMG.controller.QuarantineController',
38 xtype
: 'pmgSpamQuarantineController',
39 alias
: 'controller.spamquarantine',
41 updatePreview: function(raw
, rec
) {
43 me
.lookupReference('spam').setDisabled(false);
45 me
.callParent(arguments
);
48 multiSelect: function(selection
) {
50 let spam
= me
.lookupReference('spam');
51 spam
.setDisabled(true);
52 spam
.setPressed(false);
53 me
.lookupReference('spaminfo').setVisible(false);
54 me
.callParent(selection
);
57 onSelectMail: function() {
59 let list
= me
.lookupReference('list');
60 let selection
= list
.selModel
.getSelection();
61 if (selection
.length
<= 1) {
62 let rec
= selection
[0] || {};
63 me
.lookupReference('spaminfo').setID(rec
);
69 toggleSpamInfo: function(btn
) {
70 var grid
= this.lookupReference('spaminfo');
71 grid
.setVisible(!grid
.isVisible());
74 openContextMenu: function(table
, record
, tr
, index
, event
) {
77 let list
= me
.lookup('list');
78 Ext
.create('PMG.menu.SpamContextMenu', {
79 callback
: action
=> me
.doAction(action
, list
.getSelection()),
80 }).showAt(event
.getXY());
83 keyPress: function(table
, record
, item
, index
, event
) {
85 var list
= me
.lookup('list');
86 var key
= event
.getKey();
93 case Ext
.event
.Event
.D
:
94 case Ext
.event
.Event
.D
+ 32:
97 case Ext
.event
.Event
.W
:
98 case Ext
.event
.Event
.W
+ 32:
101 case Ext
.event
.Event
.B
:
102 case Ext
.event
.Event
.B
+ 32:
103 action
= 'blacklist';
108 me
.doAction(action
, list
.getSelection());
112 init: function(view
) {
113 this.lookup('list').cselect
= view
.cselect
;
117 'button[reference=raw]': {
120 'button[reference=spam]': {
121 click
: 'toggleSpamInfo',
123 'pmgQuarantineList': {
124 selectionChange
: 'onSelectMail',
125 itemkeypress
: 'keyPress',
126 rowcontextmenu
: 'openContextMenu',
131 Ext
.define('PMG.SpamQuarantine', {
132 extend
: 'Ext.container.Container',
133 xtype
: 'pmgSpamQuarantine',
136 layout
: { type
: 'border' },
138 defaults
: { border
: false },
149 downloadMailURL
: get => '/api2/json/quarantine/download?mailid=' + encodeURIComponent(get('mailid')),
152 controller
: 'spamquarantine',
156 title
: gettext('Spam Quarantine'),
157 xtype
: 'pmgQuarantineList',
158 selModel
: 'checkboxmodel',
159 emailSelection
: true,
166 model
: 'pmg-spam-list',
177 header
: gettext('Sender/Subject'),
178 dataIndex
: 'subject',
179 renderer
: PMG
.Utils
.render_sender
,
183 header
: gettext('Score'),
184 dataIndex
: 'spamlevel',
189 header
: gettext('Size') + ' (KB)',
190 renderer
: v
=> Ext
.Number
.toFixed(v
/1024, 0),
196 header
: gettext('Date'),
202 header
: gettext('Time'),
209 title
: gettext('Selected Mail'),
214 reference
: 'preview',
224 text
: gettext('Toggle Raw'),
226 iconCls
: 'fa fa-file-code-o',
231 text
: gettext('Toggle Spam Info'),
233 iconCls
: 'fa fa-bullhorn',
238 reference
: 'download',
239 text
: gettext('Download'),
240 setDownload: function(id
) {
241 this.el
.dom
.download
= id
+ ".eml";
244 href
: '{downloadMailURL}',
245 download
: '{mailid}',
247 iconCls
: 'fa fa-download',
251 reference
: 'whitelist',
252 text
: gettext('Whitelist'),
253 iconCls
: 'fa fa-check',
254 handler
: 'btnHandler',
257 reference
: 'blacklist',
258 text
: gettext('Blacklist'),
259 iconCls
: 'fa fa-times',
260 handler
: 'btnHandler',
263 reference
: 'deliver',
264 text
: gettext('Deliver'),
265 iconCls
: 'fa fa-paper-plane-o info-blue',
266 handler
: 'btnHandler',
270 text
: gettext('Delete'),
271 iconCls
: 'fa fa-trash-o critical',
272 handler
: 'btnHandler',
277 xtype
: 'pmgSpamInfoGrid',
279 reference
: 'spaminfo',
282 xtype
: 'pmgMailInfo',
284 reference
: 'mailinfo',