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
@ -56,13 +56,7 @@
|
|||||||
<p id="description"></p>
|
<p id="description"></p>
|
||||||
<div class="close_button" id="close_button">
|
<div class="close_button" id="close_button">
|
||||||
</div>
|
</div>
|
||||||
</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>
|
||||||
<div class="grid_container">
|
<div class="grid_container">
|
||||||
<div class="grid_rows odd">
|
<div class="grid_rows odd">
|
||||||
|
|||||||
@ -181,7 +181,7 @@ function handleErrorInMidMenu(XMLHttpResponse, $midmenuItem) {
|
|||||||
//***** actions for middle menu (end) **************************************************************************
|
//***** actions for middle menu (end) **************************************************************************
|
||||||
|
|
||||||
//***** actions for details tab in right panel (begin) ************************************************************************
|
//***** 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 apiInfo = actionMap[label];
|
||||||
var $listItem = $("#action_list_item").clone();
|
var $listItem = $("#action_list_item").clone();
|
||||||
$actionMenu.find("#action_list").append($listItem.show());
|
$actionMenu.find("#action_list").append($listItem.show());
|
||||||
@ -194,6 +194,7 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, listAPIMap,
|
|||||||
$link.data("afterActionSeccessFn", apiInfo.afterActionSeccessFn);
|
$link.data("afterActionSeccessFn", apiInfo.afterActionSeccessFn);
|
||||||
$link.data("dialogBeforeActionFn", apiInfo.dialogBeforeActionFn);
|
$link.data("dialogBeforeActionFn", apiInfo.dialogBeforeActionFn);
|
||||||
|
|
||||||
|
var $detailsTab = $("#right_panel_content #tab_content_details");
|
||||||
var id = $detailsTab.data("jsonObj").id;
|
var id = $detailsTab.data("jsonObj").id;
|
||||||
|
|
||||||
$link.bind("click", function(event) {
|
$link.bind("click", function(event) {
|
||||||
@ -202,7 +203,7 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, listAPIMap,
|
|||||||
var dialogBeforeActionFn = $actionLink.data("dialogBeforeActionFn");
|
var dialogBeforeActionFn = $actionLink.data("dialogBeforeActionFn");
|
||||||
if(dialogBeforeActionFn == null) {
|
if(dialogBeforeActionFn == null) {
|
||||||
var apiCommand = "command="+$actionLink.data("api")+"&id="+id;
|
var apiCommand = "command="+$actionLink.data("api")+"&id="+id;
|
||||||
doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsTab);
|
doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
dialogBeforeActionFn($actionLink, listAPIMap, $detailsTab);
|
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 label = $actionLink.data("label");
|
||||||
var inProcessText = $actionLink.data("inProcessText");
|
var inProcessText = $actionLink.data("inProcessText");
|
||||||
var isAsyncJob = $actionLink.data("isAsyncJob");
|
var isAsyncJob = $actionLink.data("isAsyncJob");
|
||||||
@ -220,7 +221,8 @@ function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsT
|
|||||||
var listAPI = listAPIMap["listAPI"];
|
var listAPI = listAPIMap["listAPI"];
|
||||||
var listAPIResponse = listAPIMap["listAPIResponse"];
|
var listAPIResponse = listAPIMap["listAPIResponse"];
|
||||||
var listAPIResponseObj = listAPIMap["listAPIResponseObj"];
|
var listAPIResponseObj = listAPIMap["listAPIResponseObj"];
|
||||||
|
|
||||||
|
var $detailsTab = $("#right_panel_content #tab_content_details");
|
||||||
var $spinningWheel = $detailsTab.find("#spinning_wheel");
|
var $spinningWheel = $detailsTab.find("#spinning_wheel");
|
||||||
$spinningWheel.find("#description").text(inProcessText);
|
$spinningWheel.find("#description").text(inProcessText);
|
||||||
$spinningWheel.show();
|
$spinningWheel.show();
|
||||||
@ -249,7 +251,7 @@ function doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap, $detailsT
|
|||||||
$spinningWheel.hide();
|
$spinningWheel.hide();
|
||||||
if (result.jobstatus == 1) { // Succeeded
|
if (result.jobstatus == 1) { // Succeeded
|
||||||
$detailsTab.find("#action_message_box #description").text(label + " action 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)
|
//DestroyVirtualMachine API doesn't return an embedded object on success (Bug 6041)
|
||||||
//Before Bug 6041 get fixed, use the temporary solution below.
|
//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
|
} 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 #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,
|
async: false,
|
||||||
success: function(json) {
|
success: function(json) {
|
||||||
$detailsTab.find("#action_message_box #description").text(label + " action 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();
|
||||||
|
|
||||||
afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0]);
|
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)));
|
$detailsTab.find("#action_message_box #description").text(label + " action failed. Reason: " + sanitizeXSS(unescape(errorMsg)));
|
||||||
else
|
else
|
||||||
$detailsTab.find("#action_message_box #description").text(label + " action failed.");
|
$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) **************************************************************************
|
//***** actions for details tab in right panel (end) **************************************************************************
|
||||||
|
|
||||||
|
|||||||
@ -83,10 +83,10 @@ function volumeJsonToDetailsTab(jsonObj){
|
|||||||
$actionMenu.find("#action_list").empty();
|
$actionMenu.find("#action_list").empty();
|
||||||
if(jsonObj.type=="ROOT") { //"create template" is allowed(when stopped), "detach disk" is disallowed.
|
if(jsonObj.type=="ROOT") { //"create template" is allowed(when stopped), "detach disk" is disallowed.
|
||||||
if (jsonObj.vmstate == "Stopped")
|
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.
|
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 id = $singleObject.data("jsonObj").id;
|
||||||
var apiCommand = "command=createTemplate&volumeId="+id+"&name="+encodeURIComponent(name)+"&displayText="+encodeURIComponent(desc)+"&osTypeId="+osType+"&isPublic="+isPublic+"&passwordEnabled="+password;
|
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() {
|
"Cancel": function() {
|
||||||
$(this).dialog("close");
|
$(this).dialog("close");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user