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