]> git.proxmox.com Git - pmg-gui.git/blobdiff - js/ObjectGroupList.js
bump version to 1.0-42
[pmg-gui.git] / js / ObjectGroupList.js
index b7e29bf90aeee4a712c52ba65f8f190b9f2dd910..80655f7af760f217b272ff592230eb32c2f9bef3 100644 (file)
@@ -1,7 +1,8 @@
+/*global Proxmox*/
 Ext.define('pmg-object-group', {
     extend: 'Ext.data.Model',
     fields: [ 'id', 'name', 'info' ],
-    idProperty: 'cidr'
+    idProperty: 'id'
 });
 
 Ext.define('pmg-object-list', {
@@ -25,10 +26,13 @@ Ext.define('PMG.ObjectGroupList', {
 
     baseurl: undefined,
 
+    enableButtons: true,
+
     inputItems: [
        {
            xtype: 'textfield',
            name: 'name',
+           allowBlank: false,
            fieldLabel: gettext('Name')
        },
        {
@@ -41,14 +45,7 @@ Ext.define('PMG.ObjectGroupList', {
     reload: function() {
        var me = this;
 
-       var rec = me.selModel.getSelection()[0];
-        me.store.load(function() {
-           if (rec) {
-               // try to selectprevious selection
-               var nrec = me.store.findRecord('id', rec.data.id);
-               me.selModel.select(nrec);
-           }
-       });
+        me.store.load();
     },
 
     run_editor: function() {
@@ -61,6 +58,7 @@ Ext.define('PMG.ObjectGroupList', {
 
        var config = {
            url: "/api2/extjs" + me.baseurl +'/' + rec.data.id + '/config',
+           onlineHelp: 'chapter_mailfilter',
            method: 'PUT',
            subject: me.subject,
            width: 400,
@@ -87,7 +85,7 @@ Ext.define('PMG.ObjectGroupList', {
            model: 'pmg-object-group',
            proxy: {
                type: 'proxmox',
-               url: "/api2/json" + me.baseurl,
+               url: "/api2/json" + me.baseurl
            },
            sorters: {
                property: 'name',
@@ -97,28 +95,12 @@ Ext.define('PMG.ObjectGroupList', {
 
        me.selModel = Ext.create('Ext.selection.RowModel', {});
 
-       var remove_btn = Ext.createWidget('proxmoxButton', {
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.createWidget('proxmoxStdRemoveButton', {
            selModel: me.selModel,
-           confirmMsg: function (rec) {
-               return Ext.String.format(
-                   gettext('Are you sure you want to remove entry {0}'),
-                   "'" + rec.data.name + "'");
-           },
-           handler: function(btn, event, rec) {
-               Proxmox.Utils.API2Request({
-                   url: me.baseurl + '/' + rec.data.id,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       me.reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
-           }
+           baseurl: me.baseurl,
+           callback: function() { me.reload(); },
+           getRecordName: function(rec) { return rec.data.name; },
+           waitMsgTarget: me
        });
 
        var tbar = [
@@ -135,7 +117,8 @@ Ext.define('PMG.ObjectGroupList', {
                    var config = {
                        method: 'POST',
                        url: "/api2/extjs" + me.baseurl,
-                       create: true,
+                       onlineHelp: 'chapter_mailfilter',
+                       isCreate: true,
                        width: 400,
                        subject: me.subject,
                        items: me.inputItems
@@ -150,10 +133,13 @@ Ext.define('PMG.ObjectGroupList', {
            remove_btn
         ];
 
-       Proxmox.Utils.monStoreErrors(me, me.store);
+       Proxmox.Utils.monStoreErrors(me, me.store, true);
+
+       if (me.enableButtons) {
+           me.tbar = tbar;
+       }
 
        Ext.apply(me, {
-           tbar: tbar,
            columns: [
                {
                    header: gettext('Name'),
@@ -164,7 +150,11 @@ Ext.define('PMG.ObjectGroupList', {
                }
            ],
            listeners: {
-               itemdblclick: function() { me.run_editor(); },
+               itemdblclick: function() {
+                   if (me.enableButtons) {
+                       me.run_editor();
+                   }
+               },
                activate: function() { me.reload(); }
            }
        });