]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/FetchmailView.js
user management: separate add/create and edit/remove buttons
[pmg-gui.git] / js / FetchmailView.js
index d4c79dad83aea092e1595f2b2631c6397fef00d9..5a3ae7100364e692f329de0a33b8fb80654c988a 100644 (file)
@@ -8,9 +8,9 @@ Ext.define('pmg-fetchmail-users', {
     ],
     proxy: {
         type: 'proxmox',
-       url: "/api2/json/config/fetchmail"
+       url: "/api2/json/config/fetchmail",
     },
-    idProperty: 'id'
+    idProperty: 'id',
 });
 
 Ext.define('PMG.FetchmailView', {
@@ -22,7 +22,7 @@ Ext.define('PMG.FetchmailView', {
     store: {
        autoDestroy: true,
        autoLoad: true,
-       model: 'pmg-fetchmail-users'
+       model: 'pmg-fetchmail-users',
     },
 
     controller: {
@@ -33,6 +33,17 @@ Ext.define('PMG.FetchmailView', {
            Proxmox.Utils.monStoreErrors(view, view.store, true);
        },
 
+       onAdd: function() {
+           var view = this.getView();
+
+            var win = Ext.create('PMG.FetchmailEdit', {
+               url: view.baseurl,
+               method: 'POST',
+            });
+            win.on('destroy', function() { view.store.load(); });
+            win.show();
+       },
+
        onEdit: function() {
            var view = this.getView();
 
@@ -42,13 +53,40 @@ Ext.define('PMG.FetchmailView', {
                userid: rec.data.id,
                url: view.baseurl + '/' + rec.data.id,
                method: 'PUT',
-               autoLoad: true
+               autoLoad: true,
             });
             win.on('destroy', function() { view.store.load(); });
             win.show();
-       }
+       },
+
+       onAfterRemove: function(btn, res) {
+           var view = this.getView();
+           view.store.load();
+       },
     },
 
+    tbar: [
+        {
+           text: gettext('Add'),
+           reference: 'addBtn',
+           handler: 'onAdd',
+       },
+       '-',
+       {
+           xtype: 'proxmoxButton',
+           text: gettext('Edit'),
+           disabled: true,
+           handler: 'onEdit',
+       },
+       {
+           xtype: 'proxmoxStdRemoveButton',
+           baseurl: '/config/fetchmail',
+           reference: 'removeBtn',
+           callback: 'onAfterRemove',
+           waitMsgTarget: true,
+       },
+    ],
+
     listeners: {
        //scope: 'controller',
        itemdblclick: 'onEdit',
@@ -59,29 +97,33 @@ Ext.define('PMG.FetchmailView', {
            header: gettext('Server'),
            flex: 1,
            renderer: Ext.String.htmlEncode,
-           dataIndex: 'server'
+           dataIndex: 'server',
+       },
+       {
+           header: gettext('Protocol'),
+           dataIndex: 'protocol',
        },
        {
            header: gettext('User name'),
            flex: 1,
            renderer: Ext.String.htmlEncode,
-           dataIndex: 'user'
+           dataIndex: 'user',
        },
        {
            header: gettext('Deliver to'),
            flex: 1,
            renderer: Ext.String.htmlEncode,
-           dataIndex: 'target'
+           dataIndex: 'target',
        },
        {
            header: gettext('Enabled'),
            sortable: true,
            renderer: Proxmox.Utils.format_boolean,
-           dataIndex: 'enable'
+           dataIndex: 'enable',
        },
        {
            header: gettext('Interval'),
-           dataIndex: 'interval'
-       }
-     ]
+           dataIndex: 'interval',
+       },
+     ],
 });