From 9fb30485887c74f64d0707ca87b479b2879bdde2 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 7 Jun 2013 11:49:04 +0200 Subject: [PATCH] PVE.window.Edit: add backgroundDelay option This can be used for the new async qemu config API. --- www/manager/Utils.js | 1 + www/manager/qemu/MemoryEdit.js | 2 ++ www/manager/window/Edit.js | 17 +++++++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/www/manager/Utils.js b/www/manager/Utils.js index 94ee769c..1cd4a000 100644 --- a/www/manager/Utils.js +++ b/www/manager/Utils.js @@ -448,6 +448,7 @@ Ext.define('PVE.Utils', { statics: { qmshutdown: [ 'VM', gettext('Shutdown') ], qmsuspend: [ 'VM', gettext('Suspend') ], qmresume: [ 'VM', gettext('Resume') ], + qmconfig: [ 'VM', gettext('Configure') ], vzcreate: ['CT', gettext('Create') ], vzrestore: ['CT', gettext('Restore') ], vzdestroy: ['CT', gettext('Destroy') ], diff --git a/www/manager/qemu/MemoryEdit.js b/www/manager/qemu/MemoryEdit.js index b8990542..2ed6bb09 100644 --- a/www/manager/qemu/MemoryEdit.js +++ b/www/manager/qemu/MemoryEdit.js @@ -148,6 +148,8 @@ Ext.define('PVE.qemu.MemoryEdit', { Ext.apply(me, { subject: gettext('Memory'), items: [ Ext.create('PVE.qemu.MemoryInputPanel') ], + // uncomment the following to use the async configiguration API + // backgroundDelay: 5, width: 400 }); diff --git a/www/manager/window/Edit.js b/www/manager/window/Edit.js index 6b92a0d6..e0f15271 100644 --- a/www/manager/window/Edit.js +++ b/www/manager/window/Edit.js @@ -17,6 +17,8 @@ Ext.define('PVE.window.Edit', { // set to true if you want an Add button (instead of Create) isAdd: false, + backgroundDelay: 0, + isValid: function() { var me = this; @@ -82,19 +84,30 @@ Ext.define('PVE.window.Edit', { values.digest = me.digest; } + if (me.backgroundDelay) { + values.background_delay = me.backgroundDelay; + } + PVE.Utils.API2Request({ url: me.url, waitMsgTarget: me, - method: me.method || 'PUT', + method: me.method || (me.backgroundDelay ? 'POST' : 'PUT'), params: values, failure: function(response, options) { - if (response.result.errors) { + if (response.result && response.result.errors) { form.markInvalid(response.result.errors); } Ext.Msg.alert(gettext('Error'), response.htmlStatus); }, success: function(response, options) { me.close(); + if (me.backgroundDelay && response.result.data) { + var upid = response.result.data; + var win = Ext.create('PVE.window.TaskProgress', { + upid: upid + }); + win.show(); + } } }); },