[pve-devel] [PATCH v2 manager] close #584: ui qemu: changed remove unused disk to asynchron call
Thomas Lamprecht
t.lamprecht at proxmox.com
Wed Oct 17 13:54:47 CEST 2018
On 10/17/18 1:24 PM, Tim Marx wrote:
> changed commit message to be more specific
> added condition to only spawn tasks if its a unused disk as originally intended
>
> Signed-off-by: Tim Marx <t.marx at proxmox.com>
> ---
> www/manager6/qemu/HardwareView.js | 18 ++++++++++++++++--
> 1 file changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js
> index a1bccc3c..99aae6ed 100644
> --- a/www/manager6/qemu/HardwareView.js
> +++ b/www/manager6/qemu/HardwareView.js
> @@ -376,7 +376,7 @@ Ext.define('PVE.qemu.HardwareView', {
> Proxmox.Utils.API2Request({
> url: '/api2/extjs/' + baseurl,
> waitMsgTarget: me,
> - method: 'PUT',
> + method: rec.data.key.match(/^unused\d+$/) ? 'POST': 'PUT',
> params: {
> 'delete': rec.data.key
> },
> @@ -385,7 +385,21 @@ Ext.define('PVE.qemu.HardwareView', {
> },
> failure: function (response, opts) {
> Ext.Msg.alert('Error', response.htmlStatus);
> - }
> + },
> + success: function(response, options) {
> + var upid = response.result.data;
> + if (upid !== null) {
> + var win = Ext.create('Proxmox.window.TaskProgress', {
> + upid: upid,
> + listeners: {
> + destroy: function () {
> + me.reload();
> + }
> + }
> + });
> + win.show();
> + }
> + },
trailing ',' here (yeah I know, I'd like them too, but some IE version can't handle them)
please run `make lint` in the www/manager directory, it should run through without errors.
> });
> },
> listeners: {>
Looks much better now, thanks!
But we have a isUsedDisk check already in a helper method (set_button_status), which
sets the remove button's text, so maybe there is the better place to handle this?
A short, not to much tested, version could be:
(one could just keep callback and always reload immediately, even if we do a async POST,
could make it simpler)
what do you think?
----8<----
diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js
index a1bccc3c..3cebdb0e 100644
--- a/www/manager6/qemu/HardwareView.js
+++ b/www/manager6/qemu/HardwareView.js
@@ -355,6 +355,7 @@ Ext.define('PVE.qemu.HardwareView', {
altText: gettext('Detach'),
selModel: sm,
disabled: true,
+ RESTMethod: 'PUT',
dangerous: true,
confirmMsg: function(rec) {
var warn = gettext('Are you sure you want to remove entry {0}');
@@ -376,15 +377,29 @@ Ext.define('PVE.qemu.HardwareView', {
Proxmox.Utils.API2Request({
url: '/api2/extjs/' + baseurl,
waitMsgTarget: me,
- method: 'PUT',
+ method: b.RESTMethod,
params: {
'delete': rec.data.key
},
- callback: function() {
- reload();
- },
failure: function (response, opts) {
Ext.Msg.alert('Error', response.htmlStatus);
+ reload();
+ },
+ success: function(response, options) {
+ if (b.RESTMethod === 'POST') {
+ var upid = response.result.data;
+ var win = Ext.create('Proxmox.window.TaskProgress', {
+ upid: upid,
+ listeners: {
+ destroy: function () {
+ me.reload();
+ }
+ }
+ });
+ win.show();
+ } else {
+ reload();
+ }
}
});
},
@@ -498,6 +513,7 @@ Ext.define('PVE.qemu.HardwareView', {
remove_btn.setDisabled(rec.data['delete'] || (rowdef.never_delete === true));
remove_btn.setText((isUsedDisk && !isCloudInit) ? remove_btn.altText : remove_btn.defaultText);
+ remove_btn.RESTMethod = isUsedDisk ? 'PUT' : 'POST';
edit_btn.setDisabled(rec.data['delete'] || !rowdef.editor || isCloudInit); # async destroy disks (#584)
More information about the pve-devel
mailing list