diff --git a/ui/scripts/cloud.core.init.js b/ui/scripts/cloud.core.init.js index e0e208f1581..6440be35ac3 100644 --- a/ui/scripts/cloud.core.init.js +++ b/ui/scripts/cloud.core.init.js @@ -210,9 +210,9 @@ $(document).ready(function() { bindAndListMidMenuItems($("#leftmenu_snapshot"), "listSnapshots", snapshotGetSearchParams, "listsnapshotsresponse", "snapshot", "jsp/snapshot.jsp", afterLoadSnapshotJSP, snapshotToMidmenu, snapshotToRightPanel, getMidmenuId, false); if(g_supportELB == "guest") //ips are allocated on guest network - bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses&forvirtualnetwork=false", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); + bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses&forvirtualnetwork=false&forloadbalancing=true", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); else if(g_supportELB == "public") //ips are allocated on public network - bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses&forvirtualnetwork=true", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); + bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses&forvirtualnetwork=true&forloadbalancing=true", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); else bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); //remove "&forvirtualnetwork=true" for advanced zone whose security group is enabled diff --git a/ui/scripts/cloud.core.js b/ui/scripts/cloud.core.js index cabe37e1730..5438079a603 100644 --- a/ui/scripts/cloud.core.js +++ b/ui/scripts/cloud.core.js @@ -1301,7 +1301,7 @@ function listMidMenuItems(commandString, getSearchParamsFn, jsonResponse1, jsonR } function bindAndListMidMenuItems($leftmenu, commandString, getSearchParamsFn, jsonResponse1, jsonResponse2, rightPanelJSP, afterLoadRightPanelJSPFn, toMidmenuFn, toRightPanelFn, getMidmenuIdFn, isMultipleSelectionInMidMenu) { - $leftmenu.bind("click", function(event) { + $leftmenu.unbind().bind("click", function(event) { selectLeftSubMenu($(this)); listMidMenuItems(commandString, getSearchParamsFn, jsonResponse1, jsonResponse2, rightPanelJSP, afterLoadRightPanelJSPFn, toMidmenuFn, toRightPanelFn, getMidmenuIdFn, isMultipleSelectionInMidMenu, $(this).attr("id"), null); return false; diff --git a/ui/scripts/cloud.core.resource.js b/ui/scripts/cloud.core.resource.js index 8b36b593fd8..bfb081f76f2 100644 --- a/ui/scripts/cloud.core.resource.js +++ b/ui/scripts/cloud.core.resource.js @@ -1441,6 +1441,27 @@ function addZoneWizardSubmit($thisWizard) { listZonesUpdate(); g_directAttachSecurityGroupsEnabled = true; $("#leftmenu_security_group_container").show(); + + $.ajax({ + data: createURL("command=listCapabilities"), + dataType: "json", + async: false, + success: function(json) { + /* g_supportELB: guest — ips are allocated on guest network (so use 'forvirtualnetwork' = false) + * g_supportELB: public - ips are allocated on public network (so use 'forvirtualnetwork' = true) + * g_supportELB: false – no ELB support + */ + g_supportELB = json.listcapabilitiesresponse.capability.supportELB; + $.cookie('supportELB', g_supportELB, { expires: 1}); + + if(g_supportELB == "guest") //ips are allocated on guest network + bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses&forvirtualnetwork=false&forloadbalancing=true", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); + else if(g_supportELB == "public") //ips are allocated on public network + bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses&forvirtualnetwork=true&forloadbalancing=true", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); + else + bindAndListMidMenuItems($("#leftmenu_ip"), "listPublicIpAddresses", ipGetSearchParams, "listpublicipaddressesresponse", "publicipaddress", "jsp/ipaddress.jsp", afterLoadIpJSP, ipToMidmenu, ipToRightPanel, ipGetMidmenuId, false); //remove "&forvirtualnetwork=true" for advanced zone whose security group is enabled + } + }); }, error: function(XMLHttpResponse) { handleError(XMLHttpResponse, function() {