]> git.proxmox.com Git - pmg-gui.git/blame - js/SpamInfoGrid.js
dashboard: increase height of node-info and top-receiver panel to 300
[pmg-gui.git] / js / SpamInfoGrid.js
CommitLineData
c87d46fb 1Ext.define('PMG.grid.SpamInfoGrid', {
79a3f18d
DC
2 extend: 'Ext.grid.GridPanel',
3 xtype: 'pmgSpamInfoGrid',
4
c8114985
DM
5 store: {
6 autoDestroy: true,
c87d46fb 7 fields: ['desc', 'name', { type: 'number', name: 'score' }],
c8114985
DM
8 proxy: {
9 type: 'proxmox',
c87d46fb
TL
10 root: 'data.spaminfo',
11 },
282b960b 12 sorters: 'score',
c8114985
DM
13 },
14
79a3f18d 15 setID: function(rec) {
773489e3
TL
16 let me = this;
17 let id = rec?.data?.id;
18 if (!id) {
79a3f18d
DC
19 me.getStore().removeAll();
20 return;
21 }
773489e3 22 me.store.proxy.setUrl(`/api2/json/quarantine/content?id=${id}`);
c8114985 23 me.store.load();
79a3f18d
DC
24 },
25
26 emptyText: gettext('No Spam Info'),
27 hidden: true,
79a3f18d
DC
28
29 features: [{
c87d46fb 30 ftype: 'summary',
79a3f18d
DC
31 }],
32
33 columns: [
34 {
35 text: gettext('Test Name'),
36 dataIndex: 'name',
63e00678 37 flex: 1,
79a3f18d 38 summaryType: 'count',
773489e3 39 summaryRenderer: _v => gettext('Spamscore'),
ba889454 40 tdCls: 'txt-monospace',
79a3f18d
DC
41 },
42 {
43 text: gettext('Score'),
44 dataIndex: 'score',
45 align: 'right',
ba889454 46 tdCls: 'txt-monospace',
926bfe7a 47 renderer: function(score, meta) {
146c46f0
TL
48 if (score === 0) {
49 return score;
50 }
926bfe7a
SS
51
52 let absScore = Math.abs(score), fontWeight = '400';
53 let background = score < 0 ? "--pmg-spam-mid-neg" : "--pmg-spam-mid-pos";
54
146c46f0
TL
55 if (absScore >= 3) {
56 fontWeight = '900';
926bfe7a 57 background = score < 0 ? "--pmg-spam-high-neg" : "--pmg-spam-high-pos";
146c46f0
TL
58 } else if (absScore >= 1.5) {
59 fontWeight = '600';
60 } else if (absScore <= 0.1) {
61 fontWeight = '200';
926bfe7a 62 background = score < 0 ? "--pmg-spam-low-neg" : "--pmg-spam-low-pos";
146c46f0 63 }
926bfe7a
SS
64
65 meta.tdStyle = `font-weight: ${fontWeight};background-color: var(${background});`;
146c46f0 66 return score;
d5aca48e 67 },
79a3f18d 68 summaryType: 'sum',
773489e3 69 summaryRenderer: value => Ext.util.Format.round(value, 5),
79a3f18d
DC
70 },
71 {
72 text: gettext('Description'),
73 dataIndex: 'desc',
63e00678 74 flex: 2,
c87d46fb
TL
75 },
76 ],
79a3f18d 77});