mirror of
https://git.proxmox.com/git/pmg-gui
synced 2025-10-25 08:07:52 +00:00
this allows toggling the presentation of the email previews depending on the current theme. in the default "light" mode the toggle is hidden to avoid clutter. enable the toggle in other themes to allow switching back to the original way the email was rendered. this requires a bump of the widget toolkit. the toolkit provides the styles necessary for the toggle to work. Signed-off-by: Stefan Sterz <s.sterz@proxmox.com> Reviewed-by: Dominik Csapak <d.csapak@proxmox.com> Tested-by: Dominik Csapak <d.csapak@proxmox.com>
160 lines
3.4 KiB
JavaScript
160 lines
3.4 KiB
JavaScript
Ext.define('pmg-attachment-list', {
|
|
extend: 'Ext.data.Model',
|
|
fields: ['id', 'envelope_sender', 'from', 'sender', 'receiver', 'subject',
|
|
{ type: 'integer', name: 'bytes' },
|
|
{ type: 'date', dateFormat: 'timestamp', name: 'time' },
|
|
{
|
|
type: 'string',
|
|
name: 'day',
|
|
convert: function(v, rec) {
|
|
return Ext.Date.format(rec.get('time'), 'Y-m-d');
|
|
}, depends: ['time'],
|
|
},
|
|
],
|
|
proxy: {
|
|
type: 'proxmox',
|
|
url: "/api2/json/quarantine/attachment",
|
|
},
|
|
idProperty: 'id',
|
|
});
|
|
|
|
Ext.define('PMG.AttachmentQuarantine', {
|
|
extend: 'Ext.container.Container',
|
|
xtype: 'pmgAttachmentQuarantine',
|
|
|
|
border: false,
|
|
layout: { type: 'border' },
|
|
|
|
defaults: { border: false },
|
|
|
|
viewModel: {
|
|
parent: null,
|
|
data: {
|
|
mailid: '',
|
|
},
|
|
formulas: {
|
|
downloadMailURL: get => '/api2/json/quarantine/download?mailid=' + encodeURIComponent(get('mailid')),
|
|
},
|
|
},
|
|
controller: 'quarantine',
|
|
items: [
|
|
{
|
|
title: gettext('Attachment Quarantine'),
|
|
xtype: 'pmgQuarantineList',
|
|
emptyText: gettext('No data in database'),
|
|
selModel: 'checkboxmodel',
|
|
quarantineType: 'attachment',
|
|
reference: 'list',
|
|
region: 'west',
|
|
width: 500,
|
|
split: true,
|
|
collapsible: false,
|
|
store: {
|
|
model: 'pmg-attachment-list',
|
|
groupField: 'day',
|
|
groupDir: 'DESC',
|
|
sorters: [{
|
|
property: 'time',
|
|
direction: 'DESC',
|
|
}],
|
|
},
|
|
|
|
columns: [
|
|
{
|
|
header: `${gettext('Sender')}/${gettext('Receiver')}/${gettext('Subject')}`,
|
|
dataIndex: 'subject',
|
|
renderer: PMG.Utils.render_sender_receiver,
|
|
flex: 1,
|
|
},
|
|
{
|
|
header: gettext('Size') + ' (KB)',
|
|
renderer: v => Ext.Number.toFixed(v/1024, 0),
|
|
dataIndex: 'bytes',
|
|
align: 'right',
|
|
width: 90,
|
|
},
|
|
{
|
|
header: gettext('Date'),
|
|
dataIndex: 'day',
|
|
hidden: true,
|
|
},
|
|
{
|
|
xtype: 'datecolumn',
|
|
header: gettext('Time'),
|
|
dataIndex: 'time',
|
|
format: 'H:i:s',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: gettext('Selected Mail'),
|
|
border: false,
|
|
region: 'center',
|
|
layout: 'fit',
|
|
split: true,
|
|
reference: 'preview',
|
|
disabled: true,
|
|
dockedItems: [
|
|
{
|
|
xtype: 'toolbar',
|
|
overflowHandler: 'scroller',
|
|
dock: 'top',
|
|
items: [
|
|
{
|
|
xtype: 'button',
|
|
reference: 'raw',
|
|
text: gettext('Toggle Raw'),
|
|
enableToggle: true,
|
|
iconCls: 'fa fa-file-code-o',
|
|
},
|
|
{
|
|
xtype: 'button',
|
|
reference: 'themeToggle',
|
|
text: gettext('Toggle Theme'),
|
|
enableToggle: true,
|
|
iconCls: 'fa fa-paint-brush',
|
|
},
|
|
'->',
|
|
{
|
|
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 info-blue',
|
|
handler: 'btnHandler',
|
|
},
|
|
{
|
|
reference: 'delete',
|
|
text: gettext('Delete'),
|
|
iconCls: 'fa fa-trash-o critical',
|
|
handler: 'btnHandler',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
xtype: 'pmgMailInfo',
|
|
hidden: true,
|
|
reference: 'mailinfo',
|
|
},
|
|
{
|
|
xtype: 'pmgAttachmentGrid',
|
|
reference: 'attachmentlist',
|
|
dock: 'bottom',
|
|
collapsible: false,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|