From 591efb672546b5fb13a2402ca1841ddcce72b529 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Wed, 30 Oct 2019 11:19:35 +0100 Subject: [PATCH] ui: factor out pending changes revert button 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 --- www/manager6/Makefile | 1 + www/manager6/button/Revert.js | 38 +++++++++++++++++++++++++++++++ www/manager6/lxc/DNS.js | 32 ++------------------------ www/manager6/lxc/Options.js | 31 ++----------------------- www/manager6/lxc/Resources.js | 25 ++------------------ www/manager6/qemu/HardwareView.js | 26 +++------------------ www/manager6/qemu/Options.js | 33 +++------------------------ 7 files changed, 51 insertions(+), 135 deletions(-) create mode 100644 www/manager6/button/Revert.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index aa460c3b..b7ffc44b 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -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 index 00000000..3d846c6c --- /dev/null +++ b/www/manager6/button/Revert.js @@ -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); + }, +}); diff --git a/www/manager6/lxc/DNS.js b/www/manager6/lxc/DNS.js index f5b85db5..bf110f09 100644 --- a/www/manager6/lxc/DNS.js +++ b/www/manager6/lxc/DNS.js @@ -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]; diff --git a/www/manager6/lxc/Options.js b/www/manager6/lxc/Options.js index 8ed3a5fc..409f8b70 100644 --- a/www/manager6/lxc/Options.js +++ b/www/manager6/lxc/Options.js @@ -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() { diff --git a/www/manager6/lxc/Resources.js b/www/manager6/lxc/Resources.js index 73533ba8..f70f9e02 100644 --- a/www/manager6/lxc/Resources.js +++ b/www/manager6/lxc/Resources.js @@ -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() { diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js index 29cdb68c..3f6273c4 100644 --- a/www/manager6/qemu/HardwareView.js +++ b/www/manager6/qemu/HardwareView.js @@ -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',{ diff --git a/www/manager6/qemu/Options.js b/www/manager6/qemu/Options.js index 1ec79a95..ef66fcfd 100644 --- a/www/manager6/qemu/Options.js +++ b/www/manager6/qemu/Options.js @@ -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();