]> git.proxmox.com Git - pmg-gui.git/blob - js/AttachmentGrid.js
6ef54cc7ed729140bdc69b72bf7abe5bfab50d68
[pmg-gui.git] / js / AttachmentGrid.js
1 Ext.define('PMG.grid.AttachmentGrid', {
2 extend: 'Ext.grid.GridPanel',
3 xtype: 'pmgAttachmentGrid',
4 mixins: ['Proxmox.Mixin.CBind'],
5
6 showDownloads: true,
7
8 minHeight: 50,
9 maxHeight: 250,
10 scrollable: true,
11
12 store: {
13 autoDestroy: true,
14 fields: ['name', 'content-type', 'size'],
15 proxy: {
16 type: 'proxmox',
17 },
18 },
19
20 setID: function(rec) {
21 var me = this;
22 if (!rec || !rec.data || !rec.data.id) {
23 me.getStore().removeAll();
24 return;
25 }
26 var url = '/api2/json/quarantine/listattachments?id=' + rec.data.id;
27 me.mailid = rec.data.id;
28 me.store.proxy.setUrl(url);
29 me.store.load();
30 },
31
32 emptyText: gettext('No Attachments'),
33
34 download: function() {
35 Ext.Msg.alert(arguments);
36 },
37
38 columns: [
39 {
40 text: gettext('Filename'),
41 dataIndex: 'name',
42 flex: 1,
43 },
44 {
45 text: gettext('Filetype'),
46 dataIndex: 'content-type',
47 renderer: PMG.Utils.render_filetype,
48 flex: 1,
49 },
50 {
51 text: gettext('Size'),
52 renderer: Proxmox.Utils.format_size,
53 dataIndex: 'size',
54 flex: 1,
55 },
56 {
57 header: gettext('Download'),
58 cbind: {
59 hidden: '{!showDownloads}',
60 },
61 renderer: function(value, mD, rec) {
62 var me = this;
63 let url = `/api2/json/quarantine/download?mailid=${me.mailid}&attachmentid=${rec.data.id}`;
64 return `<a target='_blank' class='download' download='${rec.data.name}' href='${url}'>
65 <i class='fa fa-fw fa-download'</i>
66 </a>`;
67 },
68 },
69 ],
70 });