mirror of
https://git.proxmox.com/git/pmg-gui
synced 2025-08-15 14:11:35 +00:00
add download button to spam quarantine preview
so that users can download the file directly Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
4eab05c273
commit
7ad0de10d6
@ -65,6 +65,7 @@ Ext.define('PMG.SpamQuarantine', {
|
|||||||
preview.setDisabled(false);
|
preview.setDisabled(false);
|
||||||
this.lookupReference('raw').setDisabled(false);
|
this.lookupReference('raw').setDisabled(false);
|
||||||
this.lookupReference('spam').setDisabled(false);
|
this.lookupReference('spam').setDisabled(false);
|
||||||
|
this.lookupReference('download').setDisabled(false);
|
||||||
preview.update("<iframe frameborder=0 width=100% height=100% sandbox='allow-same-origin' src='" + url +"'></iframe>");
|
preview.update("<iframe frameborder=0 width=100% height=100% sandbox='allow-same-origin' src='" + url +"'></iframe>");
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -73,6 +74,7 @@ Ext.define('PMG.SpamQuarantine', {
|
|||||||
var raw = this.lookupReference('raw');
|
var raw = this.lookupReference('raw');
|
||||||
var spam = this.lookupReference('spam');
|
var spam = this.lookupReference('spam');
|
||||||
var spaminfo = this.lookupReference('spaminfo');
|
var spaminfo = this.lookupReference('spaminfo');
|
||||||
|
var download = this.lookupReference('download');
|
||||||
|
|
||||||
preview.setDisabled(false);
|
preview.setDisabled(false);
|
||||||
preview.update('<h3>' + gettext('Multiple E-Mails selected') + '</h3>');
|
preview.update('<h3>' + gettext('Multiple E-Mails selected') + '</h3>');
|
||||||
@ -80,6 +82,7 @@ Ext.define('PMG.SpamQuarantine', {
|
|||||||
spam.setDisabled(true);
|
spam.setDisabled(true);
|
||||||
spam.setPressed(false);
|
spam.setPressed(false);
|
||||||
spaminfo.setVisible(false);
|
spaminfo.setVisible(false);
|
||||||
|
download.setDisabled(true);
|
||||||
},
|
},
|
||||||
|
|
||||||
toggleRaw: function(button) {
|
toggleRaw: function(button) {
|
||||||
@ -153,6 +156,49 @@ Ext.define('PMG.SpamQuarantine', {
|
|||||||
grid.setVisible(!grid.isVisible());
|
grid.setVisible(!grid.isVisible());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
downloadEmail: function(btn) {
|
||||||
|
var me = this;
|
||||||
|
var list = this.lookupReference('list');
|
||||||
|
var selection = list.selModel.getSelection();
|
||||||
|
if (selection.length != 1) {
|
||||||
|
return; // multi download is not implemented
|
||||||
|
}
|
||||||
|
var rec = selection[0];
|
||||||
|
var url = '/api2/extjs/quarantine/content';
|
||||||
|
Proxmox.Utils.API2Request({
|
||||||
|
url: url,
|
||||||
|
params: {
|
||||||
|
id: rec.data.id,
|
||||||
|
raw: 1
|
||||||
|
},
|
||||||
|
method: 'GET',
|
||||||
|
failure: function(response, opts) {
|
||||||
|
Ext.Msg.alert('Error', response.htmlStatus);
|
||||||
|
},
|
||||||
|
success: function(response, opts) {
|
||||||
|
var data = response.result.data;
|
||||||
|
var raw = data.header;
|
||||||
|
raw += '\n';
|
||||||
|
raw += data.content;
|
||||||
|
|
||||||
|
var link = Ext.DomHelper.append(document.body, {
|
||||||
|
tag: 'a',
|
||||||
|
href: 'data:message/rfc822,' + encodeURIComponent(raw),
|
||||||
|
css: 'display:none;visibility:hidden;height: 0px;',
|
||||||
|
download: rec.data.id + '.eml'
|
||||||
|
});
|
||||||
|
|
||||||
|
if (link.fireEvent) {
|
||||||
|
link.fireEvent('onclick');
|
||||||
|
} else {
|
||||||
|
var evt = document.createEvent("MouseEvents");
|
||||||
|
evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||||
|
link.dispatchEvent(evt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
openContextMenu: function(table, record, tr, index, event) {
|
openContextMenu: function(table, record, tr, index, event) {
|
||||||
event.stopEvent();
|
event.stopEvent();
|
||||||
var me = this;
|
var me = this;
|
||||||
@ -206,6 +252,9 @@ Ext.define('PMG.SpamQuarantine', {
|
|||||||
'button[reference=spam]': {
|
'button[reference=spam]': {
|
||||||
click: 'toggleSpamInfo'
|
click: 'toggleSpamInfo'
|
||||||
},
|
},
|
||||||
|
'button[reference=download]': {
|
||||||
|
click: 'downloadEmail'
|
||||||
|
},
|
||||||
'pmgQuarantineList': {
|
'pmgQuarantineList': {
|
||||||
selectionChange: 'onSelectMail',
|
selectionChange: 'onSelectMail',
|
||||||
itemkeypress: 'keyPress',
|
itemkeypress: 'keyPress',
|
||||||
@ -295,6 +344,13 @@ Ext.define('PMG.SpamQuarantine', {
|
|||||||
iconCls: 'fa fa-bullhorn'
|
iconCls: 'fa fa-bullhorn'
|
||||||
},
|
},
|
||||||
'->',
|
'->',
|
||||||
|
{
|
||||||
|
xtype: 'button',
|
||||||
|
reference: 'download',
|
||||||
|
text: gettext('Download'),
|
||||||
|
iconCls: 'fa fa-download'
|
||||||
|
},
|
||||||
|
'-',
|
||||||
{
|
{
|
||||||
reference: 'whitelist',
|
reference: 'whitelist',
|
||||||
text: gettext('Whitelist'),
|
text: gettext('Whitelist'),
|
||||||
|
Loading…
Reference in New Issue
Block a user