]> git.proxmox.com Git - pmg-gui.git/blame - js/MailProxyOptions.js
MailProxyOptions: add greylist enhancements
[pmg-gui.git] / js / MailProxyOptions.js
CommitLineData
ff735274 1/*global Proxmox*/
7b27b6bc
DM
2Ext.define('PMG.MailProxyOptions', {
3 extend: 'Proxmox.grid.ObjectGrid',
4 alias: ['widget.pmgMailProxyOptions'],
5
5e453db7
DM
6 monStoreErrors: true,
7
7b27b6bc
DM
8 initComponent : function() {
9 var me = this;
10
dfe9fc4b
DM
11 me.add_integer_row('maxsize', gettext('Message Size (bytes)'),
12 { defaultValue: 1024*1024*10,
13 minValue: 1024, deleteEmpty: true });
e866b4e7 14
dfe9fc4b 15 me.add_boolean_row('rejectunknown', gettext('Reject Unknown Clients'));
e866b4e7 16
dfe9fc4b 17 me.add_boolean_row('rejectunknownsender', gettext('Reject Unknown Senders'));
e866b4e7 18
dfe9fc4b 19 me.add_boolean_row('helotests', gettext('SMTP HELO checks'));
e866b4e7 20
47ee337f
DM
21 me.add_text_row('dnsbl_sites', gettext('DNSBL Sites'),
22 { deleteEmpty: true, defaultValue: Proxmox.Utils.noneText });
e866b4e7 23
feb7e678 24 me.add_integer_row('dnsbl_threshold', gettext('DNSBL Threshold'),
f31c7df9 25 { deleteEmpty: true, defaultValue: 1, minValue: 0 });
feb7e678 26
527c093e
DM
27 var render_verifyreceivers = function(value) {
28 if (value === undefined || value === '__default__') {
29 return Proxmox.Utils.noText;
b8abd282 30 }
527c093e 31 return Proxmox.Utils.yesText + ' (' + value + ')';
b8abd282 32 };
e866b4e7 33
de0ebd99
DC
34 /*jslint confusion: true*/
35 /*defaultValue is string and number*/
527c093e
DM
36 me.add_combobox_row('verifyreceivers', gettext('Verify Receivers'), {
37 renderer: render_verifyreceivers,
38 defaultValue: '__default__',
39 deleteEmpty: true,
40 comboItems: [
41 ['__default__', render_verifyreceivers('__default__') ],
42 ['450', render_verifyreceivers('450') ],
43 ['550', render_verifyreceivers('550') ]]
44 });
de0ebd99 45 /*jslint confusion: false*/
527c093e 46
62a6bcc8 47 me.add_boolean_row('greylist', gettext('Use Greylisting for IPv4'),
dfe9fc4b 48 { defaultValue: 1 });
e866b4e7 49
62a6bcc8
SI
50 me.add_integer_row('greylistmask4', gettext('Netmask for Greylisting IPv4'),
51 { defaultValue: 24, minValue: 0 });
52
53 me.add_boolean_row('greylist6', gettext('Use Greylisting for IPv6'),
54 { defaultValue: 0 });
55
56 me.add_integer_row('greylistmask6', gettext('Netmask for Greylisting IPv6'),
57 { defaultValue: 64, minValue: 0 });
58
dfe9fc4b 59 me.add_boolean_row('spf', gettext('Use SPF'), { defaultValue: 1 });
e866b4e7 60
dfe9fc4b 61 me.add_boolean_row('hide_received', gettext('Hide Internal Hosts'));
e866b4e7 62
dfe9fc4b
DM
63 me.add_integer_row('dwarning', gettext('Delay Warning Time (hours)'),
64 { defaultValue: 4, minValue: 0 });
e866b4e7 65
dfe9fc4b
DM
66 me.add_integer_row('conn_count_limit', gettext('Client Connection Count Limit'),
67 { defaultValue: 50, minValue: 0, maxValue: 65535 });
e866b4e7 68
dfe9fc4b
DM
69 me.add_integer_row('conn_rate_limit', gettext('Client Connection Rate Limit'),
70 { defaultValue: 0, minValue: 0 });
e866b4e7 71
dfe9fc4b
DM
72 me.add_integer_row('message_rate_limit', gettext('Client Message Rate Limit'),
73 { defaultValue: 0, minValue: 0 });
e866b4e7 74
de0ebd99
DC
75 /*jslint confusion: true*/
76 /*defaultValue is string and number*/
3c2246f4 77 me.add_text_row('banner', gettext('SMTPD Banner'),
6ccd0a47 78 { deleteEmpty: true, defaultValue: 'ESMTP Proxmox' });
de0ebd99 79 /*jslint confusion: false*/
7b27b6bc 80
28c12d95 81 me.add_boolean_row('ndr_on_block', gettext('Send NDR on Blocked E-Mails'));
5883753d
TL
82 // FIXME allow to pass onlineHelp to ObjectGrid's add_xyz_row..
83 // onlineHelp: 'pmgconfig_mailproxy_before_after_queue',
84 me.rows.ndr_on_block.editor.onlineHelp = 'pmgconfig_mailproxy_before_after_queue';
28c12d95 85
bafcdcf8
SI
86 me.add_boolean_row('before_queue_filtering', gettext('Before Queue Filtering'));
87
7b27b6bc
DM
88 var baseurl = '/config/mail';
89
d80ddaf7
DM
90 me.selModel = Ext.create('Ext.selection.RowModel', {});
91
7b27b6bc 92 Ext.apply(me, {
d80ddaf7
DM
93 tbar: [{
94 text: gettext('Edit'),
95 xtype: 'proxmoxButton',
96 disabled: true,
131ba4f6 97 handler: function() { me.run_editor(); },
d80ddaf7
DM
98 selModel: me.selModel
99 }],
7b27b6bc
DM
100 url: '/api2/json' + baseurl,
101 editorConfig: {
573a6e8b
SI
102 url: '/api2/extjs' + baseurl,
103 onlineHelp: 'pmgconfig_mailproxy_options'
7b27b6bc
DM
104 },
105 interval: 5000,
106 cwidth1: 200,
7b27b6bc
DM
107 listeners: {
108 itemdblclick: me.run_editor
109 }
110 });
111
112 me.callParent();
113
114 me.on('activate', me.rstore.startUpdate);
115 me.on('destroy', me.rstore.stopUpdate);
00564597 116 me.on('deactivate', me.rstore.stopUpdate);
7b27b6bc
DM
117 }
118});