diff --git a/client/WEB-INF/classes/resources/resource.properties b/client/WEB-INF/classes/resources/resource.properties
index bc806d40848..b65212e5771 100644
--- a/client/WEB-INF/classes/resources/resource.properties
+++ b/client/WEB-INF/classes/resources/resource.properties
@@ -63,6 +63,7 @@ disk.size = Disk Size
value = Value
description = Description
category = Category
+hypervisor = Hypervisor
disk.offering = Disk Offering
copy.ISO.to = Copy ISO to
diff --git a/ui/new/jsp/iso.jsp b/ui/new/jsp/iso.jsp
index 3121c3de9ec..330099c581f 100644
--- a/ui/new/jsp/iso.jsp
+++ b/ui/new/jsp/iso.jsp
@@ -244,7 +244,15 @@
-
+
+
+
+
+
diff --git a/ui/new/scripts/cloud.core2.diskoffering.js b/ui/new/scripts/cloud.core2.diskoffering.js
index 1509ddecb41..305a8f807d0 100644
--- a/ui/new/scripts/cloud.core2.diskoffering.js
+++ b/ui/new/scripts/cloud.core2.diskoffering.js
@@ -141,7 +141,7 @@ function diskOfferingJsonToDetailsTab(jsonObj) {
$detailsTab.find("#tags").text(fromdb(jsonObj.tags));
$detailsTab.find("#domain").text(fromdb(jsonObj.domain));
- //actions ***
+ //actions ***
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
var midmenuItemId = getMidmenuId(jsonObj);
@@ -168,7 +168,6 @@ function diskOfferingClearDetailsTab() {
$actionMenu.find("#action_list").append($("#no_available_actions").clone().show());
}
-
var diskOfferingActionMap = {
"Delete Disk Offering": {
api: "deleteDiskOffering",
diff --git a/ui/new/scripts/cloud.core2.instance.js b/ui/new/scripts/cloud.core2.instance.js
index 6f9560e57ab..bed5c357fdf 100644
--- a/ui/new/scripts/cloud.core2.instance.js
+++ b/ui/new/scripts/cloud.core2.instance.js
@@ -549,7 +549,8 @@ function clickInstanceGroupHeader($arrowIcon) {
$("body").stopTime(timerKey);
if (result.jobstatus == 1) {
// Succeeded
- vmToMidmenu(result.virtualmachine[0], $midmenuItem1);
+ vmToMidmenu(result.virtualmachine[0], $midmenuItem1);
+ bindClickToMidMenu($midmenuItem1, vmToRightPanel, getMidmenuId);
if (result.virtualmachine[0].passwordenabled == 'true') {
var extraMessage = "New password: " + result.virtualmachine[0].password;
afterAddingMidMenuItem($midmenuItem1, true, extraMessage);
diff --git a/ui/new/scripts/cloud.core2.iso.js b/ui/new/scripts/cloud.core2.iso.js
index 82376d2cf28..5f8d027455e 100644
--- a/ui/new/scripts/cloud.core2.iso.js
+++ b/ui/new/scripts/cloud.core2.iso.js
@@ -397,13 +397,20 @@ function doCreateVMFromIso($actionLink, $detailsTab, midmenuItemId) {
if (!isValid) return;
thisDialog.dialog("close");
-
- var name = trim(thisDialog.find("#name").val());
- var group = trim(thisDialog.find("#group").val());
- var serviceOfferingId = thisDialog.find("#service_offering").val();
- var diskOfferingId = thisDialog.find("#disk_offering").val();
+
+ var array1 = [];
+ var name = trim(thisDialog.find("#name").val());
+ array1.push("&displayname="+todb(name));
+ var group = trim(thisDialog.find("#group").val());
+ array1.push("&group="+todb(group));
+ var serviceOfferingId = thisDialog.find("#service_offering").val();
+ array1.push("&serviceOfferingId="+serviceOfferingId);
+ var diskOfferingId = thisDialog.find("#disk_offering").val();
+ array1.push("&diskOfferingId="+diskOfferingId);
+ var hypervisor = thisDialog.find("#hypervisor").val();
+ array1.push("&hypervisor="+hypervisor);
- var apiCommand = "command=deployVirtualMachine&zoneId="+zoneId+"&serviceOfferingId="+serviceOfferingId+"&diskOfferingId="+diskOfferingId+"&templateId="+id+"&group="+todb(group)+"&displayname="+todb(name);
+ var apiCommand = "command=deployVirtualMachine&zoneId="+zoneId+"&templateId="+id+array1.join("");
doActionToDetailsTab(id, $actionLink, apiCommand, midmenuItemId);
},
"Cancel": function() {
diff --git a/ui/new/scripts/cloud.core2.serviceoffering.js b/ui/new/scripts/cloud.core2.serviceoffering.js
index 94a2f6de512..eff293c8d1f 100644
--- a/ui/new/scripts/cloud.core2.serviceoffering.js
+++ b/ui/new/scripts/cloud.core2.serviceoffering.js
@@ -164,4 +164,48 @@ function serviceOfferingJsonToDetailsTab(jsonObj) {
$detailsTab.find("#networktype").text(toNetworkType(jsonObj.usevirtualnetwork));
$detailsTab.find("#tags").text(fromdb(jsonObj.tags));
setDateField(jsonObj.created, $detailsTab.find("#created"));
-}
\ No newline at end of file
+
+ //actions ***
+ var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
+ $actionMenu.find("#action_list").empty();
+ var midmenuItemId = getMidmenuId(jsonObj);
+ buildActionLinkForDetailsTab("Delete Service Offering", serviceOfferingActionMap, $actionMenu, midmenuItemId);
+}
+
+function serviceOfferingClearRightPanel() {
+ serviceOfferingClearDetailsTab();
+}
+
+function serviceOfferingClearDetailsTab() {
+ var $detailsTab = $("#right_panel_content #tab_content_details");
+ $detailsTab.find("#id").text("");
+ $detailsTab.find("#name").text("");
+ $detailsTab.find("#name_edit").val("");
+ $detailsTab.find("#displaytext").text("");
+ $detailsTab.find("#displaytext_edit").val("");
+ $detailsTab.find("#storagetype").text("");
+ $detailsTab.find("#cpu").text("");
+ $detailsTab.find("#memory").text("");
+ $detailsTab.find("#offerha").text("");
+ $detailsTab.find("#offerha_edit").val("");
+ $detailsTab.find("#networktype").text("");
+ $detailsTab.find("#tags").text("");
+ $detailsTab.find("#created").text("");
+
+ var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
+ $actionMenu.find("#action_list").empty();
+ $actionMenu.find("#action_list").append($("#no_available_actions").clone().show());
+}
+
+var serviceOfferingActionMap = {
+ "Delete Service Offering": {
+ api: "deleteServiceOffering",
+ isAsyncJob: false,
+ inProcessText: "Deleting service offering....",
+ afterActionSeccessFn: function(json, id, midmenuItemId) {
+ $("#"+midmenuItemId).remove();
+ clearRightPanel();
+ serviceOfferingClearRightPanel();
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/new/scripts/cloud.core2.template.js b/ui/new/scripts/cloud.core2.template.js
index 84eb19ba2f2..cfe8b41f721 100644
--- a/ui/new/scripts/cloud.core2.template.js
+++ b/ui/new/scripts/cloud.core2.template.js
@@ -353,7 +353,7 @@ var templateActionMap = {
},
"Copy Template": {
isAsyncJob: true,
- asyncJobResponse: "createtemplateresponse",
+ asyncJobResponse: "copytemplateresponse",
dialogBeforeActionFn : doCopyTemplate,
inProcessText: "Copying Template....",
afterActionSeccessFn: function(json, id, midmenuItemId){}
diff --git a/ui/new/scripts/cloud.core2.volume.js b/ui/new/scripts/cloud.core2.volume.js
index 32d7039680c..32126c3b237 100644
--- a/ui/new/scripts/cloud.core2.volume.js
+++ b/ui/new/scripts/cloud.core2.volume.js
@@ -124,7 +124,7 @@ function afterLoadVolumeJSP() {
if (result.jobstatus == 1) {
// Succeeded
volumeToMidmenu(result.volume[0], $midmenuItem1);
- bindClickToMidMenu($midmenuItem1, volumeToRigntPanel);
+ bindClickToMidMenu($midmenuItem1, volumeToRigntPanel, getMidmenuId);
afterAddingMidMenuItem($midmenuItem1, true);
} else if (result.jobstatus == 2) {
handleAsyncJobFailInMidMenu(result.jobresult, $midmenuItem1);