]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/FetchmailView.js
bump version to 1.0-35
[pmg-gui.git] / js / FetchmailView.js
index 02be98009d8e5d176ff1fd6f900cb8230b6646b9..08df001969a4e92ffc4956afc7281b724c303bdb 100644 (file)
@@ -1,10 +1,11 @@
+/*global Proxmox*/
 Ext.define('pmg-fetchmail-users', {
     extend: 'Ext.data.Model',
     fields: [
        'id', 'protocol', 'port', 'server', 'user', 'pass', 'target',
        'ssl', 'keep',
        { type: 'integer', name: 'interval' },
-       { type: 'boolean', name: 'enable' },
+       { type: 'boolean', name: 'enable' }
     ],
     proxy: {
         type: 'proxmox',
@@ -17,6 +18,8 @@ Ext.define('PMG.FetchmailView', {
     extend: 'Ext.grid.GridPanel',
     xtype: 'pmgFetchmailView',
 
+    baseurl: '/api2/extjs/config/fetchmail',
+
     store: {
        autoDestroy: true,
        autoLoad: true,
@@ -29,21 +32,77 @@ Ext.define('PMG.FetchmailView', {
 
        init: function(view) {
            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();
+
+           var rec = view.selModel.getSelection()[0];
+
+            var win = Ext.create('PMG.FetchmailEdit', {
+               userid: rec.data.id,
+               url: view.baseurl + '/' + rec.data.id,
+               method: 'PUT',
+               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',
+       itemdblclick: 'onEdit'
     },
 
-     columns: [
+    columns: [
        {
            header: gettext('Server'),
            flex: 1,
            renderer: Ext.String.htmlEncode,
            dataIndex: 'server'
        },
+       {
+           header: gettext('Protocol'),
+           dataIndex: 'protocol'
+       },
        {
            header: gettext('User name'),
            flex: 1,