From: Dominik Csapak <d.csa...@proxmox.com>

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.csa...@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---
 www/manager6/dc/AuthView.js          | 25 ++++----------------
 www/manager6/dc/Backup.js            | 20 ++++------------
 www/manager6/dc/GroupView.js         | 23 ++++---------------
 www/manager6/dc/PoolView.js          | 23 ++++---------------
 www/manager6/dc/SecurityGroups.js    | 24 ++++++--------------
 www/manager6/dc/StorageView.js       | 23 ++++---------------
 www/manager6/dc/UserView.js          | 25 ++++----------------
 www/manager6/grid/BackupView.js      | 31 ++++++-------------------
 www/manager6/grid/FirewallAliases.js | 21 +++--------------
 www/manager6/grid/FirewallRules.js   | 40 +++++++++-----------------------
 www/manager6/grid/Replication.js     | 27 ++++------------------
 www/manager6/ha/Groups.js            | 21 ++++-------------
 www/manager6/ha/Resources.js         | 25 +++++++-------------
 www/manager6/panel/IPSet.js          | 44 ++++++------------------------------
 www/manager6/storage/ContentView.js  | 25 ++++----------------
 15 files changed, 81 insertions(+), 316 deletions(-)

diff --git a/www/manager6/dc/AuthView.js b/www/manager6/dc/AuthView.js
index 5c47f442..d2d152a8 100644
--- a/www/manager6/dc/AuthView.js
+++ b/www/manager6/dc/AuthView.js
@@ -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();
            }
         });
 
diff --git a/www/manager6/dc/Backup.js b/www/manager6/dc/Backup.js
index 235bea6f..64f99e32 100644
--- a/www/manager6/dc/Backup.js
+++ b/www/manager6/dc/Backup.js
@@ -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();
            }
        });
 
diff --git a/www/manager6/dc/GroupView.js b/www/manager6/dc/GroupView.js
index 31fc286b..ce679732 100644
--- a/www/manager6/dc/GroupView.js
+++ b/www/manager6/dc/GroupView.js
@@ -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() {
diff --git a/www/manager6/dc/PoolView.js b/www/manager6/dc/PoolView.js
index 8b44d28f..b844f724 100644
--- a/www/manager6/dc/PoolView.js
+++ b/www/manager6/dc/PoolView.js
@@ -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();
            }
        });
 
diff --git a/www/manager6/dc/SecurityGroups.js 
b/www/manager6/dc/SecurityGroups.js
index 0872eb0a..906f2171 100644
--- a/www/manager6/dc/SecurityGroups.js
+++ b/www/manager6/dc/SecurityGroups.js
@@ -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();
            }
        });
 
diff --git a/www/manager6/dc/StorageView.js b/www/manager6/dc/StorageView.js
index 8f5a055c..9255c6e6 100644
--- a/www/manager6/dc/StorageView.js
+++ b/www/manager6/dc/StorageView.js
@@ -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();
            }
        });
 
diff --git a/www/manager6/dc/UserView.js b/www/manager6/dc/UserView.js
index 4d2238e3..b14d8d9e 100644
--- a/www/manager6/dc/UserView.js
+++ b/www/manager6/dc/UserView.js
@@ -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();
            }
         });
  
diff --git a/www/manager6/grid/BackupView.js b/www/manager6/grid/BackupView.js
index 15ae85db..a15b77b1 100644
--- a/www/manager6/grid/BackupView.js
+++ b/www/manager6/grid/BackupView.js
@@ -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();
            }
        });
 
diff --git a/www/manager6/grid/FirewallAliases.js 
b/www/manager6/grid/FirewallAliases.js
index af20a665..f3ec3d5b 100644
--- a/www/manager6/grid/FirewallAliases.js
+++ b/www/manager6/grid/FirewallAliases.js
@@ -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
        });
 
 
diff --git a/www/manager6/grid/FirewallRules.js 
b/www/manager6/grid/FirewallRules.js
index f0163629..64834c40 100644
--- a/www/manager6/grid/FirewallRules.js
+++ b/www/manager6/grid/FirewallRules.js
@@ -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();
            }
        });
 
diff --git a/www/manager6/grid/Replication.js b/www/manager6/grid/Replication.js
index 035cba2d..6c2fc529 100644
--- a/www/manager6/grid/Replication.js
+++ b/www/manager6/grid/Replication.js
@@ -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',
diff --git a/www/manager6/ha/Groups.js b/www/manager6/ha/Groups.js
index c8c5a427..466a5232 100644
--- a/www/manager6/ha/Groups.js
+++ b/www/manager6/ha/Groups.js
@@ -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();
            }
        });
        
diff --git a/www/manager6/ha/Resources.js b/www/manager6/ha/Resources.js
index 314d56e4..189f90e1 100644
--- a/www/manager6/ha/Resources.js
+++ b/www/manager6/ha/Resources.js
@@ -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();
            }
        });
        
diff --git a/www/manager6/panel/IPSet.js b/www/manager6/panel/IPSet.js
index 4ae23a57..d4b36928 100644
--- a/www/manager6/panel/IPSet.js
+++ b/www/manager6/panel/IPSet.js
@@ -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) {
diff --git a/www/manager6/storage/ContentView.js 
b/www/manager6/storage/ContentView.js
index 47bd199a..c5d856cb 100644
--- a/www/manager6/storage/ContentView.js
+++ b/www/manager6/storage/ContentView.js
@@ -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,
-- 
2.14.2


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to