new UI - pass detailsTab element when doing action, so we don't need to select detailsTab again when trying to show loading image in detailsTab.

This commit is contained in:
Jessica Wang 2010-10-23 23:51:23 -07:00
parent b4f76d79c1
commit 319bda7c3b
11 changed files with 53 additions and 58 deletions

View File

@ -68,17 +68,17 @@ function accountJsonToDetailsTab($midmenuItem1) {
if(jsonObj.id != systemAccountId && jsonObj.id != adminAccountId) {
if (jsonObj.accounttype == roleTypeUser || jsonObj.accounttype == roleTypeDomainAdmin) {
buildActionLinkForDetailsTab("Resource limits", accountActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Resource limits", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
if(jsonObj.state == "enabled") {
buildActionLinkForDetailsTab("Disable account", accountActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Lock account", accountActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Disable account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
buildActionLinkForDetailsTab("Lock account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
else if(jsonObj.state == "disabled" || jsonObj.state == "locked") {
buildActionLinkForDetailsTab("Enable account", accountActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Enable account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
}
@ -259,7 +259,7 @@ function doDisableAccount($actionLink, $detailsTab, $midmenuItem1) {
"Yes": function() {
$(this).dialog("close");
var apiCommand = "command=disableAccount&account="+jsonObj.name+"&domainId="+jsonObj.domainid;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1) ;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab) ;
},
"Cancel": function() {
$(this).dialog("close");
@ -275,7 +275,7 @@ function doLockAccount($actionLink, $detailsTab, $midmenuItem1) {
"Yes": function() {
$(this).dialog("close");
var apiCommand = "command=lockAccount&account="+jsonObj.name+"&domainId="+jsonObj.domainid;
doActionToDetailsTab(jsonObj.id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(jsonObj.id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -291,7 +291,7 @@ function doEnableAccount($actionLink, $detailsTab, $midmenuItem1) {
"Yes": function() {
$(this).dialog("close");
var apiCommand = "command=enableAccount&account="+jsonObj.name+"&domainId="+jsonObj.domainid;
doActionToDetailsTab(jsonObj.id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(jsonObj.id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");

View File

@ -163,7 +163,7 @@ function diskOfferingJsonToDetailsTab($midmenuItem1) {
//actions ***
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
buildActionLinkForDetailsTab("Delete Disk Offering", diskOfferingActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Delete Disk Offering", diskOfferingActionMap, $actionMenu, $midmenuItem1, $detailsTab);
}
function diskOfferingClearRightPanel() {

View File

@ -259,7 +259,7 @@ function ipJsonToDetailsTab($midmenuItem1) {
var noAvailableActions = true;
if(isIpManageable(ipObj.domainid, ipObj.account) == true && ipObj.issourcenat != "true") {
buildActionLinkForDetailsTab("Release IP", ipActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Release IP", ipActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
@ -328,7 +328,7 @@ function doReleaseIp($actionLink, $detailsTab, $midmenuItem1) {
"Confirm": function() {
$(this).dialog("close");
var apiCommand = "command=disassociateIpAddress&ipaddress="+ipaddress;
doActionToDetailsTab(ipaddress, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(ipaddress, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");

View File

@ -213,9 +213,9 @@ function isoJsonToDetailsTab($midmenuItem1) {
//$("#edit_button").hide();
}
else {
buildActionLinkForDetailsTab("Edit ISO", isoActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Edit ISO", isoActionMap, $actionMenu, $midmenuItem1, $detailsTab);
//$("#edit_button").show();
buildActionLinkForDetailsTab("Copy ISO", isoActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Copy ISO", isoActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
@ -223,7 +223,7 @@ function isoJsonToDetailsTab($midmenuItem1) {
if (((isUser() && jsonObj.ispublic == "true" && !(jsonObj.domainid == g_domainid && jsonObj.account == g_account)) || jsonObj.isready == "false") || (jsonObj.bootable == "false")) {
}
else {
buildActionLinkForDetailsTab("Create VM", isoActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Create VM", isoActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
@ -231,7 +231,7 @@ function isoJsonToDetailsTab($midmenuItem1) {
if (((isUser() && jsonObj.ispublic == "true" && !(jsonObj.domainid == g_domainid && jsonObj.account == g_account))) || (jsonObj.isready == "false" && jsonObj.isostatus != null && jsonObj.isostatus.indexOf("% Downloaded") != -1)) {
}
else {
buildActionLinkForDetailsTab("Delete ISO", isoActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Delete ISO", isoActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
@ -371,7 +371,7 @@ function doDeleteIso($actionLink, $detailsTab, $midmenuItem1) {
"Confirm": function() {
$(this).dialog("close");
var apiCommand = "command=deleteIso&id="+id+moreCriteria.join("");
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -409,7 +409,7 @@ function doCopyIso($actionLink, $detailsTab, $midmenuItem1) {
var destZoneId = thisDialog.find("#copy_iso_zone").val();
var apiCommand = "command=copyIso&id="+id+"&sourcezoneid="+sourceZoneId+"&destzoneid="+destZoneId;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -450,7 +450,7 @@ function doCreateVMFromIso($actionLink, $detailsTab, $midmenuItem1) {
array1.push("&hypervisor="+hypervisor);
var apiCommand = "command=deployVirtualMachine&zoneId="+zoneId+"&templateId="+id+array1.join("");
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");

View File

@ -29,9 +29,7 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, $midmenuIte
$link.data("asyncJobResponse", apiInfo.asyncJobResponse);
$link.data("afterActionSeccessFn", apiInfo.afterActionSeccessFn);
$link.data("dialogBeforeActionFn", apiInfo.dialogBeforeActionFn);
if($detailsTab == null) //when right panel has only 1 details tab
$detailsTab = $("#right_panel_content #tab_content_details");
var id = $detailsTab.data("jsonObj").id;
$link.bind("click", function(event) {
@ -41,7 +39,7 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, $midmenuIte
var dialogBeforeActionFn = $actionLink.data("dialogBeforeActionFn");
if(dialogBeforeActionFn == null) {
var apiCommand = "command="+$actionLink.data("api")+"&id="+id;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
}
else {
dialogBeforeActionFn($actionLink, $detailsTab, $midmenuItem1);
@ -50,14 +48,13 @@ function buildActionLinkForDetailsTab(label, actionMap, $actionMenu, $midmenuIte
});
}
function doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1) {
function doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab) {
var label = $actionLink.data("label");
var inProcessText = $actionLink.data("inProcessText");
var isAsyncJob = $actionLink.data("isAsyncJob");
var asyncJobResponse = $actionLink.data("asyncJobResponse");
var afterActionSeccessFn = $actionLink.data("afterActionSeccessFn");
var $detailsTab = $("#right_panel_content #tab_content_details");
var $spinningWheel = $detailsTab.find("#spinning_wheel");
$spinningWheel.find("#description").text(inProcessText);
$spinningWheel.show();

View File

@ -585,7 +585,6 @@ function hostJsonToDetailsTab($midmenuItem1) {
$actionMenu.find("#action_list").empty();
var noAvailableActions = true;
//when right panel has more than 1 details tab, we need to specify which details tab to build action link on by passing $detailsTab to buildActionLinkForDetailsTab(~, ~, ~, ~, $detailsTab)
if (jsonObj.state == 'Up' || jsonObj.state == "Connecting") {
buildActionLinkForDetailsTab("Enable Maintenance Mode", hostActionMap, $actionMenu, $midmenuItem1, $detailsTab);
buildActionLinkForDetailsTab("Force Reconnect", hostActionMap, $actionMenu, $midmenuItem1, $detailsTab);
@ -1581,7 +1580,7 @@ function doEnableMaintenanceMode($actionLink, $detailsTab, $midmenuItem1){
$(this).dialog("close");
var id = jsonObj.id;
var apiCommand = "command=prepareHostForMaintenance&id="+id;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -1598,7 +1597,7 @@ function doCancelMaintenanceMode($actionLink, $detailsTab, $midmenuItem1){
$(this).dialog("close");
var id = jsonObj.id;
var apiCommand = "command=cancelHostMaintenance&id="+id;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -1615,7 +1614,7 @@ function doForceReconnect($actionLink, $detailsTab, $midmenuItem1){
$(this).dialog("close");
var id = jsonObj.id;
var apiCommand = "command=reconnectHost&id="+id;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -1632,7 +1631,7 @@ function doRemoveHost($actionLink, $detailsTab, $midmenuItem1){
$(this).dialog("close");
var id = jsonObj.id;
var apiCommand = "command=deleteHost&id="+id;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -1656,7 +1655,7 @@ function doUpdateOSPreference($actionLink, $detailsTab, $midmenuItem1){
var id = jsonObj.id;
var apiCommand = "command=updateHost&id="+id+category;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -1686,7 +1685,7 @@ function doDeletePrimaryStorage($actionLink, $detailsTab, $midmenuItem1){
$(this).dialog("close");
var id = jsonObj.id;
var apiCommand = "command=deleteStoragePool&id="+id;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");

View File

@ -63,12 +63,12 @@ function routerJsonToDetailsTab($midmenuItem1) {
var noAvailableActions = true;
if (jsonObj.state == 'Running') {
buildActionLinkForDetailsTab("Stop Router", routerActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Reboot Router", routerActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Stop Router", routerActionMap, $actionMenu, $midmenuItem1, $detailsTab);
buildActionLinkForDetailsTab("Reboot Router", routerActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
else if (jsonObj.state == 'Stopped') {
buildActionLinkForDetailsTab("Start Router", routerActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Start Router", routerActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}

View File

@ -187,7 +187,7 @@ function serviceOfferingJsonToDetailsTab($midmenuItem1) {
//actions ***
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
buildActionLinkForDetailsTab("Delete Service Offering", serviceOfferingActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Delete Service Offering", serviceOfferingActionMap, $actionMenu, $midmenuItem1, $detailsTab);
}
function serviceOfferingClearRightPanel() {

View File

@ -77,9 +77,9 @@ function snapshotJsonToDetailsTab($midmenuItem1) {
//actions ***
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
buildActionLinkForDetailsTab("Create Volume" , snapshotActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Delete Snapshot", snapshotActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Create Template", snapshotActionMap, $actionMenu, $midmenuItem1);
buildActionLinkForDetailsTab("Create Volume" , snapshotActionMap, $actionMenu, $midmenuItem1, $detailsTab);
buildActionLinkForDetailsTab("Delete Snapshot", snapshotActionMap, $actionMenu, $midmenuItem1, $detailsTab);
buildActionLinkForDetailsTab("Create Template", snapshotActionMap, $actionMenu, $midmenuItem1, $detailsTab);
}
function snapshotClearRightPanel() {
@ -141,7 +141,7 @@ function doCreateVolumeFromSnapshotInSnapshotPage($actionLink, $detailsTab, $mid
var id = jsonObj.id;
var apiCommand = "command=createVolume&snapshotid="+id+"&name="+name;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -170,7 +170,7 @@ function doCreateTemplateFromSnapshotInSnapshotPage($actionLink, $detailsTab, $m
var id = jsonObj.id;
var apiCommand = "command=createTemplate&snapshotid="+id+"&name="+name+"&displaytext="+displayText+"&ostypeid="+osTypeId+"&passwordEnabled="+password;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");

View File

@ -274,17 +274,16 @@ function templateJsonToDetailsTab($midmenuItem1) {
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
var noAvailableActions = true;
var midmenuItemId = templateGetMidmenuId(jsonObj);
// action Edit, Copy, Create VM
if ((isUser() && jsonObj.ispublic == "true" && !(jsonObj.domainid == g_domainid && jsonObj.account == g_account)) || jsonObj.id==DomRTemplateId || jsonObj.isready == "false") {
//$("#edit_button").hide();
}
else {
buildActionLinkForDetailsTab("Edit Template", templateActionMap, $actionMenu, midmenuItemId);
buildActionLinkForDetailsTab("Edit Template", templateActionMap, $actionMenu, $midmenuItem1, $detailsTab);
//$("#edit_button").show();
buildActionLinkForDetailsTab("Copy Template", templateActionMap, $actionMenu, midmenuItemId);
buildActionLinkForDetailsTab("Create VM", templateActionMap, $actionMenu, midmenuItemId);
buildActionLinkForDetailsTab("Copy Template", templateActionMap, $actionMenu, $midmenuItem1, $detailsTab);
buildActionLinkForDetailsTab("Create VM", templateActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
@ -293,7 +292,7 @@ function templateJsonToDetailsTab($midmenuItem1) {
//template.find("#template_delete_container").hide();
}
else {
buildActionLinkForDetailsTab("Delete Template", templateActionMap, $actionMenu, midmenuItemId);
buildActionLinkForDetailsTab("Delete Template", templateActionMap, $actionMenu, $midmenuItem1, $detailsTab);
noAvailableActions = false;
}
@ -513,7 +512,7 @@ function doDeleteTemplate($actionLink, $detailsTab, $midmenuItem1) {
"Confirm": function() {
$(this).dialog("close");
var apiCommand = "command=deleteTemplate&id="+id+moreCriteria.join("");
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -558,7 +557,7 @@ function doCopyTemplate($actionLink, $detailsTab, $midmenuItem1) {
var id = $detailsTab.data("jsonObj").id;
var apiCommand = "command=copyTemplate&id="+id+"&sourcezoneid="+sourceZoneId+"&destzoneid="+destZoneId;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -602,7 +601,7 @@ function doCreateVMFromTemplate($actionLink, $detailsTab, $midmenuItem1) {
array1.push("&diskOfferingId="+diskOfferingId);
var apiCommand = "command=deployVirtualMachine&zoneId="+zoneId+"&templateId="+id+array1.join("");
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");

View File

@ -432,27 +432,27 @@ function volumeJsonToDetailsTab($midmenuItem1){
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
buildActionLinkForDetailsTab("Take Snapshot", volumeActionMap, $actionMenu, $midmenuItem1); //show take snapshot
buildActionLinkForDetailsTab("Recurring Snapshot", volumeActionMap, $actionMenu, $midmenuItem1); //show Recurring Snapshot
buildActionLinkForDetailsTab("Take Snapshot", volumeActionMap, $actionMenu, $midmenuItem1, $detailsTab); //show take snapshot
buildActionLinkForDetailsTab("Recurring Snapshot", volumeActionMap, $actionMenu, $midmenuItem1, $detailsTab); //show Recurring Snapshot
if(jsonObj.state != "Creating" && jsonObj.state != "Corrupted" && jsonObj.name != "attaching") {
if(jsonObj.type=="ROOT") {
if (jsonObj.vmstate == "Stopped") {
//buildActionLinkForDetailsTab("Create Template", volumeActionMap, $actionMenu, $midmenuItem1); //backend of CreateTemplateFromVolume is not working. Hide the option from UI until backend is fixed.
//buildActionLinkForDetailsTab("Create Template", volumeActionMap, $actionMenu, $midmenuItem1, $detailsTab); //backend of CreateTemplateFromVolume is not working. Hide the option from UI until backend is fixed.
}
}
else {
if (jsonObj.virtualmachineid != null) {
if (jsonObj.storagetype == "shared" && (jsonObj.vmstate == "Running" || jsonObj.vmstate == "Stopped")) {
buildActionLinkForDetailsTab("Detach Disk", volumeActionMap, $actionMenu, $midmenuItem1); //show detach disk
buildActionLinkForDetailsTab("Detach Disk", volumeActionMap, $actionMenu, $midmenuItem1, $detailsTab); //show detach disk
}
} else {
// Disk not attached
if (jsonObj.storagetype == "shared") {
buildActionLinkForDetailsTab("Attach Disk", volumeActionMap, $actionMenu, $midmenuItem1); //show attach disk
buildActionLinkForDetailsTab("Attach Disk", volumeActionMap, $actionMenu, $midmenuItem1, $detailsTab); //show attach disk
if(jsonObj.vmname == null || jsonObj.vmname == "none")
buildActionLinkForDetailsTab("Delete Volume", volumeActionMap, $actionMenu, $midmenuItem1); //show delete volume
buildActionLinkForDetailsTab("Delete Volume", volumeActionMap, $actionMenu, $midmenuItem1, $detailsTab); //show delete volume
}
}
}
@ -620,7 +620,7 @@ function doCreateTemplateFromVolume($actionLink, $detailsTab, $midmenuItem1) {
var id = $detailsTab.data("jsonObj").id;
var apiCommand = "command=createTemplate&volumeId="+id+"&name="+todb(name)+"&displayText="+todb(desc)+"&osTypeId="+osType+"&isPublic="+isPublic+"&passwordEnabled="+password;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -636,7 +636,7 @@ function doTakeSnapshot($actionLink, $detailsTab, $midmenuItem1) {
var id = $detailsTab.data("jsonObj").id;
var apiCommand = "command=createSnapshot&volumeid="+id;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");
@ -860,7 +860,7 @@ function doAttachDisk($actionLink, $detailsTab, $midmenuItem1) {
var id = jsonObj.id;
var apiCommand = "command=attachVolume&id="+id+'&virtualMachineId='+virtualMachineId;
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1);
doActionToDetailsTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
},
"Cancel": function() {
$(this).dialog("close");