From ef67728cea06e02cc7ce1f25897171e5c602aae1 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Tue, 5 Oct 2010 16:59:22 -0700 Subject: [PATCH] new UI - instance page - reset password - after action succeeds, show new password in middle menu and details tab when middle menu item is clicked. --- ui/new/scripts/cloud.core2.instance.js | 69 ++++++++++++++++++++++---- ui/new/scripts/cloud.core2.js | 8 +-- ui/scripts/cloud.core.instances.js | 2 +- 3 files changed, 65 insertions(+), 14 deletions(-) diff --git a/ui/new/scripts/cloud.core2.instance.js b/ui/new/scripts/cloud.core2.instance.js index 3bde2701812..c58e7696b62 100644 --- a/ui/new/scripts/cloud.core2.instance.js +++ b/ui/new/scripts/cloud.core2.instance.js @@ -601,9 +601,11 @@ function clickInstanceGroupHeader($arrowIcon) { // Succeeded //if("virtualmachine" in result) { vmToMidmenu(result.virtualmachine[0], $midmenuItem1); - if (result.virtualmachine[0].passwordenabled == 'true') { - var extraMessage = "New password:" + result.virtualmachine[0].password; + if (result.virtualmachine[0].passwordenabled == 'true') { + var extraMessage = "New password: " + result.virtualmachine[0].password; afterAddingMidMenuItem($midmenuItem1, true, extraMessage); + var afterActionInfo = "Your instance has been successfully created. Your new password is : " + result.virtualmachine[0].password; + $midmenuItem1.data("afterActionInfo", afterActionInfo); } else { afterAddingMidMenuItem($midmenuItem1, true); @@ -723,11 +725,8 @@ var vmActionMap = { dialogBeforeActionFn : doDetachISO, afterActionSeccessFn: vmToMidmenu }, - "Reset Password": { - isAsyncJob: true, - asyncJobResponse: "resetpasswordforvirtualmachineresponse", - dialogBeforeActionFn : doResetPassword, - afterActionSeccessFn: function(){} + "Reset Password": { + dialogBeforeActionFn : doResetPassword }, "Change Name": { isAsyncJob: false, @@ -828,13 +827,65 @@ function doResetPassword($t, selectedItemsInMidMenu, vmListAPIMap) { $midMenuItem.data("afterActionInfo", ($t.data("label") + " action failed. Reason: This instance needs to be stopped before you can reset password")); continue; } - if(jsonObj.passwordEnabled != "true") { + if(jsonObj.passwordenabled != "true") { $midMenuItem.find("#info_icon").addClass("error").show(); $midMenuItem.data("afterActionInfo", ($t.data("label") + " action failed. Reason: This instance is not using a template that has the password reset feature enabled. If you have forgotten your root password, please contact support.")); continue; } var apiCommand = "command=resetPasswordForVirtualMachine&id="+id; - doActionForMidMenu(id, $t, apiCommand, vmListAPIMap); + + var $midmenuItem = $("#midmenuItem_"+id); + $midmenuItem.find("#content").removeClass("selected").addClass("inaction"); + $midmenuItem.find("#spinning_wheel").addClass("midmenu_addingloader").show(); + $midmenuItem.find("#info_icon").hide(); + + //??? + $.ajax({ + data: createURL(apiCommand), + dataType: "json", + success: function(json) { + var jobId = json.resetpasswordforvirtualmachineresponse.jobid; + var timerKey = "asyncJob_" + jobId; + $("body").everyTime( + 10000, + timerKey, + function() { + $.ajax({ + data: createURL("command=queryAsyncJobResult&jobId="+jobId), + dataType: "json", + success: function(json) { + var result = json.queryasyncjobresultresponse; + if (result.jobstatus == 0) { + return; //Job has not completed + } else { + $("body").stopTime(timerKey); + $midmenuItem.find("#content").removeClass("inaction"); + $midmenuItem.find("#spinning_wheel").hide(); + if (result.jobstatus == 1) { // Succeeded + $midmenuItem.find("#info_icon").removeClass("error").show(); + $midmenuItem.find("#second_row").text("New password: " + result.virtualmachine[0].password); + var afterActionInfo = "Your password has been successfully resetted. Your new password is : " + result.virtualmachine[0].password; + $midmenuItem.data("afterActionInfo", afterActionInfo); + } else if (result.jobstatus == 2) { // Failed + $midmenuItem.find("#info_icon").addClass("error").show(); + $midmenuItem.data("afterActionInfo", (label + " action failed. Reason: " + fromdb(result.jobresult))); + } + } + }, + error: function(XMLHttpResponse) { + $("body").stopTime(timerKey); + handleErrorInMidMenu(XMLHttpResponse, $midmenuItem); + } + }); + }, + 0 + ); + }, + error: function(XMLHttpResponse) { + handleErrorInMidMenu(XMLHttpResponse, $midmenuItem); + } + }); + //??? } }, "No": function() { diff --git a/ui/new/scripts/cloud.core2.js b/ui/new/scripts/cloud.core2.js index 5ddd5e48ba7..1ae5fdf385d 100644 --- a/ui/new/scripts/cloud.core2.js +++ b/ui/new/scripts/cloud.core2.js @@ -276,11 +276,11 @@ function doActionForMidMenu(id, $actionLink, apiCommand, listAPIMap) { data: createURL("command="+listAPI+"&id="+id), dataType: "json", success: function(json) { - afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem, $midmenuItem.data("toRightPanelFn")); + afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem); } }); //After Bug 6037 is fixed, remove temporary solution above and uncomment the line below - //afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem, $midmenuItem.data("toRightPanelFn")); + //afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem); } else if (result.jobstatus == 2) { // Failed $midmenuItem.find("#info_icon").addClass("error").show(); @@ -324,11 +324,11 @@ function doActionForMidMenu(id, $actionLink, apiCommand, listAPIMap) { success: function(json) { $midmenuItem.find("#info_icon").removeClass("error").show(); $midmenuItem.data("afterActionInfo", (label + " action succeeded.")); - afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem, $midmenuItem.data("toRightPanelFn")); + afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem); } }); //After Bug 6037 is fixed, remove temporary solution above and uncomment the line below - //afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem, $midmenuItem.data("toRightPanelFn")); + //afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $midmenuItem); }, error: function(XMLHttpResponse) { handleErrorInMidMenu(XMLHttpResponse, $midmenuItem); diff --git a/ui/scripts/cloud.core.instances.js b/ui/scripts/cloud.core.instances.js index 5c773410c88..b1e1118a115 100644 --- a/ui/scripts/cloud.core.instances.js +++ b/ui/scripts/cloud.core.instances.js @@ -1131,7 +1131,7 @@ function showInstancesTab(p_domainId, p_account) { } } if (instanceJSON.group != undefined) { - instanceTemplate.find("#vm_group").text(instanceJSON.group); + instanceTemplate.find("#vm_group").text(fromdb(instanceJSON.group)); } else { instanceTemplate.find("#vm_group").text("No Group"); }