]> git.proxmox.com Git - pmg-gui.git/blob - js/SpamInfoGrid.js
quarantine list: cope with undefined mail value
[pmg-gui.git] / js / SpamInfoGrid.js
1 Ext.define('PMG.grid.SpamInfoGrid', {
2 extend: 'Ext.grid.GridPanel',
3 xtype: 'pmgSpamInfoGrid',
4
5 store: {
6 autoDestroy: true,
7 fields: ['desc', 'name', { type: 'number', name: 'score' }],
8 proxy: {
9 type: 'proxmox',
10 root: 'data.spaminfo',
11 },
12 sorters: 'score',
13 },
14
15 setID: function(rec) {
16 let me = this;
17 let id = rec?.data?.id;
18 if (!id) {
19 me.getStore().removeAll();
20 return;
21 }
22 me.store.proxy.setUrl(`/api2/json/quarantine/content?id=${id}`);
23 me.store.load();
24 },
25
26 emptyText: gettext('No Spam Info'),
27 hidden: true,
28
29 features: [{
30 ftype: 'summary',
31 }],
32
33 columns: [
34 {
35 text: gettext('Test Name'),
36 dataIndex: 'name',
37 flex: 1,
38 summaryType: 'count',
39 summaryRenderer: _v => gettext('Spamscore'),
40 tdCls: 'txt-monospace',
41 },
42 {
43 text: gettext('Score'),
44 dataIndex: 'score',
45 align: 'right',
46 tdCls: 'txt-monospace',
47 renderer: function(score, metaData) {
48 if (score === 0) {
49 return score;
50 }
51 let absScore = Math.abs(score);
52 let fontWeight = '400', background = score < 0 ? '#d7e9f6' : '#f3d6d7';
53 if (absScore >= 3) {
54 fontWeight = '900';
55 background = score < 0 ? '#ACD1EC' : '#E8B0B2';
56 } else if (absScore >= 1.5) {
57 fontWeight = '600';
58 } else if (absScore <= 0.1) {
59 fontWeight = '200';
60 background = score < 0 ? '#EEF6FB' : '#FAEFF0';
61 }
62 metaData.tdStyle = `font-weight: ${fontWeight};background-color: ${background};`;
63 return score;
64 },
65 summaryType: 'sum',
66 summaryRenderer: value => Ext.util.Format.round(value, 5),
67 },
68 {
69 text: gettext('Description'),
70 dataIndex: 'desc',
71 flex: 2,
72 },
73 ],
74 });