]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: factor out pending changes revert button
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 30 Oct 2019 10:19:35 +0000 (11:19 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 30 Oct 2019 10:48:03 +0000 (11:48 +0100)
makes no sense to have the, more or less, exact same 25 line method 5
times..

could be moved to widget TK, but that's for another time.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
www/manager6/Makefile
www/manager6/button/Revert.js [new file with mode: 0644]
www/manager6/lxc/DNS.js
www/manager6/lxc/Options.js
www/manager6/lxc/Resources.js
www/manager6/qemu/HardwareView.js
www/manager6/qemu/Options.js

index aa460c3b9558b51ff8a88ac594f8316c51659ff4..b7ffc44b730d4e366865c6c8bf9fcfde32282227 100644 (file)
@@ -8,6 +8,7 @@ JSSRC=                                                  \
        menu/MenuItem.js                                \
        menu/TemplateMenu.js                            \
        button/ConsoleButton.js                         \
+       button/Revert.js                                \
        button/Split.js                                 \
        controller/StorageEdit.js                       \
        qemu/CmdMenu.js                                 \
diff --git a/www/manager6/button/Revert.js b/www/manager6/button/Revert.js
new file mode 100644 (file)
index 0000000..3d846c6
--- /dev/null
@@ -0,0 +1,38 @@
+Ext.define('PVE.button.PendingRevert', {
+    extend: 'Proxmox.button.Button',
+    alias: 'widget.pvePendingRevertButton',
+
+    text: gettext('Revert'),
+    disabled: true,
+    config: {
+       pendingGrid: null,
+       baseurl: undefined,
+    },
+
+    handler: function() {
+       let view = this.pendingGrid;
+
+       let rec = view.getSelectionModel().getSelection()[0];
+       if (!rec) return;
+
+       let rowdef = view.rows[rec.data.key] || {};
+       let keys = rowdef.multiKey ||  [ rec.data.key ];
+
+       Proxmox.Utils.API2Request({
+           url: this.baseurl || view.editorConfig.url,
+           waitMsgTarget: view,
+           selModel: view.getSelectionModel(),
+           method: 'PUT',
+           params: {
+               'revert': keys.join(',')
+           },
+           callback: () => view.reload(),
+           failure: (response) => Ext.Msg.alert('Error', response.htmlStatus),
+       });
+    },
+
+    initComponent: function() {
+       if (!this.pendingGrid) throw "revert button requires a pendingGrid";
+       this.callParent(arguments);
+    },
+});
index f5b85db5cfe1d40eae7837695733441c171d6aca..bf110f0913d66bd85862731ca23fe4e2d1f764be 100644 (file)
@@ -213,38 +213,10 @@ Ext.define('PVE.lxc.DNS', {
            handler: run_editor
        });
 
-       var revert_btn = new Proxmox.button.Button({
-           text: gettext('Revert'),
-           disabled: true,
-           handler: function() {
-               var sm = me.getSelectionModel();
-               var rec = sm.getSelection()[0];
-               if (!rec) {
-                   return;
-               }
-
-               var rowdef = me.rows[rec.data.key] || {};
-               var keys = rowdef.multiKey ||  [ rec.data.key ];
-               var revert = keys.join(',');
-
-               Proxmox.Utils.API2Request({
-                   url: '/api2/extjs/' + baseurl,
-                   waitMsgTarget: me,
-                   method: 'PUT',
-                   params: {
-                       'revert': revert
-                   },
-                   callback: function() {
-                       me.reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert('Error',response.htmlStatus);
-                   }
-               });
-           }
+       var revert_btn = new PVE.button.PendingRevert({
+           pendingGrid: me,
        });
 
-
        var set_button_status = function() {
            var sm = me.getSelectionModel();
            var rec = sm.getSelection()[0];
index 8ed3a5fc5ef76d411275d2f00d2c02553d1c5fe1..409f8b709d9d1bf168e5f6d5581ad2dfc4a53a2c 100644 (file)
@@ -161,35 +161,8 @@ Ext.define('PVE.lxc.Options', {
            handler: function() { me.run_editor(); }
        });
 
-       var revert_btn = new Proxmox.button.Button({
-           text: gettext('Revert'),
-           disabled: true,
-           handler: function() {
-               var sm = me.getSelectionModel();
-               var rec = sm.getSelection()[0];
-               if (!rec) {
-                   return;
-               }
-
-               var rowdef = me.rows[rec.data.key] || {};
-               var keys = rowdef.multiKey ||  [ rec.data.key ];
-               var revert = keys.join(',');
-
-               Proxmox.Utils.API2Request({
-                   url: '/api2/extjs/' + baseurl,
-                   waitMsgTarget: me,
-                   method: 'PUT',
-                   params: {
-                       'revert': revert
-                   },
-                   callback: function() {
-                       me.reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert('Error',response.htmlStatus);
-                   }
-               });
-           }
+       var revert_btn = new PVE.button.PendingRevert({
+           pendingGrid: me,
        });
 
        var set_button_status = function() {
index 73533ba8018032ca8804955b9a67097be3e6e93b..f70f9e029582f718951c60f6c47e1e6d55779e3e 100644 (file)
@@ -215,29 +215,8 @@ Ext.define('PVE.lxc.RessourceView', {
            handler: run_move
        });
 
-       var revert_btn = new Proxmox.button.Button({
-           text: gettext('Revert'),
-           selModel: me.selModel,
-           disabled: true,
-           handler: function(b, e, rec) {
-               var rowdef = me.rows[rec.data.key] || {};
-               var keys = rowdef.multiKey ||  [ rec.data.key ];
-               var revert = keys.join(',');
-               Proxmox.Utils.API2Request({
-                   url: '/api2/extjs/' + baseurl,
-                   waitMsgTarget: me,
-                   method: 'PUT',
-                   params: {
-                       'revert': revert
-                   },
-                   callback: function() {
-                       me.rstore.load();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert('Error',response.htmlStatus);
-                   }
-               });
-           }
+       var revert_btn = new PVE.button.PendingRevert({
+           pendingGrid: me,
        });
 
        var set_button_status = function() {
index 29cdb68ce4598692840938b542889f1cf26dc12e..3f6273c4c18eaf155db1494c5b99506cd888d91a 100644 (file)
@@ -500,29 +500,9 @@ Ext.define('PVE.qemu.HardwareView', {
            }
        });
 
-       var revert_btn = new Proxmox.button.Button({
-           text: gettext('Revert'),
-           selModel: sm,
-           disabled: true,
-           handler: function(b, e, rec) {
-               var rowdef = me.rows[rec.data.key] || {};
-               var keys = rowdef.multiKey ||  [ rec.data.key ];
-               var revert = keys.join(',');
-               Proxmox.Utils.API2Request({
-                   url: '/api2/extjs/' + baseurl,
-                   waitMsgTarget: me,
-                   method: 'PUT',
-                   params: {
-                       'revert': revert
-                   },
-                   callback: function() {
-                       reload();
-                   },
-                   failure: function (response, opts) {
-                       Ext.Msg.alert('Error',response.htmlStatus);
-                   }
-               });
-           }
+       var revert_btn = new PVE.button.PendingRevert({
+           pendingGrid: me,
+           baseurl: '/api2/extjs/' + baseurl,
        });
 
        var efidisk_menuitem = Ext.create('Ext.menu.Item',{
index 1ec79a953e9df71ef409575050518a64c25844de..ef66fcfda663afdf0306d99ae1e021b93fd52a3f 100644 (file)
@@ -309,36 +309,9 @@ Ext.define('PVE.qemu.Options', {
            handler: function() { me.run_editor(); }
        });
 
-        var revert_btn = new Proxmox.button.Button({
-            text: gettext('Revert'),
-            disabled: true,
-            handler: function() {
-               var sm = me.getSelectionModel();
-               var rec = sm.getSelection()[0];
-               if (!rec) {
-                   return;
-               }
-
-               var rowdef = me.rows[rec.data.key] || {};
-               var keys = rowdef.multiKey ||  [ rec.data.key ];
-               var revert = keys.join(',');
-
-                Proxmox.Utils.API2Request({
-                    url: '/api2/extjs/' + baseurl,
-                    waitMsgTarget: me,
-                    method: 'PUT',
-                    params: {
-                        'revert': revert
-                    },
-                    callback: function() {
-                        me.reload();
-                    },
-                    failure: function (response, opts) {
-                        Ext.Msg.alert('Error',response.htmlStatus);
-                    }
-                });
-            }
-        });
+       var revert_btn = new PVE.button.PendingRevert({
+           pendingGrid: me,
+       });
 
        var set_button_status = function() {
            var sm = me.getSelectionModel();