new UI - add action message box to actions for subgrid items.

This commit is contained in:
Jessica Wang 2010-09-14 17:40:36 -07:00
parent 64c45588b2
commit c3144e0d76
4 changed files with 963 additions and 898 deletions

View File

@ -1,28 +1,25 @@
<!--
<script type="text/javascript" src="scripts/cloud.core.instance.js"></script>
-->
<%@ page import="java.util.*" %> <%@ page import="java.util.*" %>
<%@ page import="com.cloud.utils.*" %> <%@ page import="com.cloud.utils.*" %>
<% <%
Locale browserLocale = request.getLocale(); Locale browserLocale = request.getLocale();
CloudResourceBundle t = CloudResourceBundle.getBundle("resources/resource", browserLocale); CloudResourceBundle t = CloudResourceBundle.getBundle("resources/resource", browserLocale);
%> %>
<!-- VM detail panel (begin) --> <!-- VM detail panel (begin) -->
<div class="main_title" id="right_panel_header"> <div class="main_title" id="right_panel_header">
<div class="main_titleicon"> <div class="main_titleicon">
<img src="images/title_instanceicons.gif" alt="Instance" /></div> <img src="images/title_instanceicons.gif" alt="Instance" /></div>
<h1 id="vm_name">Instance <h1 id="vm_name">
Instance
</h1> </h1>
</div> </div>
<div class="contentbox" id="right_panel_content"> <div class="contentbox" id="right_panel_content">
<div class="info_detailbox errorbox" id="after_action_info_container" style="display:none"> <div class="info_detailbox errorbox" id="after_action_info_container" style="display: none">
<p id="after_action_info"></p> <p id="after_action_info">
</p>
</div> </div>
<div class="tabbox" style="margin-top:15px;"> <div class="tabbox" style="margin-top: 15px;">
<div class="content_tabs on" id="tab_details"> <div class="content_tabs on" id="tab_details">
<%=t.t("Details")%></div> <%=t.t("Details")%></div>
<div class="content_tabs off" id="tab_volume"> <div class="content_tabs off" id="tab_volume">
@ -30,9 +27,8 @@
<div class="content_tabs off" id="tab_statistics"> <div class="content_tabs off" id="tab_statistics">
<%=t.t("Statistics")%></div> <%=t.t("Statistics")%></div>
</div> </div>
<!--Details tab (start)--> <!--Details tab (start)-->
<div class="grid_container" style="display:block;" id="tab_content_details"> <div class="grid_container" style="display: block;" id="tab_content_details">
<div class="grid_rows odd"> <div class="grid_rows odd">
<div class="vm_statusbox"> <div class="vm_statusbox">
<div class="vm_consolebox"> <div class="vm_consolebox">
@ -53,7 +49,7 @@
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="zoneName"> <div class="row_celltitles" id="zoneName">
</div> </div>
</div> </div>
</div> </div>
<div class="grid_rows odd"> <div class="grid_rows odd">
@ -140,7 +136,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="grid_rows odd"> <div class="grid_rows odd">
<div class="grid_row_cell" style="width: 20%;"> <div class="grid_row_cell" style="width: 20%;">
<div class="row_celltitles"> <div class="row_celltitles">
<%=t.t("Group")%>:</div> <%=t.t("Group")%>:</div>
@ -152,24 +148,26 @@
</div> </div>
</div> </div>
<!--Details tab (end)--> <!--Details tab (end)-->
<!--Volume tab (start)--> <!--Volume tab (start)-->
<div style="display:none;" id="tab_content_volume"> <div style="display: none;" id="tab_content_volume">
<div class="grid_container" id="volume_tab_template" style="display: block">
<div class="grid_container" id="volume_tab_template" style="display:block"> <div class="grid_header">
<div class="grid_header"> <div class="grid_header_title" id="name">
<div class="grid_header_title" id="name"></div>
<div class="grid_actionbox" id="volume_action_link" style="display:block;">
<div class="grid_actionsdropdown_box" id="volume_action_menu" style="display: none;">
<ul class="actionsdropdown_boxlist" id="action_list">
<li> <a href="#"> Delete </a> </li>
<li> <a href="#"> Attach Disk </a> </li>
</ul>
</div>
</div> </div>
<div class="gridheader_loaderbox" style="height:18px;"> <div class="grid_actionbox" id="volume_action_link" style="display: block;">
<div class="gridheader_loader"></div> <div class="grid_actionsdropdown_box" id="volume_action_menu" style="display: none;">
<p> Creating Template &hellip; </p> <ul class="actionsdropdown_boxlist" id="action_list">
<li><a href="#">Delete </a></li>
<li><a href="#">Attach Disk </a></li>
</ul>
</div>
</div>
<div class="gridheader_loaderbox" style="height: 18px;">
<div class="gridheader_loader">
</div>
<p>
Creating Template &hellip;
</p>
</div> </div>
</div> </div>
<div class="grid_rows even"> <div class="grid_rows even">
@ -178,16 +176,18 @@
ID:</div> ID:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="id"></div> <div class="row_celltitles" id="id">
</div>
</div> </div>
</div> </div>
<div class="grid_rows odd"> <div class="grid_rows odd">
<div class="grid_row_cell" style="width: 20%;"> <div class="grid_row_cell" style="width: 20%;">
<div class="row_celltitles"> <div class="row_celltitles">
Type:</div> Type:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="type"></div> <div class="row_celltitles" id="type">
</div>
</div> </div>
</div> </div>
<div class="grid_rows even"> <div class="grid_rows even">
@ -196,7 +196,8 @@
Size:</div> Size:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="size"></div> <div class="row_celltitles" id="size">
</div>
</div> </div>
</div> </div>
<div class="grid_rows odd"> <div class="grid_rows odd">
@ -205,18 +206,16 @@
Created:</div> Created:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="created"></div> <div class="row_celltitles" id="created">
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!--Volume tab (end)--> <!--Volume tab (end)-->
<!--Statistics tab (start)--> <!--Statistics tab (start)-->
<div class="grid_container" style="display:none;" id="tab_content_statistics"> <div class="grid_container" style="display: none;" id="tab_content_statistics">
statistics.... statistics....
</div> </div>
<!--Statistics tab (start)--> <!--Statistics tab (start)-->
</div> </div>
@ -237,7 +236,8 @@
Step 5</div> Step 5</div>
<div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left"> <div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left">
</div> </div>
<div class="vmpopup_container_closebutton" id="close_button"></div> <div class="vmpopup_container_closebutton" id="close_button">
</div>
</div> </div>
<div class="vmpopup_container_mid"> <div class="vmpopup_container_mid">
<div class="vmpopup_maincontentarea"> <div class="vmpopup_maincontentarea">
@ -349,19 +349,24 @@
Step 5</div> Step 5</div>
<div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left"> <div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left">
</div> </div>
<div class="vmpopup_container_closebutton" id="close_button"></div> <div class="vmpopup_container_closebutton" id="close_button">
</div>
</div> </div>
<div class="vmpopup_container_mid"> <div class="vmpopup_container_mid">
<div class="vmpopup_maincontentarea"> <div class="vmpopup_maincontentarea">
<div class="vmpopup_titlebox"> <div class="vmpopup_titlebox">
<h2> <h2>
Step 2: <strong>Service Offering</strong></h2> Step 2: <strong>Service Offering</strong></h2>
<p><!-- <p>
<!--
Please select the CPU, Memory and Storage requirement you need for your new Virtual Please select the CPU, Memory and Storage requirement you need for your new Virtual
Instance--></p> Instance-->
</p>
</div> </div>
<div class="vmpopup_contentpanel"> <div class="vmpopup_contentpanel">
<h3><!--Service Offering--></h3> <h3>
<!--Service Offering-->
</h3>
<div class="vmpopup_offeringpanel" id="service_offering_container"> <div class="vmpopup_offeringpanel" id="service_offering_container">
<!-- <!--
<div class="vmpopup_offeringbox"> <div class="vmpopup_offeringbox">
@ -444,20 +449,23 @@
Step 5</div> Step 5</div>
<div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left"> <div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left">
</div> </div>
<div class="vmpopup_container_closebutton" id="close_button"></div> <div class="vmpopup_container_closebutton" id="close_button">
</div>
</div> </div>
<div class="vmpopup_container_mid"> <div class="vmpopup_container_mid">
<div class="vmpopup_maincontentarea"> <div class="vmpopup_maincontentarea">
<div class="vmpopup_titlebox"> <div class="vmpopup_titlebox">
<h2> <h2>
Step 3: <strong id="step3_label">Select a Disk Offering</strong></h2> Step 3: <strong id="step3_label">Select a Disk Offering</strong></h2>
<p></p> <p>
</p>
</div> </div>
<div class="vmpopup_contentpanel"> <div class="vmpopup_contentpanel">
<h3></h3> <h3>
<div class="vmpopup_offeringpanel" id="data_disk_offering_container" style="display:none"> </h3>
<div class="vmpopup_offeringpanel" id="data_disk_offering_container" style="display: none">
</div> </div>
<div class="vmpopup_offeringpanel" id="root_disk_offering_container" style="display:none"> <div class="vmpopup_offeringpanel" id="root_disk_offering_container" style="display: none">
</div> </div>
</div> </div>
<div class="vmpopup_navigationpanel"> <div class="vmpopup_navigationpanel">
@ -485,17 +493,20 @@
Step 5</div> Step 5</div>
<div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left"> <div class="vmpopup_steps" style="background: url(images/laststep_bg.gif) no-repeat top left">
</div> </div>
<div class="vmpopup_container_closebutton" id="close_button"></div> <div class="vmpopup_container_closebutton" id="close_button">
</div>
</div> </div>
<div class="vmpopup_container_mid"> <div class="vmpopup_container_mid">
<div class="vmpopup_maincontentarea"> <div class="vmpopup_maincontentarea">
<div class="vmpopup_titlebox"> <div class="vmpopup_titlebox">
<h2> <h2>
Step 4: <strong>Network</strong></h2> Step 4: <strong>Network</strong></h2>
<p></p> <p>
</p>
</div> </div>
<div class="vmpopup_contentpanel"> <div class="vmpopup_contentpanel">
<h3></h3> <h3>
</h3>
<div class="vmpopup_offeringpanel"> <div class="vmpopup_offeringpanel">
<div class="vmpopup_offeringbox"> <div class="vmpopup_offeringbox">
<input type="radio" name="radiogroup" class="radio" /> <input type="radio" name="radiogroup" class="radio" />
@ -559,17 +570,20 @@
Step 5</div> Step 5</div>
<div class="vmpopup_steps" style="background: url(images/laststep_slectedbg.gif) no-repeat top left"> <div class="vmpopup_steps" style="background: url(images/laststep_slectedbg.gif) no-repeat top left">
</div> </div>
<div class="vmpopup_container_closebutton" id="close_button"></div> <div class="vmpopup_container_closebutton" id="close_button">
</div>
</div> </div>
<div class="vmpopup_container_mid"> <div class="vmpopup_container_mid">
<div class="vmpopup_maincontentarea"> <div class="vmpopup_maincontentarea">
<div class="vmpopup_titlebox"> <div class="vmpopup_titlebox">
<h2> <h2>
Step 5: <strong>Last Step</strong></h2> Step 5: <strong>Last Step</strong></h2>
<p></p> <p>
</p>
</div> </div>
<div class="vmpopup_contentpanel"> <div class="vmpopup_contentpanel">
<h3></h3> <h3>
</h3>
<div class="vmpopup_offeringpanel" style="margin-top: 10px;"> <div class="vmpopup_offeringpanel" style="margin-top: 10px;">
<div class="vmpopup_reviewbox_odd"> <div class="vmpopup_reviewbox_odd">
<div class="vmopopup_reviewtextbox"> <div class="vmopopup_reviewtextbox">
@ -626,7 +640,8 @@
Name (optional): Name (optional):
</div> </div>
<input class="text" type="text" id="wizard_vm_name" /> <input class="text" type="text" id="wizard_vm_name" />
<div id="wizard_vm_name_errormsg" class="dialog_formcontent_errormsg" style="display: none;"></div> <div id="wizard_vm_name_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</div> </div>
</div> </div>
<div class="vmpopup_reviewbox_odd"> <div class="vmpopup_reviewbox_odd">
@ -636,7 +651,8 @@
<div class="vmopopup_review_label"> <div class="vmopopup_review_label">
Group (optional):</div> Group (optional):</div>
<input class="text" type="text" id="wizard_vm_group" /> <input class="text" type="text" id="wizard_vm_group" />
<div id="wizard_vm_group_errormsg" class="dialog_formcontent_errormsg" style="display: none;"></div> <div id="wizard_vm_group_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</div> </div>
</div> </div>
</div> </div>
@ -684,6 +700,7 @@
<input type="text" id="custom_disk_size" class="text" /> <input type="text" id="custom_disk_size" class="text" />
<span>MB</span> <span>MB</span>
<div id="custom_disk_size_errormsg" class="dialog_formcontent_errormsg" style="display: none;"> <div id="custom_disk_size_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</div> </div>
<div class="vmpopup_offeringbox" id="vm_popup_disk_offering_template_existing" style="display: none"> <div class="vmpopup_offeringbox" id="vm_popup_disk_offering_template_existing" style="display: none">
<input type="radio" class="radio" checked /> <input type="radio" class="radio" checked />
@ -699,9 +716,8 @@
</div> </div>
</div> </div>
<!-- VM Wizard - disk Offering template (end)--> <!-- VM Wizard - disk Offering template (end)-->
<!-- Attach ISO Dialog --> <!-- Attach ISO Dialog -->
<div id="dialog_attach_iso" title="Attach ISO" style="display:none"> <div id="dialog_attach_iso" title="Attach ISO" style="display: none">
<p> <p>
Please specify the ISO you wish to attach to virtual instance. Please specify the ISO you wish to attach to virtual instance.
</p> </p>
@ -719,9 +735,8 @@
</form> </form>
</div> </div>
</div> </div>
<!-- Change Name Dialog --> <!-- Change Name Dialog -->
<div id="dialog_change_name" title="Change Name" style="display:none"> <div id="dialog_change_name" title="Change Name" style="display: none">
<p> <p>
Please specify the new name you want to change for virtual instance. Please specify the new name you want to change for virtual instance.
</p> </p>
@ -739,11 +754,11 @@
</form> </form>
</div> </div>
</div> </div>
<!-- Change Service Offering Dialog --> <!-- Change Service Offering Dialog -->
<div id="dialog_change_service_offering" title="Change Service Offering" style="display:none"> <div id="dialog_change_service_offering" title="Change Service Offering" style="display: none">
<p> <p>
After changing service offering, you must restart virtual instance for the new service offering to take effect. After changing service offering, you must restart virtual instance for the new service
offering to take effect.
</p> </p>
<div class="dialog_formcontent"> <div class="dialog_formcontent">
<form action="#" method="post" id="form_acquire"> <form action="#" method="post" id="form_acquire">
@ -758,12 +773,11 @@
</form> </form>
</div> </div>
</div> </div>
<!-- Change Group Dialog --> <!-- Change Group Dialog -->
<div id="dialog_change_group" title="Change Group" style="display:none"> <div id="dialog_change_group" title="Change Group" style="display: none">
<p> <p>
Please specify the new group you want to assign to your Virtual Instance. If no such group exists, a new one will be created Please specify the new group you want to assign to your Virtual Instance. If no
for you.</p> such group exists, a new one will be created for you.</p>
<div class="dialog_formcontent"> <div class="dialog_formcontent">
<form action="#" method="post" id="form_acquire"> <form action="#" method="post" id="form_acquire">
<ol> <ol>
@ -778,20 +792,28 @@
</form> </form>
</div> </div>
</div> </div>
<!-- volume tab template --> <!-- volume tab template -->
<div class="grid_container" id="volume_tab_template" style="display:none"> <div class="grid_container" id="volume_tab_template" style="display: none">
<div class="grid_header"> <div class="grid_header">
<div class="grid_header_title" id="name"></div> <div class="grid_header_title" id="name">
</div>
<div class="grid_actionbox" id="volume_action_link"> <div class="grid_actionbox" id="volume_action_link">
<div class="grid_actionsdropdown_box" id="volume_action_menu" style="display: none;"> <div class="grid_actionsdropdown_box" id="volume_action_menu" style="display: none;">
<ul class="actionsdropdown_boxlist" id="action_list"> <ul class="actionsdropdown_boxlist" id="action_list">
</ul> </ul>
</div> </div>
</div> </div>
<div class="gridheader_loaderbox" id="spinning_wheel" style="display:none; height:18px;"> <div class="gridheader_loaderbox" id="spinning_wheel" style="display: none; height: 18px;">
<div class="gridheader_loader" id="icon"></div> <div class="gridheader_loader" id="icon">
<p id="description"> Waiting &hellip; </p> </div>
<p id="description">
Waiting &hellip;
</p>
</div>
<div class="gridheader_message" id="action_message_box" style="border: 1px solid #999; display: none;">
<p id="description"></p>
<div class="close_button" id="close_button">
</div>
</div> </div>
</div> </div>
<div class="grid_rows even"> <div class="grid_rows even">
@ -800,16 +822,18 @@
ID:</div> ID:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="id"></div> <div class="row_celltitles" id="id">
</div>
</div> </div>
</div> </div>
<div class="grid_rows odd"> <div class="grid_rows odd">
<div class="grid_row_cell" style="width: 20%;"> <div class="grid_row_cell" style="width: 20%;">
<div class="row_celltitles"> <div class="row_celltitles">
Type:</div> Type:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="type"></div> <div class="row_celltitles" id="type">
</div>
</div> </div>
</div> </div>
<div class="grid_rows even"> <div class="grid_rows even">
@ -818,7 +842,8 @@
Size:</div> Size:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="size"></div> <div class="row_celltitles" id="size">
</div>
</div> </div>
</div> </div>
<div class="grid_rows odd"> <div class="grid_rows odd">
@ -827,13 +852,13 @@
Created:</div> Created:</div>
</div> </div>
<div class="grid_row_cell" style="width: 79%;"> <div class="grid_row_cell" style="width: 79%;">
<div class="row_celltitles" id="created"></div> <div class="row_celltitles" id="created">
</div>
</div> </div>
</div> </div>
</div> </div>
<!-- Create Template Dialog --> <!-- Create Template Dialog -->
<div id="dialog_create_template" title="Create Template" style="display:none"> <div id="dialog_create_template" title="Create Template" style="display: none">
<p> <p>
Please specify the following information before creating a template of your disk Please specify the following information before creating a template of your disk
volume: <b><span id="volume_name"></span></b>. Creating a template could take up volume: <b><span id="volume_name"></span></b>. Creating a template could take up

View File

@ -433,7 +433,7 @@ function clickInstanceGroupHeader($arrowIcon) {
"Create Template": { "Create Template": {
isAsyncJob: true, isAsyncJob: true,
asyncJobResponse: "createtemplateresponse", asyncJobResponse: "createtemplateresponse",
dialogBeforeActionFn : doCreateTemplate, dialogBeforeActionFn : doCreateTemplateFromVmVolume,
inProcessText: "Creating template....", inProcessText: "Creating template....",
afterActionSeccessFn: function(){} afterActionSeccessFn: function(){}
} }
@ -473,6 +473,10 @@ function clickInstanceGroupHeader($arrowIcon) {
buildActionLinkForSubgridItem("Detach Disk", vmVolumeActionMap, $actionMenu, volumeListAPIMap, template); buildActionLinkForSubgridItem("Detach Disk", vmVolumeActionMap, $actionMenu, volumeListAPIMap, template);
} }
template.find("#action_message_box #close_button").bind("click", function(event){
$(this).parent().hide();
return false;
});
} }
//***** declaration for volume tab (end) ********************************************************* //***** declaration for volume tab (end) *********************************************************
@ -1256,5 +1260,37 @@ function clickInstanceGroupHeader($arrowIcon) {
}); });
} }
function doCreateTemplateFromVmVolume($actionLink, listAPIMap, $subgridItem) {
var jsonObj = $subgridItem.data("jsonObj");
$("#dialog_create_template").find("#volume_name").text(jsonObj.name);
$("#dialog_create_template")
.dialog('option', 'buttons', {
"Create": function() {
//debugger;
var thisDialog = $(this);
thisDialog.dialog("close");
// validate values
var isValid = true;
isValid &= validateString("Name", thisDialog.find("#create_template_name"), thisDialog.find("#create_template_name_errormsg"));
isValid &= validateString("Display Text", thisDialog.find("#create_template_desc"), thisDialog.find("#create_template_desc_errormsg"));
if (!isValid) return;
var name = trim(thisDialog.find("#create_template_name").val());
var desc = trim(thisDialog.find("#create_template_desc").val());
var osType = thisDialog.find("#create_template_os_type").val();
var isPublic = thisDialog.find("#create_template_public").val();
var password = thisDialog.find("#create_template_password").val();
var id = $subgridItem.data("jsonObj").id;
var apiCommand = "command=createTemplate&volumeId="+id+"&name="+encodeURIComponent(name)+"&displayText="+encodeURIComponent(desc)+"&osTypeId="+osType+"&isPublic="+isPublic+"&passwordEnabled="+password;
doActionToSubgridItem(id, $actionLink, apiCommand, listAPIMap, $subgridItem);
},
"Cancel": function() {
$(this).dialog("close");
}
}).dialog("open");
}

View File

@ -407,7 +407,8 @@ function doActionToSubgridItem(id, $actionLink, apiCommand, listAPIMap, $subgrid
$("body").stopTime(timerKey); $("body").stopTime(timerKey);
$spinningWheel.hide(); $spinningWheel.hide();
if (result.jobstatus == 1) { // Succeeded if (result.jobstatus == 1) { // Succeeded
$subgridItem.data("afterActionInfo", (label + " action succeeded.")); $subgridItem.find("#action_message_box #description").text(label + " action succeeded.");
$subgridItem.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.
@ -423,7 +424,8 @@ function doActionToSubgridItem(id, $actionLink, apiCommand, listAPIMap, $subgrid
//afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $subgridItem); //afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $subgridItem);
} else if (result.jobstatus == 2) { // Failed } else if (result.jobstatus == 2) { // Failed
$subgridItem.data("afterActionInfo", (label + " action failed. Reason: " + sanitizeXSS(result.jobresult))); $subgridItem.find("#action_message_box #description").text(label + " action failed. Reason: " + sanitizeXSS(result.jobresult));
$subgridItem.find("#action_message_box").addClass("error").show();
} }
} }
}, },
@ -460,7 +462,8 @@ function doActionToSubgridItem(id, $actionLink, apiCommand, listAPIMap, $subgrid
dataType: "json", dataType: "json",
async: false, async: false,
success: function(json) { success: function(json) {
$subgridItem.data("afterActionInfo", (label + " action succeeded.")); $subgridItem.find("#action_message_box #description").text(label + " action succeeded.");
$subgridItem.find("#action_message_box").removeClass("error").show();
afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $subgridItem); afterActionSeccessFn(json[listAPIResponse][listAPIResponseObj][0], $subgridItem);
} }
}); });
@ -485,9 +488,10 @@ function handleErrorInSubgridItem(XMLHttpResponse, $subgridItem, label) {
errorMsg = XMLHttpResponse.responseText.substring(start, end); errorMsg = XMLHttpResponse.responseText.substring(start, end);
} }
if(errorMsg.length > 0) if(errorMsg.length > 0)
$subgridItem.data("afterActionInfo", ((label + " action failed. Reason: " + sanitizeXSS(unescape(errorMsg))))); $subgridItem.find("#action_message_box #description").text(label + " action failed. Reason: " + sanitizeXSS(unescape(errorMsg)));
else else
$subgridItem.data("afterActionInfo", (label + " action failed.")); $subgridItem.find("#action_message_box #description").text(label + " action failed.");
$subgridItem.find("#action_message_box").addClass("error").show();
} }
//***** actions for a subgrid item in right panel (end) ************************************************************************** //***** actions for a subgrid item in right panel (end) **************************************************************************

View File

@ -107,14 +107,14 @@ var volumeActionMap = {
"Create Template": { "Create Template": {
isAsyncJob: true, isAsyncJob: true,
asyncJobResponse: "createtemplateresponse", asyncJobResponse: "createtemplateresponse",
dialogBeforeActionFn : doCreateTemplate, dialogBeforeActionFn : doCreateTemplateFromVolume,
inProcessText: "Creating template....", inProcessText: "Creating template....",
afterActionSeccessFn: function(){} afterActionSeccessFn: function(){}
} }
} }
function doCreateTemplate($actionLink, listAPIMap, $singleObject) { function doCreateTemplateFromVolume($actionLink, listAPIMap, $detailsTab) {
var jsonObj = $singleObject.data("jsonObj"); var jsonObj = $detailsTab.data("jsonObj");
$("#dialog_create_template").find("#volume_name").text(jsonObj.name); $("#dialog_create_template").find("#volume_name").text(jsonObj.name);
$("#dialog_create_template") $("#dialog_create_template")
@ -136,7 +136,7 @@ function doCreateTemplate($actionLink, listAPIMap, $singleObject) {
var isPublic = thisDialog.find("#create_template_public").val(); var isPublic = thisDialog.find("#create_template_public").val();
var password = thisDialog.find("#create_template_password").val(); var password = thisDialog.find("#create_template_password").val();
var id = $singleObject.data("jsonObj").id; var id = $detailsTab.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;
doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap); doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap);
}, },