]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/RelayDomains.js
spam detector: custom rules: consitent add/edit/remove button & modernization
[pmg-gui.git] / js / RelayDomains.js
index 8945b2d3512a7c3e0d0fae9add2944b475928516..1ac8a412f0bc3887a40db39149fbc1addb54e70e 100644 (file)
@@ -1,27 +1,31 @@
-/*global Proxmox*/
 Ext.define('pmg-domains', {
     extend: 'Ext.data.Model',
-    fields: [ 'domain', 'comment' ],
-    proxy: {
-        type: 'proxmox',
-       url: "/api2/json/config/domains"
-    },
-    idProperty: 'domain'
+    fields: ['domain', 'comment'],
+    idProperty: 'domain',
 });
 
 Ext.define('PMG.RelayDomains', {
     extend: 'Ext.grid.GridPanel',
     alias: ['widget.pmgRelayDomains'],
 
-    initComponent : function() {
+    baseurl: '/config/domains',
+    domain_desc: gettext('Relay Domain'),
+
+    onlineHelp: 'pmgconfig_mailproxy_relay_domains',
+
+    initComponent: function() {
        var me = this;
 
        var store = new Ext.data.Store({
            model: 'pmg-domains',
            sorters: {
                property: 'domain',
-               order: 'DESC'
-           }
+               direction: 'ASC',
+           },
+           proxy: {
+               type: 'proxmox',
+               url: '/api2/json' + me.baseurl,
+           },
        });
 
         var reload = function() {
@@ -30,13 +34,6 @@ Ext.define('PMG.RelayDomains', {
 
        me.selModel = Ext.create('Ext.selection.RowModel', {});
 
-       var remove_btn = Ext.createWidget('proxmoxStdRemoveButton', {
-           selModel: me.selModel,
-           baseurl: '/config/domains',
-           callback: reload,
-           waitMsgTarget: me
-       });
-
        var run_editor = function() {
            var rec = me.selModel.getSelection()[0];
            if (!rec) {
@@ -44,21 +41,22 @@ Ext.define('PMG.RelayDomains', {
            }
 
            var config = {
-               url: "/api2/extjs/config/domains/" + rec.data.domain,
+               url: '/api2/extjs' + me.baseurl + '/' + rec.data.domain,
+               onlineHelp: me.onlineHelp,
                method: 'PUT',
-               subject: gettext("Relay Domain"),
+               subject: me.domain_desc,
                items: [
                    {
                        xtype: 'displayfield',
                        name: 'domain',
-                       fieldLabel: gettext("Relay Domain")
+                       fieldLabel: me.domain_desc,
                    },
                    {
                        xtype: 'textfield',
                        name: 'comment',
-                       fieldLabel: gettext("Comment")
-                   }
-               ]
+                       fieldLabel: gettext("Comment"),
+                   },
+               ],
            };
 
            var win = Ext.createWidget('proxmoxWindowEdit', config);
@@ -68,45 +66,53 @@ Ext.define('PMG.RelayDomains', {
            win.show();
        };
 
-       var tbar = [
+       let tbar = [
+            {
+               text: gettext('Create'),
+               handler: () => Ext.createWidget('proxmoxWindowEdit', {
+                   autoShow: true,
+                   method: 'POST',
+                   url: '/api2/extjs' + me.baseurl,
+                   onlineHelp: me.onlineHelp,
+                   isCreate: true,
+                   subject: gettext("Relay Domain"),
+                   items: [
+                       {
+                           xtype: 'proxmoxtextfield',
+                           name: 'domain',
+                           fieldLabel: me.domain_desc,
+                       },
+                       {
+                           xtype: 'proxmoxtextfield',
+                           name: 'comment',
+                           fieldLabel: gettext("Comment"),
+                       },
+                   ],
+                   listeners: {
+                       destroy: () => reload(),
+                   },
+               }),
+           },
+           '-',
             {
                xtype: 'proxmoxButton',
                text: gettext('Edit'),
                disabled: true,
                selModel: me.selModel,
-               handler: run_editor
+               handler: run_editor,
             },
-            {
-               text: gettext('Create'),
-               handler: function() {
-                   /*jslint confusion: true*/
-                   var config = {
-                       method: 'POST',
-                       url: "/api2/extjs/config/domains",
-                       isCreate: true,
-                       subject: gettext("Relay Domain"),
-                       items: [
-                           {
-                               xtype: 'proxmoxtextfield',
-                               name: 'domain',
-                               fieldLabel: gettext("Relay Domain")
-                           },
-                           {
-                               xtype: 'proxmoxtextfield',
-                               name: 'comment',
-                               fieldLabel: gettext("Comment")
-                           }
-                       ]
-                   };
-                   /*jslint confusion: false*/
-
-                   var win = Ext.createWidget('proxmoxWindowEdit', config);
-
-                   win.on('destroy', reload);
-                   win.show();
-               }
-            },
-           remove_btn
+           {
+               xtype: 'proxmoxStdRemoveButton',
+               selModel: me.selModel,
+               baseurl: me.baseurl,
+               callback: reload,
+               waitMsgTarget: me,
+           },
+           '->',
+           {
+               xtype: 'pmgFilterField',
+               filteredFields: ['domain', 'comment'],
+           },
         ];
 
        Proxmox.Utils.monStoreErrors(me, store, true);
@@ -114,30 +120,31 @@ Ext.define('PMG.RelayDomains', {
        Ext.apply(me, {
            store: store,
            tbar: tbar,
+           run_editor: run_editor,
            viewConfig: {
-               trackOver: false
+               trackOver: false,
            },
            columns: [
                {
-                   header: gettext('Relay Domain'),
+                   header: me.domain_desc,
                    width: 200,
                    sortable: true,
-                   dataIndex: 'domain'
+                   dataIndex: 'domain',
                },
                {
                    header: gettext('Comment'),
                    sortable: false,
                    renderer: Ext.String.htmlEncode,
                    dataIndex: 'comment',
-                   flex: 1
-               }
+                   flex: 1,
+               },
            ],
            listeners: {
                itemdblclick: run_editor,
-               activate: reload
-           }
+               activate: reload,
+           },
        });
 
        me.callParent();
-    }
+    },
 });