mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
new UI - actions in details panel - show error message in red dialog box when action fails.
This commit is contained in:
parent
3d61949f06
commit
68e17586d0
@ -57,12 +57,6 @@
|
||||
<div class="close_button" id="close_button">
|
||||
</div>
|
||||
</div>
|
||||
<div class="gridheader_message error" style="border: 1px solid #999; display: none;">
|
||||
<p>
|
||||
Some problem occured while dettaching disk …</p>
|
||||
<div class="close_button">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_container">
|
||||
<div class="grid_rows odd">
|
||||
|
||||
@ -181,7 +181,7 @@ function handleErrorInMidMenu(XMLHttpResponse, $midmenuItem) {
|
||||
//***** actions for middle menu (end) **************************************************************************
|
||||
|
||||
//***** actions for details tab in right panel (begin) ************************************************************************
|
||||
function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, listAPIMap, $detailsTab) {
|
||||
function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, listAPIMap) {
|
||||
var apiInfo = actionMap[label];
|
||||
var $listItem = $("#action_list_item").clone();
|
||||
$actionMenu.find("#action_list").append($listItem.show());
|
||||
@ -194,6 +194,7 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, listAPIMap,
|
||||
$link.data("afterActionSeccessFn", apiInfo.afterActionSeccessFn);
|
||||
$link.data("dialogBeforeActionFn", apiInfo.dialogBeforeActionFn);
|
||||
|
||||
var $detailsTab = $("#right_panel_content #tab_content_details");
|
||||
var id = $detailsTab.data("jsonObj").id;
|
||||
|
||||
$link.bind("click", function(event) {
|
||||
@ -202,7 +203,7 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, listAPIMap,
|
||||
var dialogBeforeActionFn = $actionLink.data("dialogBeforeActionFn");
|
||||
if(dialogBeforeActionFn == null) {
|
||||
var apiCommand = "command="+$actionLink.data("api")+"&id="+id;
|
||||
doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsTab);
|
||||
doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap);
|
||||
}
|
||||
else {
|
||||
dialogBeforeActionFn($actionLink, listAPIMap, $detailsTab);
|
||||
@ -211,7 +212,7 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, listAPIMap,
|
||||
});
|
||||
}
|
||||
|
||||
function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsTab) {
|
||||
function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap) {
|
||||
var label = $actionLink.data("label");
|
||||
var inProcessText = $actionLink.data("inProcessText");
|
||||
var isAsyncJob = $actionLink.data("isAsyncJob");
|
||||
@ -221,6 +222,7 @@ function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsT
|
||||
var listAPIResponse = listAPIMap["listAPIResponse"];
|
||||
var listAPIResponseObj = listAPIMap["listAPIResponseObj"];
|
||||
|
||||
var $detailsTab = $("#right_panel_content #tab_content_details");
|
||||
var $spinningWheel = $detailsTab.find("#spinning_wheel");
|
||||
$spinningWheel.find("#description").text(inProcessText);
|
||||
$spinningWheel.show();
|
||||
@ -249,7 +251,7 @@ function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsT
|
||||
$spinningWheel.hide();
|
||||
if (result.jobstatus == 1) { // Succeeded
|
||||
$detailsTab.find("#action_message_box #description").text(label + " action succeeded.");
|
||||
$detailsTab.find("#action_message_box").show();
|
||||
$detailsTab.find("#action_message_box").removeClass("error").show();
|
||||
|
||||
//DestroyVirtualMachine API doesn't return an embedded object on success (Bug 6041)
|
||||
//Before Bug 6041 get fixed, use the temporary solution below.
|
||||
@ -266,7 +268,7 @@ function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsT
|
||||
|
||||
} else if (result.jobstatus == 2) { // Failed
|
||||
$detailsTab.find("#action_message_box #description").text(label + " action failed. Reason: " + sanitizeXSS(result.jobresult));
|
||||
$detailsTab.find("#action_message_box").show();
|
||||
$detailsTab.find("#action_message_box").addClass("error").show();
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -304,7 +306,7 @@ function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsT
|
||||
async: false,
|
||||
success: function(json) {
|
||||
$detailsTab.find("#action_message_box #description").text(label + " action succeeded.");
|
||||
$detailsTab.find("#action_message_box").show();
|
||||
$detailsTab.find("#action_message_box").removeClass("error").show();
|
||||
|
||||
afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0]);
|
||||
}
|
||||
@ -333,7 +335,7 @@ function handleErrorInDetailsTab(XMLHttpResponse, $detailsTab, label) {
|
||||
$detailsTab.find("#action_message_box #description").text(label + " action failed. Reason: " + sanitizeXSS(unescape(errorMsg)));
|
||||
else
|
||||
$detailsTab.find("#action_message_box #description").text(label + " action failed.");
|
||||
$detailsTab.find("#action_message_box").show();
|
||||
$detailsTab.find("#action_message_box").addClass("error").show();
|
||||
}
|
||||
//***** actions for details tab in right panel (end) **************************************************************************
|
||||
|
||||
|
||||
@ -83,10 +83,10 @@ function volumeJsonToDetailsTab(jsonObj){
|
||||
$actionMenu.find("#action_list").empty();
|
||||
if(jsonObj.type=="ROOT") { //"create template" is allowed(when stopped), "detach disk" is disallowed.
|
||||
if (jsonObj.vmstate == "Stopped")
|
||||
buildActionLinkForDetailsTab("Create Template", volumeActionMap, $actionMenu, volumeListAPIMap, $detailsTab);
|
||||
buildActionLinkForDetailsTab("Create Template", volumeActionMap, $actionMenu, volumeListAPIMap);
|
||||
}
|
||||
else { //jsonObj.type=="DATADISK": "detach disk" is allowed, "create template" is disallowed.
|
||||
buildActionLinkForDetailsTab("Detach Disk", volumeActionMap, $actionMenu, volumeListAPIMap, $detailsTab);
|
||||
buildActionLinkForDetailsTab("Detach Disk", volumeActionMap, $actionMenu, volumeListAPIMap);
|
||||
}
|
||||
}
|
||||
|
||||
@ -138,7 +138,7 @@ function doCreateTemplate($actionLink, listAPIMap, $singleObject) {
|
||||
|
||||
var id = $singleObject.data("jsonObj").id;
|
||||
var apiCommand = "command=createTemplate&volumeId="+id+"&name="+encodeURIComponent(name)+"&displayText="+encodeURIComponent(desc)+"&osTypeId="+osType+"&isPublic="+isPublic+"&passwordEnabled="+password;
|
||||
doActionToSingleObject(id, $actionLink, apiCommand, listAPIMap, $singleObject);
|
||||
doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap);
|
||||
},
|
||||
"Cancel": function() {
|
||||
$(this).dialog("close");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user