From 367e32adbc294c52a991866d1cf6e94b3d473201 Mon Sep 17 00:00:00 2001 From: olgasmola Date: Mon, 25 Jun 2012 14:41:47 +0300 Subject: [PATCH] CS-15329: Instances with Error states appear in Instances list after creating. --- ui/scripts/instances.js | 15 ++++++++++++++- ui/scripts/sharedFunctions.js | 9 ++++++++- ui/scripts/ui/widgets/listView.js | 12 +++++++++++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index 4a143607cf2..969a6572a96 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -541,6 +541,7 @@ dataType: "json", success: function(json) { var jid = json.deployvirtualmachineresponse.jobid; + var vmid = json.deployvirtualmachineresponse.id; args.response.success( {_custom: {jobId: jid, @@ -552,7 +553,19 @@ }, getActionFilter: function() { return vmActionfilter; - } + }, + getUpdatedData: function() { + var item; + $.ajax({ + url: createURL("listVirtualMachines&id="+vmid), + dataType: "json", + async: false, + success: function(json) { + item = json.listvirtualmachinesresponse.virtualmachine[0]; + } + }); + return item; + } } } ); diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js index b1d771c67f2..8fc5c78a796 100644 --- a/ui/scripts/sharedFunctions.js +++ b/ui/scripts/sharedFunctions.js @@ -86,7 +86,14 @@ var pollAsyncJobResult = function(args) { } else if (result.jobstatus == 2) { // Failed var msg = (result.jobresult.errortext == null)? "": result.jobresult.errortext; - args.error({message: msg}); + if (args._custom.getUpdatedData != null && args._custom.getActionFilter != null) { + args.error({message: msg, updatedData: args._custom.getUpdatedData(), actionFilter: args._custom.getActionFilter()}); + } else if (args._custom.getUpdatedData != null && args._custom.getActionFilter == null) { + args.error({message: msg, updatedData: args._custom.getUpdatedData()}); + } + else { + args.error({message: msg}); + } } } }, diff --git a/ui/scripts/ui/widgets/listView.js b/ui/scripts/ui/widgets/listView.js index 92a862428a4..c893b1fd5ed 100644 --- a/ui/scripts/ui/widgets/listView.js +++ b/ui/scripts/ui/widgets/listView.js @@ -97,7 +97,17 @@ // Error function(args) { - $item.remove(); + if (args && args.updatedData) { + if ($item.is(':visible') && !isHeader) { + replaceItem( + $item, + args.updatedData, + args.actionFilter + ); + } + } else { + $item.remove(); + } } ); }