extend: 'Proxmox.grid.ObjectGrid',
alias: ['widget.pmgMailProxyOptions'],
- initComponent : function() {
+ monStoreErrors: true,
+
+ initComponent: function() {
var me = this;
- var register_bool = function(cfg, name, subject, defaultValue, labelWidth) {
- cfg[name] = {
- required: true,
- defaultValue: defaultValue,
- header: subject,
- renderer: Proxmox.Utils.format_boolean,
- editor: {
- xtype: 'proxmoxWindowEdit',
- subject: subject,
- items: {
- xtype: 'proxmoxcheckbox',
- name: name,
- uncheckedValue: 0,
- defaultValue: defaultValue,
- deleteDefaultValue: true,
- labelWidth: labelWidth,
- fieldLabel: subject
- }
- }
- };
- };
+ me.add_integer_row('maxsize', gettext('Message Size (bytes)'),
+ {
+ defaultValue: 1024*1024*10,
+ minValue: 1024, deleteEmpty: true,
+});
- var register_integer = function(cfg, name, subject, defaultValue,
- minValue, maxValue, labelWidth) {
- cfg[name] = {
- required: true,
- defaultValue: defaultValue,
- header: subject,
- editor: {
- xtype: 'proxmoxWindowEdit',
- subject: subject,
- items: {
- xtype: 'proxmoxintegerfield',
- name: 'name',
- minValue: minValue,
- maxValue: maxValue,
- deleteEmpty: true,
- value: defaultValue,
- labelWidth: labelWidth,
- fieldLabel: subject
- }
- }
- };
- };
+ me.add_boolean_row('rejectunknown', gettext('Reject Unknown Clients'));
- var rows = {};
+ me.add_boolean_row('rejectunknownsender', gettext('Reject Unknown Senders'));
- register_integer(rows, 'maxsize', gettext('Message Size (bytes)'),
- 1024*1024*10, 1024, undefined, 150);
+ me.add_boolean_row('helotests', gettext('SMTP HELO checks'));
- register_bool(rows, 'rejectunknown', gettext('Reject Unknown Clients'), 0, 150);
+ me.add_text_row('dnsbl_sites', gettext('DNSBL Sites'),
+ { deleteEmpty: true, defaultValue: Proxmox.Utils.noneText });
- register_bool(rows, 'rejectunknownsender', gettext('Reject Unknown Senders'), 0, 150);
+ me.add_integer_row('dnsbl_threshold', gettext('DNSBL Threshold'),
+ { deleteEmpty: true, defaultValue: 1, minValue: 0 });
- register_bool(rows, 'helotests', gettext('SMTP HELO checks'), 0, 150);
+ var render_verifyreceivers = function(value) {
+ if (value === undefined || value === '__default__') {
+ return Proxmox.Utils.noText;
+ }
+ return Proxmox.Utils.yesText + ' (' + value + ')';
+ };
- register_bool(rows, 'use_rbl', gettext('Use RBL checks'), 1, 150);
+ me.add_combobox_row('verifyreceivers', gettext('Verify Receivers'), {
+ renderer: render_verifyreceivers,
+ defaultValue: '__default__',
+ deleteEmpty: true,
+ comboItems: [
+ ['__default__', render_verifyreceivers('__default__')],
+ ['450', render_verifyreceivers('450')],
+ ['550', render_verifyreceivers('550')]],
+ });
- // fixme: verify receivers
+ me.add_boolean_row('greylist', gettext('Use Greylisting for IPv4'),
+ { defaultValue: 1 });
- register_bool(rows, 'greylist', gettext('Use Greylisting'), 1, 150);
+ me.add_integer_row('greylistmask4', gettext('Netmask for Greylisting IPv4'),
+ { defaultValue: 24, minValue: 0, maxValue: 32 });
- register_bool(rows, 'spf', gettext('Use SPF'), 1, 100);
+ me.add_boolean_row('greylist6', gettext('Use Greylisting for IPv6'),
+ { defaultValue: 0 });
- register_bool(rows, 'hide_received', gettext('Hide Internal Hosts'), 0, 150);
+ me.add_integer_row('greylistmask6', gettext('Netmask for Greylisting IPv6'),
+ { defaultValue: 64, minValue: 0, maxValue: 128 });
- register_integer(rows, 'dwarning', gettext('Delay Warning Time (hours)'),
- 4, 0, undefined, 200);
+ me.add_boolean_row('spf', gettext('Use SPF'), { defaultValue: 1 });
- register_integer(rows, 'conn_count_limit', gettext('Client Connection Count Limit'),
- 50, 0, 65535, 200);
+ me.add_boolean_row('hide_received', gettext('Hide Internal Hosts'));
- register_integer(rows, 'conn_rate_limit', gettext('Client Connection Rate Limit'),
- 0, 0, undefined, 200);
+ me.add_integer_row('dwarning', gettext('Delay Warning Time (hours)'),
+ { defaultValue: 4, minValue: 0 });
- register_integer(rows, 'message_rate_limit', gettext('Client Message Rate Limit'),
- 0, 0, undefined, 200);
+ me.add_integer_row('conn_count_limit', gettext('Client Connection Count Limit'),
+ { defaultValue: 50, minValue: 0, maxValue: 65535 });
- rows.banner = {
- required: true,
- defaultValue: 'ESMTP Proxmox',
- header: gettext('SMTPD Banner'),
- editor: {
- xtype: 'proxmoxWindowEdit',
- subject: gettext('SMTPD Banner'),
- items: {
- xtype: 'proxmoxtextfield',
- name: 'banner',
- deleteEmpty: true,
- fieldLabel: gettext('SMTPD Banner')
- }
- }
- };
+ me.add_integer_row('conn_rate_limit', gettext('Client Connection Rate Limit'),
+ { defaultValue: 0, minValue: 0 });
+
+ me.add_integer_row('message_rate_limit', gettext('Client Message Rate Limit'),
+ { defaultValue: 0, minValue: 0 });
+
+ me.add_text_row('banner', gettext('SMTPD Banner'),
+ { deleteEmpty: true, defaultValue: 'ESMTP Proxmox' });
+
+ me.add_boolean_row('ndr_on_block', gettext('Send NDR on Blocked E-Mails'));
+ // FIXME allow to pass onlineHelp to ObjectGrid's add_xyz_row..
+ // onlineHelp: 'pmgconfig_mailproxy_before_after_queue',
+ me.rows.ndr_on_block.editor.onlineHelp = 'pmgconfig_mailproxy_before_after_queue';
+
+ me.add_boolean_row('before_queue_filtering', gettext('Before Queue Filtering'));
var baseurl = '/config/mail';
+ me.selModel = Ext.create('Ext.selection.RowModel', {});
+
Ext.apply(me, {
+ tbar: [{
+ text: gettext('Edit'),
+ xtype: 'proxmoxButton',
+ disabled: true,
+ handler: function() { me.run_editor(); },
+ selModel: me.selModel,
+ }],
url: '/api2/json' + baseurl,
editorConfig: {
url: '/api2/extjs' + baseurl,
+ onlineHelp: 'pmgconfig_mailproxy_options',
},
interval: 5000,
cwidth1: 200,
- rows: rows,
listeners: {
- itemdblclick: me.run_editor
- }
+ itemdblclick: me.run_editor,
+ },
});
me.callParent();
me.on('activate', me.rstore.startUpdate);
me.on('destroy', me.rstore.stopUpdate);
- }
+ me.on('deactivate', me.rstore.stopUpdate);
+ },
});