From 87a5ee27ab4edf2d73c14ef399ad6ca3203a0196 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Thu, 2 Dec 2010 18:45:51 -0800 Subject: [PATCH] Create Service Offering - add public/private option. When private is selected, show domain dropdown field. --- ui/jsp/serviceoffering.jsp | 16 +++++- ui/scripts/cloud.core.resource.js | 2 +- ui/scripts/cloud.core.serviceoffering.js | 67 +++++++++++++++++------- 3 files changed, 64 insertions(+), 21 deletions(-) diff --git a/ui/jsp/serviceoffering.jsp b/ui/jsp/serviceoffering.jsp index e9fddaf7126..08b4ad59663 100644 --- a/ui/jsp/serviceoffering.jsp +++ b/ui/jsp/serviceoffering.jsp @@ -235,7 +235,21 @@ - + +
  • + + +
  • + diff --git a/ui/scripts/cloud.core.resource.js b/ui/scripts/cloud.core.resource.js index d511adddd57..20d3d861eb3 100644 --- a/ui/scripts/cloud.core.resource.js +++ b/ui/scripts/cloud.core.resource.js @@ -638,7 +638,7 @@ function initAddZoneWizard() { var domains = json.listdomainsresponse.domain; if (domains != null && domains.length > 0) { for (var i = 0; i < domains.length; i++) { - domainDropdown.append(""); + domainDropdown.append(""); } } } diff --git a/ui/scripts/cloud.core.serviceoffering.js b/ui/scripts/cloud.core.serviceoffering.js index 6c1925939d1..119f5064f1c 100644 --- a/ui/scripts/cloud.core.serviceoffering.js +++ b/ui/scripts/cloud.core.serviceoffering.js @@ -41,28 +41,48 @@ function serviceOfferingGetSearchParams() { return moreCriteria.join(""); } -function afterLoadServiceOfferingJSP() { - var $detailsTab = $("#right_panel_content #tab_content_details"); - - //dialogs +function initAddServiceOfferingDialog() { initDialog("dialog_add_service"); - + var $dialogAddService = $("#dialog_add_service"); + $dialogAddService.find("#public_dropdown").unbind("change").bind("change", function(event) { + if($(this).val() == "true") { //public zone + $dialogAddService.find("#domain_dropdown_container").hide(); + } + else { //private zone + $dialogAddService.find("#domain_dropdown_container").show(); + } + return false; + }); + + var $domainDropdown = $dialogAddService.find("#domain_dropdown").empty(); + $.ajax({ + data: createURL("command=listDomains"), + dataType: "json", + async: false, + success: function(json) { + var domains = json.listdomainsresponse.domain; + if (domains != null && domains.length > 0) { + for (var i = 0; i < domains.length; i++) { + $domainDropdown.append(""); + } + } + } + }); + //add button *** $("#midmenu_add_link").find("#label").text("Add Service Offering"); $("#midmenu_add_link").show(); - $("#midmenu_add_link").unbind("click").bind("click", function(event) { - var dialogAddService = $("#dialog_add_service"); - - dialogAddService.find("#add_service_name").val(""); - dialogAddService.find("#add_service_display").val(""); - dialogAddService.find("#add_service_cpucore").val(""); - dialogAddService.find("#add_service_cpu").val(""); - dialogAddService.find("#add_service_memory").val(""); - dialogAddService.find("#add_service_offerha").val("false"); + $("#midmenu_add_link").unbind("click").bind("click", function(event) { + $dialogAddService.find("#add_service_name").val(""); + $dialogAddService.find("#add_service_display").val(""); + $dialogAddService.find("#add_service_cpucore").val(""); + $dialogAddService.find("#add_service_cpu").val(""); + $dialogAddService.find("#add_service_memory").val(""); + $dialogAddService.find("#add_service_offerha").val("false"); - (g_hypervisorType == "kvm")? dialogAddService.find("#add_service_offerha_container").hide():dialogAddService.find("#add_service_offerha_container").show(); + (g_hypervisorType == "kvm")? $dialogAddService.find("#add_service_offerha_container").hide():$dialogAddService.find("#add_service_offerha_container").show(); - dialogAddService + $dialogAddService .dialog('option', 'buttons', { "Add": function() { var thisDialog = $(this); @@ -107,12 +127,17 @@ function afterLoadServiceOfferingJSP() { var useVirtualNetwork = (networkType=="Direct")? false:true; array1.push("&usevirtualnetwork="+useVirtualNetwork); - var tags = trim(thisDialog.find("#add_service_tags").val()); + var tags = thisDialog.find("#add_service_tags").val(); if(tags != null && tags.length > 0) array1.push("&tags="+todb(tags)); + if(thisDialog.find("#domain_dropdown_container").css("display") != "none") { + var domainId = thisDialog.find("#domain_dropdown").val(); + array1.push("&domainid="+domainId); + } + $.ajax({ - data: createURL("command=createServiceOffering"+array1.join("")+"&response=json"), + data: createURL("command=createServiceOffering"+array1.join("")), dataType: "json", success: function(json) { var item = json.createserviceofferingresponse.serviceoffering; @@ -133,7 +158,11 @@ function afterLoadServiceOfferingJSP() { } }).dialog("open"); return false; - }); + }); +} + +function afterLoadServiceOfferingJSP() { + initAddServiceOfferingDialog(); } function doEditServiceOffering($actionLink, $detailsTab, $midmenuItem1) {