]>
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(arguments
);
57 toggleSpamInfo: function(btn
) {
58 var grid
= this.lookupReference('spaminfo');
59 grid
.setVisible(!grid
.isVisible());
62 openContextMenu: function(table
, record
, tr
, index
, event
) {
65 let list
= me
.lookup('list');
66 Ext
.create('PMG.menu.SpamContextMenu', {
67 callback
: action
=> me
.doAction(action
, list
.getSelection()),
68 }).showAt(event
.getXY());
71 keyPress: function(table
, record
, item
, index
, event
) {
73 var list
= me
.lookup('list');
74 var key
= event
.getKey();
81 case Ext
.event
.Event
.D
:
82 case Ext
.event
.Event
.D
+ 32:
85 case Ext
.event
.Event
.W
:
86 case Ext
.event
.Event
.W
+ 32:
89 case Ext
.event
.Event
.B
:
90 case Ext
.event
.Event
.B
+ 32:
96 me
.doAction(action
, list
.getSelection());
100 init: function(view
) {
101 this.lookup('list').cselect
= view
.cselect
;
105 'button[reference=raw]': {
108 'button[reference=spam]': {
109 click
: 'toggleSpamInfo',
111 'pmgQuarantineList': {
112 itemkeypress
: 'keyPress',
113 rowcontextmenu
: 'openContextMenu',
118 Ext
.define('PMG.SpamQuarantine', {
119 extend
: 'Ext.container.Container',
120 xtype
: 'pmgSpamQuarantine',
123 layout
: { type
: 'border' },
125 defaults
: { border
: false },
136 downloadMailURL
: get => '/api2/json/quarantine/download?mailid=' + encodeURIComponent(get('mailid')),
139 controller
: 'spamquarantine',
143 title
: gettext('Spam Quarantine'),
144 xtype
: 'pmgQuarantineList',
145 selModel
: 'checkboxmodel',
152 model
: 'pmg-spam-list',
163 header
: gettext('Sender/Subject'),
164 dataIndex
: 'subject',
165 renderer
: PMG
.Utils
.render_sender
,
169 header
: gettext('Score'),
170 dataIndex
: 'spamlevel',
175 header
: gettext('Size') + ' (KB)',
176 renderer
: v
=> Ext
.Number
.toFixed(v
/1024, 0),
182 header
: gettext('Date'),
188 header
: gettext('Time'),
195 title
: gettext('Selected Mail'),
200 reference
: 'preview',
206 overflowHandler
: 'scroller',
208 // docked items have set the bottom with to 0px with '! important'
209 // but we still want one here, so we can remove the borders of the grids
210 'border-bottom-width': '1px ! important',
216 text
: gettext('Toggle Raw'),
218 iconCls
: 'fa fa-file-code-o',
223 text
: gettext('Toggle Spam Info'),
225 iconCls
: 'fa fa-bullhorn',
228 xtype
: 'tbseparator',
229 reference
: 'themeCheckSep',
232 xtype
: 'proxmoxcheckbox',
233 reference
: 'themeCheck',
235 boxLabel
: gettext('Dark-mode filter'),
236 iconCls
: 'fa fa-paint-brush',
241 reference
: 'download',
242 text
: gettext('Download'),
243 setDownload: function(id
) {
244 this.el
.dom
.download
= id
+ ".eml";
247 href
: '{downloadMailURL}',
248 download
: '{mailid}',
250 iconCls
: 'fa fa-download',
254 reference
: 'whitelist',
255 text
: gettext('Whitelist'),
256 iconCls
: 'fa fa-check',
257 handler
: 'btnHandler',
260 reference
: 'blacklist',
261 text
: gettext('Blacklist'),
262 iconCls
: 'fa fa-times',
263 handler
: 'btnHandler',
266 reference
: 'deliver',
267 text
: gettext('Deliver'),
268 iconCls
: 'fa fa-paper-plane-o info-blue',
269 handler
: 'btnHandler',
273 text
: gettext('Delete'),
274 iconCls
: 'fa fa-trash-o critical',
275 handler
: 'btnHandler',
280 xtype
: 'pmgSpamInfoGrid',
281 reference
: 'spaminfo',
285 xtype
: 'pmgMailInfo',
287 reference
: 'mailinfo',
291 xtype
: 'pmgAttachmentGrid',
292 reference
: 'attachmentlist',
293 showDownloads
: false,