diff --git a/ui/scripts/cloud.core.pod.js b/ui/scripts/cloud.core.pod.js index 4d43df3291d..72698e01bbd 100644 --- a/ui/scripts/cloud.core.pod.js +++ b/ui/scripts/cloud.core.pod.js @@ -631,7 +631,7 @@ function bindAddPrimaryStorageButton($leftmenuItem1) { } var $clusterSelect = $("#dialog_add_pool").find("#pool_cluster").empty(); - var mapClusters = {}; + $.ajax({ data: createURL("command=listClusters&podid=" + podId), async: false, @@ -639,9 +639,9 @@ function bindAddPrimaryStorageButton($leftmenuItem1) { success: function(json) { var items = json.listclustersresponse.cluster; if(items != null && items.length > 0) { - mapClusters = {}; + clustersUnderPod = {}; for(var i=0; i" + fromdb(items[i].name) + ""); else @@ -650,36 +650,9 @@ function bindAddPrimaryStorageButton($leftmenuItem1) { } } }); - - $dialogAddPool.find("#pool_cluster").unbind("change").bind("change", function() { - var curOption = $(this).val(); - if(!curOption) - return false; - - var $protocolSelector = $dialogAddPool.find("#add_pool_protocol"); - var objCluster = mapClusters['cluster_'+curOption]; - - if(objCluster == null) - return; - - if(objCluster.hypervisortype == "KVM") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - } else if(objCluster.hypervisortype == "XenServer") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - $protocolSelector.append(''); - } else if(objCluster.hypervisortype == "VMware") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - } - - $protocolSelector.change(); - }); - + + bindAddPrimaryStorageDialog($dialogAddPool); + $button.unbind("click").bind("click", function(event) { $dialogAddPool.find("#info_container").hide(); $dialogAddPool.find("#pool_cluster").change(); diff --git a/ui/scripts/cloud.core.resource.js b/ui/scripts/cloud.core.resource.js index 10ace466606..23a45b67854 100644 --- a/ui/scripts/cloud.core.resource.js +++ b/ui/scripts/cloud.core.resource.js @@ -449,20 +449,7 @@ function initAddPodShortcut() { var $dialogAddPod = $("#dialog_add_pod_in_resource_page"); var $zoneDropdown = $dialogAddPod.find("#zone_dropdown"); - /* - $.ajax({ - data: createURL("command=listZones&available=true"), - dataType: "json", - async: false, - success: function(json) { - var items = json.listzonesresponse.zone; - if (items != null && items.length > 0) { - for(var i=0; i" + fromdb(items[i].name) + ""); - } - } - }); - */ + $zoneDropdown.bind("change", function(event) { var zoneId = $(this).val(); if(zoneId == null) @@ -1628,7 +1615,38 @@ function initUpdateConsoleCertButton($midMenuAddLink2) { return false; }); } - + +var clustersUnderPod = {}; +function bindAddPrimaryStorageDialog($dialog) { + $dialog.find("#pool_cluster").unbind("change").change(function() { + var curOption = $(this).val(); + if(!curOption) + return false; + + var $protocolSelector = $dialog.find("#add_pool_protocol"); + var objCluster = clustersUnderPod['cluster_'+curOption]; + + if(objCluster == null) + return; + + if(objCluster.hypervisortype == "KVM") { + $protocolSelector.empty(); + $protocolSelector.append(''); + $protocolSelector.append(''); + } else if(objCluster.hypervisortype == "XenServer") { + $protocolSelector.empty(); + $protocolSelector.append(''); + $protocolSelector.append(''); + $protocolSelector.append(''); + } else if(objCluster.hypervisortype == "VMware") { + $protocolSelector.empty(); + $protocolSelector.append(''); + $protocolSelector.append(''); + } + + $protocolSelector.change(); + }); +} function initAddPrimaryStorageShortcut($midmenuAddLink2, currentPageInRightPanel) { var $dialogAddPool = $("#dialog_add_pool_in_resource_page"); @@ -1656,7 +1674,6 @@ function initAddPrimaryStorageShortcut($midmenuAddLink2, currentPageInRightPanel }); }); - var mapClusters = {}; $dialogAddPool.find("#pod_dropdown").bind("change", function(event) { var podId = $(this).val(); if(podId == null || podId.length == 0) @@ -1667,11 +1684,11 @@ function initAddPrimaryStorageShortcut($midmenuAddLink2, currentPageInRightPanel dataType: "json", async: false, success: function(json) { - mapClusters = {}; + clustersUnderPod = {}; var items = json.listclustersresponse.cluster; if(items != null && items.length > 0) { for(var i=0; i" + fromdb(items[i].name) + ""); } @@ -1683,35 +1700,8 @@ function initAddPrimaryStorageShortcut($midmenuAddLink2, currentPageInRightPanel }); }); - $dialogAddPool.find("#pool_cluster").change(function() { - var curOption = $(this).val(); - if(!curOption) - return false; - - var $protocolSelector = $("#add_pool_protocol", $dialogAddPool); - var objCluster = mapClusters['cluster_'+curOption]; - - if(objCluster == null) - return; - - if(objCluster.hypervisortype == "KVM") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - } else if(objCluster.hypervisortype == "XenServer") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - $protocolSelector.append(''); - } else if(objCluster.hypervisortype == "VMware") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - } - - $protocolSelector.change(); - }); - + bindAddPrimaryStorageDialog($dialogAddPool); + $("#add_primarystorage_shortcut").unbind("click").bind("click", function(event) { $dialogAddPool.find("#zone_dropdown").change(); //refresh cluster dropdown (do it here to avoid race condition) $dialogAddPool.find("#info_container").hide(); diff --git a/ui/scripts/cloud.core.zone.js b/ui/scripts/cloud.core.zone.js index e53be775a4f..d2cc6cfe0f4 100644 --- a/ui/scripts/cloud.core.zone.js +++ b/ui/scripts/cloud.core.zone.js @@ -825,8 +825,6 @@ function bindAddPrimaryStorageButtonOnZonePage($button, zoneId, zoneName) { } } }); - - var mapClusters = {}; $podSelect.unbind("change").bind("change", function(event) { var podId = $(this).val(); @@ -840,9 +838,9 @@ function bindAddPrimaryStorageButtonOnZonePage($button, zoneId, zoneName) { success: function(json) { var items = json.listclustersresponse.cluster; if(items != null && items.length > 0) { - mapClusters = {}; + clustersUnderPod = {}; for(var i=0; i" + fromdb(items[i].name) + ""); } @@ -855,35 +853,8 @@ function bindAddPrimaryStorageButtonOnZonePage($button, zoneId, zoneName) { }); }); - $("#pool_cluster", $dialogAddPool).unbind("change").bind("change", function(event) { - var curOption = $(this).val(); - if(!curOption) - return false; - - var $protocolSelector = $("#add_pool_protocol", $dialogAddPool); - var objCluster = mapClusters['cluster_'+curOption]; - - if(objCluster == null) - return; - - if(objCluster.hypervisortype == "KVM") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - } else if(objCluster.hypervisortype == "XenServer") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - $protocolSelector.append(''); - } else if(objCluster.hypervisortype == "VMware") { - $protocolSelector.empty(); - $protocolSelector.append(''); - $protocolSelector.append(''); - } - - $protocolSelector.change(); - }); - + bindAddPrimaryStorageDialog($dialogAddPool); + $button.unbind("click").bind("click", function(event) { $dialogAddPool.find("#info_container").hide(); $podSelect.change();