X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=js%2FAttachmentQuarantine.js;h=5e0c2ea7d644d558c7a59c8e0257675539bafdbe;hb=c7a679755e1fe5f66fbfdaef48be685f3c7f3d01;hp=188dae508c536ae5099f6d527b8915cad85c610e;hpb=f057ca9085cffc86d38c05884b2a9b26c48caed3;p=pmg-gui.git diff --git a/js/AttachmentQuarantine.js b/js/AttachmentQuarantine.js index 188dae5..5e0c2ea 100644 --- a/js/AttachmentQuarantine.js +++ b/js/AttachmentQuarantine.js @@ -27,75 +27,22 @@ Ext.define('PMG.AttachmentQuarantine', { defaults: { border: false }, - controller: { - - xclass: 'Ext.app.ViewController', - - updatePreview: function(raw, rec) { - var preview = this.lookupReference('preview'); - - if (!rec || !rec.data || !rec.data.id) { - preview.update(''); - preview.setDisabled(true); - return; - } - - var url = '/api2/htmlmail/quarantine/content?id=' + rec.data.id + (raw?'&raw=1':''); - preview.setDisabled(false); - preview.update(""); + viewModel: { + parent: null, + data: { + mailid: '', }, - - toggleRaw: function(button) { - var me = this; - var list = this.lookupReference('list'); - var rec = list.getSelection()[0] || {}; - me.lookup('mailinfo').setVisible(me.raw); - me.raw = !me.raw; - me.updatePreview(me.raw, rec); + formulas: { + downloadMailURL: get => '/api2/json/quarantine/download?mailid=' + encodeURIComponent(get('mailid')), }, - - btnHandler: function(button, e) { - var list = this.lookupReference('list'); - var selected = list.getSelection(); - if (!selected.length) { - return; - } - - var action = button.reference; - - PMG.Utils.doQuarantineAction(action, selected[0].data.id, function() { - list.getController().load(); - }); - }, - - onSelectMail: function() { - let me = this; - let list = me.lookup('list'); - let rec = list.getSelection()[0] || {}; - let mailinfo = me.lookup('mailinfo'); - - me.updatePreview(me.raw || false, rec); - me.lookup('attachmentlist').setID(rec); - mailinfo.setVisible(!!rec.data && !me.raw); - mailinfo.update(rec.data); - }, - - control: { - 'button[reference=raw]': { - click: 'toggleRaw', - }, - 'pmgQuarantineList': { - selectionChange: 'onSelectMail', - }, - }, - }, - + controller: 'quarantine', items: [ { title: gettext('Attachment Quarantine'), xtype: 'pmgQuarantineList', emptyText: gettext('No data in database'), + selModel: 'checkboxmodel', emailSelection: false, reference: 'list', region: 'west', @@ -114,14 +61,14 @@ Ext.define('PMG.AttachmentQuarantine', { columns: [ { - header: gettext('Sender/Subject'), + header: `${gettext('Sender')}/${gettext('Receiver')}/${gettext('Subject')}`, dataIndex: 'subject', - renderer: PMG.Utils.sender_renderer, + renderer: PMG.Utils.render_sender_receiver, flex: 1, }, { header: gettext('Size') + ' (KB)', - renderer: function(v) { return Ext.Number.toFixed(v/1024, 0); }, + renderer: v => Ext.Number.toFixed(v/1024, 0), dataIndex: 'bytes', align: 'right', width: 90, @@ -143,6 +90,7 @@ Ext.define('PMG.AttachmentQuarantine', { title: gettext('Selected Mail'), border: false, region: 'center', + layout: 'fit', split: true, reference: 'preview', disabled: true, @@ -159,16 +107,29 @@ Ext.define('PMG.AttachmentQuarantine', { iconCls: 'fa fa-file-code-o', }, '->', + { + xtype: 'button', + reference: 'download', + text: gettext('Download'), + setDownload: function(id) { + this.el.dom.download = id + ".eml"; + }, + bind: { + href: '{downloadMailURL}', + download: '{mailid}', + }, + iconCls: 'fa fa-download', + }, { reference: 'deliver', text: gettext('Deliver'), - iconCls: 'fa fa-paper-plane-o', + iconCls: 'fa fa-paper-plane-o info-blue', handler: 'btnHandler', }, { reference: 'delete', text: gettext('Delete'), - iconCls: 'fa fa-trash-o', + iconCls: 'fa fa-trash-o critical', handler: 'btnHandler', }, ],