]> git.proxmox.com Git - pve-manager.git/commitdiff
use Proxmox.button.StdRemoveButton where possible
authorDominik Csapak <d.csapak@proxmox.com>
Mon, 15 Jan 2018 14:18:07 +0000 (15:18 +0100)
committerDominik Csapak <d.csapak@proxmox.com>
Thu, 25 Jan 2018 12:36:37 +0000 (13:36 +0100)
most 'Remove' buttons we have used the same code pattern over and over,
with the StdRemoveButton we have a component which does all of this for
us

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
15 files changed:
www/manager6/dc/AuthView.js
www/manager6/dc/Backup.js
www/manager6/dc/GroupView.js
www/manager6/dc/PoolView.js
www/manager6/dc/SecurityGroups.js
www/manager6/dc/StorageView.js
www/manager6/dc/UserView.js
www/manager6/grid/BackupView.js
www/manager6/grid/FirewallAliases.js
www/manager6/grid/FirewallRules.js
www/manager6/grid/Replication.js
www/manager6/ha/Groups.js
www/manager6/ha/Resources.js
www/manager6/panel/IPSet.js
www/manager6/storage/ContentView.js

index 5c47f442b248e46b117728a0c7fa244d5efaba9e..d2d152a84e213d54079357ee6fab281706736442 100644 (file)
@@ -46,31 +46,14 @@ Ext.define('PVE.dc.AuthView', {
            handler: run_editor
        });
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
+           baseurl: '/access/domains/',
            selModel: sm,
-           confirmMsg: function (rec) {
-               return Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
-                                        "'" + rec.data.realm + "'");
-           },
            enableFn: function(rec) {
                return !(rec.data.type === 'pve' || rec.data.type === 'pam');
            },
-           handler: function(btn, event, rec) {
-               var realm = rec.data.realm;
-
-               PVE.Utils.API2Request({
-                   url: '/access/domains/' + realm,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
+           callback: function() {
+               reload();
            }
         });
 
index 235bea6f6cecf432fcbf93f840638f7d2cc74533..64f99e324e964bf4298d4d1a3ac979e58ae891c2 100644 (file)
@@ -362,23 +362,11 @@ Ext.define('PVE.dc.BackupView', {
            handler: run_editor
        });
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           confirmMsg: gettext('Are you sure you want to remove this entry'),
-           handler: function(btn, event, rec) {
-               PVE.Utils.API2Request({
-                   url: '/cluster/backup/' + rec.data.id,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
+           baseurl: '/cluster/backup',
+           callback: function() {
+               reload();
            }
        });
 
index 31fc286b16df78c9aaa094176f19fba0a465bec3..ce679732b26078cd2d2e9df5f775dec8ff69373c 100644 (file)
@@ -25,27 +25,12 @@ Ext.define('PVE.dc.GroupView', {
 
        var sm = Ext.create('Ext.selection.RowModel', {});
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           confirmMsg: function (rec) {
-               return Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
-                                        "'" + rec.data.groupid + "'");
+           callback: function() {
+               reload();
            },
-           handler: function(btn, event, rec) {
-               PVE.Utils.API2Request({
-                   url: '/access/groups/' + rec.data.groupid,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
-           }
+           baseurl: '/access/groups/'
        });
 
        var run_editor = function() {
index 8b44d28f7683bca8bdff4c75c70aaaa9e855ef85..b844f72401dad4227601fe139f7d5d816f0921a0 100644 (file)
@@ -25,26 +25,11 @@ Ext.define('PVE.dc.PoolView', {
 
        var sm = Ext.create('Ext.selection.RowModel', {});
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           confirmMsg: function (rec) {
-               return Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
-                                        "'" + rec.data.poolid + "'");
-           },
-           handler: function(btn, event, rec) {
-               PVE.Utils.API2Request({
-                   url: '/pools/' + rec.data.poolid,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
+           baseurl: '/pools/',
+           callback: function () {
+               reload();
            }
        });
 
index 0872eb0a87a28a48d5b38fdf16b5bd69ecc1d5c6..906f2171a20119b689b755ecde52f4566cd9eece 100644 (file)
@@ -149,24 +149,14 @@ Ext.define('PVE.SecurityGroupList', {
            }
        });
 
-       me.removeBtn = new PVE.button.Button({
-           text: gettext('Remove'),
+       me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           disabled: true,
-           handler: function() {
-               var rec = sm.getSelection()[0];
-               if (!rec || !me.base_url) {
-                   return;
-               }
-               PVE.Utils.API2Request({
-                   url: me.base_url + '/' + rec.data.group,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   failure: function(response, options) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   },
-                   callback: reload
-               });
+           baseurl: me.base_url + '/',
+           enableFn: function(rec) {
+               return (rec && me.base_url);
+           },
+           callback: function() {
+               reload();
            }
        });
 
index 8f5a055c18bb15245426d804cb19a40646dd994b..9255c6e6c938895427be8c79bdc1b2d4e27eb42e 100644 (file)
@@ -77,26 +77,11 @@ Ext.define('PVE.dc.StorageView', {
            handler: run_editor
        });
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           confirmMsg: function (rec) {
-               return Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
-                                        "'" + rec.data.storage + "'");
-           },
-           handler: function(btn, event, rec) {
-               PVE.Utils.API2Request({
-                   url: '/storage/' + rec.data.storage,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
+           baseurl: '/storage/',
+           callback: function() {
+               reload();
            }
        });
 
index 4d2238e32f46105fea544efc21e057b520ebd829..b14d8d9ea04af8255f353bfcd37e41aac9ba8b95 100644 (file)
@@ -81,34 +81,17 @@ Ext.define('PVE.dc.UserView', {
 
        var sm = Ext.create('Ext.selection.RowModel', {});
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
+           baseurl: '/access/users/',
            enableFn: function(rec) {
                if (!caps.access['User.Modify']) {
                    return false;
                }
                return rec.data.userid !== 'root@pam';
            },
-           confirmMsg: function (rec) {
-               return Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
-                                        "'" + rec.data.userid + "'");
-           },
-           handler: function(btn, event, rec) {
-               var userid = rec.data.userid;
-
-               PVE.Utils.API2Request({
-                   url: '/access/users/' + userid,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
+           callback: function() {
+               reload();
            }
         });
  
index 15ae85db07728d7d64f38c0ca47c2190cdcac462..a15b77b1b0a389d1efb39e3011cabb0b59b2439b 100644 (file)
@@ -156,11 +156,9 @@ Ext.define('PVE.grid.BackupView', {
            }
        });
 
-       var delete_btn = Ext.create('PVE.button.Button', {
-           text: gettext('Remove'),
-           disabled: true,
+       var delete_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           dangerous: true,        
+           dangerous: true,
            confirmMsg: function(rec) {
                var msg = Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
                                            "'" + rec.data.volid + "'");
@@ -168,27 +166,12 @@ Ext.define('PVE.grid.BackupView', {
 
                return msg;
            },
-           enableFn: function(rec) {
-               return !!rec;
-           },
-           handler: function(b, e, rec){
+           getUrl: function(rec) {
                var storage = storagesel.getValue();
-               if (!storage) {
-                   return;
-               }
-
-               var volid = rec.data.volid;
-               PVE.Utils.API2Request({
-                   url: "/nodes/" + nodename + "/storage/" + storage + "/content/" + volid,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   failure: function(response, opts) {
-                       Ext.Msg.alert('Error', response.htmlStatus);
-                   },
-                   success: function(response, options) {
-                       reload();
-                   }
-               });
+               return '/nodes/' + nodename + '/storage/' + storage + '/content/' + rec.data.volid;
+           },
+           callback: function() {
+               reload();
            }
        });
 
index af20a6652dfbcf738ac01e0ea426eb39cc75552b..f3ec3d5b4ec0110bff36ddc416f1c3e2299aa931 100644 (file)
@@ -152,25 +152,10 @@ Ext.define('PVE.FirewallAliases', {
            }
        });
 
-       me.removeBtn = new PVE.button.Button({
-           text: gettext('Remove'),
+       me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           disabled: true,
-           handler: function() {
-               var rec = sm.getSelection()[0];
-               if (!rec) {
-                   return;
-               }
-               PVE.Utils.API2Request({
-                   url: me.base_url + '/' + rec.data.name,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   failure: function(response, options) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   },
-                   callback: reload
-               });
-           }
+           baseurl: me.base_url + '/',
+           callback: reload
        });
 
 
index f016362978f31e070ff1bc088dfb804cee1ace31..64834c405a2b122027f9d840763b0e09969a73fc 100644 (file)
@@ -408,6 +408,7 @@ Ext.define('PVE.FirewallRules', {
            me.store.removeAll();
        } else {
            me.addBtn.setDisabled(false);
+           me.removeBtn.baseurl = url + '/';
            if (me.groupBtn) {
                me.groupBtn.setDisabled(false);
            }
@@ -468,26 +469,6 @@ Ext.define('PVE.FirewallRules', {
        });
     },
 
-    deleteRule: function(rule) {
-        var me = this;
-
-       if (!me.base_url) {
-           return;
-       }
-
-       PVE.Utils.API2Request({
-           url: me.base_url + '/' + rule.pos.toString() +
-               '?digest=' + encodeURIComponent(rule.digest),
-           method: 'DELETE',
-           waitMsgTarget: me,
-           failure: function(response, options) {
-               Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-           },
-           callback: function() {
-               me.store.load();
-           }
-       });
-    },
 
     initComponent: function() {
        /*jslint confusion: true */
@@ -606,16 +587,17 @@ Ext.define('PVE.FirewallRules', {
            });
        }
 
-       me.removeBtn = Ext.create('PVE.button.Button',{
-           text: gettext('Remove'),
+       me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton',{
            selModel: sm,
-           disabled: true,
-           handler: function() {
-               var rec = sm.getSelection()[0];
-               if (!rec) {
-                   return;
-               }
-               me.deleteRule(rec.data);
+           baseurl: me.base_url + '/',
+           confirmMsg: false,
+           getRecordName: function(rec) {
+               var rule = rec.data;
+               return rule.pos.toString() +
+                   '?digest=' + encodeURIComponent(rule.digest);
+           },
+           callback: function() {
+               me.store.load();
            }
        });
 
index 035cba2d414ec026e541890bbbce5c2d4ca2370e..6c2fc52926266c2bb76ef4404b70c96575ea8feb 100644 (file)
@@ -129,6 +129,8 @@ Ext.define('PVE.window.ReplicaEdit', {
     }
 });
 
+/*jslint confusion: true */
+/* callback is a function and string */
 Ext.define('PVE.grid.ReplicaView', {
     extend: 'Ext.grid.Panel',
     xtype: 'pveReplicaView',
@@ -166,20 +168,6 @@ Ext.define('PVE.grid.ReplicaView', {
            win.show();
        },
 
-       removeJob: function(button,event,rec) {
-           var me = this.getView();
-           var controller = this;
-           PVE.Utils.API2Request({
-               url: '/api2/extjs/cluster/replication/' + rec.data.id,
-               waitMsgTarget: me,
-               method: 'DELETE',
-               callback: function() { controller.reload(); },
-               failure: function (response, opts) {
-                   Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-               }
-           });
-       },
-
        scheduleJobNow: function(button,event,rec) {
            var me = this.getView();
            var controller = this;
@@ -266,16 +254,11 @@ Ext.define('PVE.grid.ReplicaView', {
            disabled: true
        },
        {
-           xtype: 'pveButton',
-           text: gettext('Remove'),
+           xtype: 'proxmoxStdRemoveButton',
            itemId: 'removeButton',
-           handler: 'removeJob',
+           baseurl: '/api2/extjs/cluster/replication/',
            dangerous: true,
-           confirmMsg: function(rec) {
-               var msg = Ext.String.format(gettext("Are you sure you want to remove entry {0}"), rec.id);
-               return msg;
-           },
-           disabled: true
+           callback: 'reload'
        },
        {
            xtype: 'pveButton',
index c8c5a427ce9bcb4011abc01482a1d9e7a790b57b..466a523227f90d53c0aebd845f0d78d46d12208e 100644 (file)
@@ -36,24 +36,11 @@ Ext.define('PVE.ha.GroupsView', {
             win.show();
        };
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           handler: function(btn, event, rec) {
-               var group = rec.data.group;
-
-               PVE.Utils.API2Request({
-                   url: '/cluster/ha/groups/' + group,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
+           baseurl: '/cluster/ha/groups/',
+           callback: function() {
+               reload();
            }
        });
        
index 314d56e490ade22fedd644abe94e22699ad67531..189f90e1f8a76a470ab717063249d1e9fa7c3a1f 100644 (file)
@@ -67,24 +67,15 @@ Ext.define('PVE.ha.ResourcesView', {
             win.show();
        };
 
-       var remove_btn = new PVE.button.Button({
-           text: gettext('Remove'),
-           disabled: true,
+       var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           handler: function(btn, event, rec) {
-               var sid = rec.data.sid;
-
-               PVE.Utils.API2Request({
-                   url: '/cluster/ha/resources/' + sid,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   }
-               });
+           baseurl: '/cluster/ha/resources/',
+           getUrl: function(rec) {
+               var me = this;
+               return me.baseurl + '/' + rec.get('sid');
+           },
+           callback: function() {
+               reload();
            }
        });
        
index 4ae23a57b91d821a8c8b692f3241a1411e90bc97..d4b36928e59169bb1d4c658ae4b601a74ff0de7a 100644 (file)
@@ -129,25 +129,10 @@ Ext.define('PVE.IPSetList', {
            }
        });
 
-       me.removeBtn = new PVE.button.Button({
-           text: gettext('Remove'),
+       me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           disabled: true,
-           handler: function() {
-               var rec = sm.getSelection()[0];
-               if (!rec || !me.base_url) {
-                   return;
-               }
-               PVE.Utils.API2Request({
-                   url: me.base_url + '/' + rec.data.name,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   failure: function(response, options) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   },
-                   callback: reload
-               });
-           }
+           baseurl: me.base_url + '/',
+           callback: reload
        });
 
        Ext.apply(me, {
@@ -287,6 +272,7 @@ Ext.define('PVE.IPSetGrid', {
            me.store.removeAll();
        } else {
            me.addBtn.setDisabled(false);
+           me.removeBtn.baseurl = url + '/';
            me.store.setProxy({
                type: 'pve',
                url: '/api2/json' + url
@@ -350,26 +336,10 @@ Ext.define('PVE.IPSetGrid', {
            }
        });
 
-       me.removeBtn = new PVE.button.Button({
-           text: gettext('Remove'),
+       me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           disabled: true,
-           handler: function() {
-               var rec = sm.getSelection()[0];
-               if (!rec || !me.base_url) {
-                   return;
-               }
-
-               PVE.Utils.API2Request({
-                   url: me.base_url + '/' + rec.data.cidr,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   failure: function(response, options) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   },
-                   callback: reload
-               });
-           }
+           baseurl: me.base_url + '/',
+           callback: reload
        });
 
        var render_errors = function(value, metaData, record) {
index 47bd199aac55e4deabf8e24c2b3103222d8cdd3e..c5d856cb27d95c53b24373d7bdd93558fb5edbf3 100644 (file)
@@ -438,30 +438,15 @@ Ext.define('PVE.storage.ContentView', {
                    }
                },
                {
-                   xtype: 'pveButton',
-                   text: gettext('Remove'),
+                   xtype: 'proxmoxStdRemoveButton',
                    selModel: sm,
-                   disabled: true,
-                   confirmMsg: function(rec) {
-                       return Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
-                                                "'" + rec.data.volid + "'");
-                   },
                    enableFn: function(rec) {
                        return rec && rec.data.content !== 'images';
                    },
-                   handler: function(b, e, rec) {
-                       PVE.Utils.API2Request({
-                           url: baseurl + '/' + rec.data.volid,
-                           method: 'DELETE',
-                           waitMsgTarget: me,
-                           callback: function() {
-                               reload();
-                           },
-                           failure: function (response, opts) {
-                               Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                           }
-                       });
-                   }
+                   callback: function() {
+                       reload();
+                   },
+                   baseurl: baseurl + '/'
                },
                templateButton,
                uploadButton,