]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/MailProxyOptions.js
Revert "fix tracking center with newer proxmox-widget-toolkit"
[pmg-gui.git] / js / MailProxyOptions.js
index a9e298df25062b3ae4527ae4bd4accb1bf810675..b151350323c49a13226d5bf916560884974c8334 100644 (file)
@@ -2,121 +2,112 @@ Ext.define('PMG.MailProxyOptions', {
     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);
+    },
 });