]> git.proxmox.com Git - pmg-gui.git/blame - js/SpamDetectorOptions.js
spam detector: custom rules: move apply/revert buttons to pending section
[pmg-gui.git] / js / SpamDetectorOptions.js
CommitLineData
b5d7e0ca
DM
1Ext.define('PMG.SpamDetectorOptions', {
2 extend: 'Proxmox.grid.ObjectGrid',
3 alias: ['widget.pmgSpamDetectorOptions'],
4
5e453db7
DM
5 monStoreErrors: true,
6
c87d46fb 7 initComponent: function() {
b5d7e0ca
DM
8 var me = this;
9
10 me.add_boolean_row('use_awl', gettext('Use auto-whitelists'),
5b698165 11 { defaultValue: 0 });
b5d7e0ca
DM
12
13 me.add_boolean_row('use_bayes', gettext('Use Bayesian filter'),
5b698165 14 { defaultValue: 0 });
c87d46fb 15
b5d7e0ca
DM
16 me.add_boolean_row('rbl_checks', gettext('Use RBL checks'),
17 { defaultValue: 1 });
18
dbda33bb
DM
19 me.add_boolean_row('use_razor', gettext('Use Razor2 checks'),
20 { defaultValue: 1 });
21
476088ee
SI
22 me.add_boolean_row('extract_text', gettext('Extract Text from Attachments'));
23
b5d7e0ca 24 me.add_integer_row('maxspamsize', gettext('Max Spam Size (bytes)'),
c87d46fb
TL
25 {
26 defaultValue: 256*1024,
27 minValue: 64, deleteEmpty: true,
28});
b5d7e0ca 29
8dca8d1d
DM
30 me.rows.languages = {
31 required: true,
32 header: gettext('Languages'),
33 editor: 'PMG.SpamDetectorLanguages',
34 renderer: function(value) {
5a768cc5 35 return value || 'all';
c87d46fb 36 },
8dca8d1d
DM
37 };
38
d853d9a2 39 me.add_integer_row('bounce_score', gettext('Backscatter Score'),
c87d46fb
TL
40 {
41 defaultValue: 0,
d853d9a2 42 minValue: 0, maxValue: 1000,
c87d46fb
TL
43 deleteEmpty: true,
44});
d853d9a2 45
85e32981 46 me.add_integer_row('clamav_heuristic_score', gettext('Heuristic Score'),
c87d46fb
TL
47 {
48 defaultValue: 3,
85e32981 49 minValue: 0, maxValue: 1000,
c87d46fb
TL
50 deleteEmpty: true,
51});
85e32981 52
b5d7e0ca
DM
53 var baseurl = '/config/spam';
54
55 me.selModel = Ext.create('Ext.selection.RowModel', {});
56
57 Ext.apply(me, {
58 tbar: [{
59 text: gettext('Edit'),
60 xtype: 'proxmoxButton',
61 disabled: true,
131ba4f6 62 handler: function() { me.run_editor(); },
c87d46fb 63 selModel: me.selModel,
b5d7e0ca
DM
64 }],
65 url: '/api2/json' + baseurl,
66 editorConfig: {
573a6e8b 67 url: '/api2/extjs' + baseurl,
c87d46fb 68 onlineHelp: 'pmgconfig_spamdetector',
b5d7e0ca
DM
69 },
70 interval: 5000,
71 cwidth1: 200,
72 listeners: {
c87d46fb
TL
73 itemdblclick: me.run_editor,
74 },
b5d7e0ca
DM
75 });
76
77 me.callParent();
78
79 me.on('activate', me.rstore.startUpdate);
80 me.on('destroy', me.rstore.stopUpdate);
00564597 81 me.on('deactivate', me.rstore.stopUpdate);
c87d46fb 82 },
b5d7e0ca 83});