new UI - snapshots page - implement create volume action.

This commit is contained in:
Jessica Wang 2010-09-23 16:43:44 -07:00
parent c9ae6fd09d
commit e583473252
2 changed files with 85 additions and 10 deletions

View File

@ -125,3 +125,19 @@
</div>
</div>
<!-- snapshot detail panel (end) -->
<!-- Add Volume Dialog from Snapshot (begin) -->
<div id="dialog_add_volume_from_snapshot" title="Add Volume from Snapshot" style="display: none">
<div class="dialog_formcontent">
<form action="#" method="post" id="form5">
<ol>
<li>
<label>Name:</label>
<input class="text" type="text" id="name" />
<div id="name_errormsg" class="dialog_formcontent_errormsg" style="display: none;"></div>
</li>
</ol>
</form>
</div>
</div>
<!-- Add Volume Dialog from Snapshot (end) -->

View File

@ -1,5 +1,9 @@
function afterLoadSnapshotJSP() {
activateDialog($("#dialog_add_volume_from_snapshot").dialog({
autoOpen: false,
modal: true,
zIndex: 2000
}));
}
function snapshotToMidmenu(jsonObj, $midmenuItem1) {
@ -13,15 +17,70 @@ function snapshotToMidmenu(jsonObj, $midmenuItem1) {
$midmenuItem1.find("#second_row").text(fromdb(jsonObj.volumename).substring(0,25));
}
function snapshotToRigntPanel($midmenuItem) {
function snapshotToRigntPanel($midmenuItem) {
var jsonObj = $midmenuItem.data("jsonObj");
snapshotJsonToDetailsTab(jsonObj);
}
function snapshotJsonToDetailsTab(jsonObj) {
var $detailsTab = $("#right_panel_content #tab_content_details");
$detailsTab.data("jsonObj", jsonObj);
var $rightPanelContent = $("#right_panel_content");
$rightPanelContent.find("#id").text(jsonObj.id);
$rightPanelContent.find("#name").text(fromdb(jsonObj.name));
$rightPanelContent.find("#volume_name").text(fromdb(jsonObj.volumename));
$rightPanelContent.find("#interval_type").text(jsonObj.intervaltype);
$rightPanelContent.find("#account").text(fromdb(jsonObj.account));
$rightPanelContent.find("#domain").text(fromdb(jsonObj.domain));
setDateField(jsonObj.created, $rightPanelContent.find("#created"));
var $detailsTab = $("#right_panel_content #tab_content_details");
$detailsTab.find("#id").text(jsonObj.id);
$detailsTab.find("#name").text(fromdb(jsonObj.name));
$detailsTab.find("#volume_name").text(fromdb(jsonObj.volumename));
$detailsTab.find("#interval_type").text(jsonObj.intervaltype);
$detailsTab.find("#account").text(fromdb(jsonObj.account));
$detailsTab.find("#domain").text(fromdb(jsonObj.domain));
setDateField(jsonObj.created, $detailsTab.find("#created"));
//actions ***
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
buildActionLinkForDetailsTab("Create Volume", snapshotActionMap, $actionMenu, snapshotListAPIMap);
}
var snapshotActionMap = {
"Create Volume": {
isAsyncJob: true,
asyncJobResponse: "createvolumeresponse",
dialogBeforeActionFn : doCreateVolumeFromSnapshotInSnapshotPage,
inProcessText: "Creating Volume....",
afterActionSeccessFn: function(jsonObj) {
}
}
}
var snapshotListAPIMap = {
listAPI: "listSnapshots",
listAPIResponse: "listsnapshotsresponse",
listAPIResponseObj: "snapshot"
};
function doCreateVolumeFromSnapshotInSnapshotPage($actionLink, listAPIMap, $detailsTab) {
var jsonObj = $detailsTab.data("jsonObj");
$("#dialog_add_volume_from_snapshot")
.dialog("option", "buttons", {
"Add": function() {
var thisDialog = $(this);
var isValid = true;
isValid &= validateString("Name", thisDialog.find("#name"), thisDialog.find("#name_errormsg"));
if (!isValid) return;
thisDialog.dialog("close");
var name = thisDialog.find("#name").val();
var id = jsonObj.id;
var apiCommand = "command=createVolume&snapshotid="+id+"&name="+name;
doActionToDetailsTab(id, $actionLink, apiCommand, listAPIMap);
},
"Cancel": function() {
$(this).dialog("close");
}
}).dialog("open");
}