Create Shared function bindAddPrimaryStorageDialog() to bind event handler to cluster dropdown in Add Primary Storage dialog.

This commit is contained in:
Jessica Wang 2011-02-09 13:30:34 -08:00
parent 7a9000328a
commit cec16baf8e
3 changed files with 47 additions and 113 deletions

View File

@ -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<items.length; i++) {
mapClusters["cluster_"+items[i].id] = items[i];
clustersUnderPod["cluster_"+items[i].id] = items[i];
if(sourceClusterId != null && items[i].id == sourceClusterId)
$clusterSelect.append("<option value='" + items[i].id + "' selected>" + fromdb(items[i].name) + "</option>");
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('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="SharedMountPoint">SharedMountPoint</option>');
} else if(objCluster.hypervisortype == "XenServer") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="PreSetup">PreSetup</option>');
$protocolSelector.append('<option value="iscsi">iSCSI</option>');
} else if(objCluster.hypervisortype == "VMware") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="vmfs">VMFS datastore</option>');
}
$protocolSelector.change();
});
bindAddPrimaryStorageDialog($dialogAddPool);
$button.unbind("click").bind("click", function(event) {
$dialogAddPool.find("#info_container").hide();
$dialogAddPool.find("#pool_cluster").change();

View File

@ -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<items.length; i++)
$zoneDropdown.append("<option value='" + items[i].id + "'>" + fromdb(items[i].name) + "</option>");
}
}
});
*/
$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('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="SharedMountPoint">SharedMountPoint</option>');
} else if(objCluster.hypervisortype == "XenServer") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="PreSetup">PreSetup</option>');
$protocolSelector.append('<option value="iscsi">iSCSI</option>');
} else if(objCluster.hypervisortype == "VMware") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="vmfs">VMFS datastore</option>');
}
$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<items.length; i++) {
mapClusters["cluster_"+items[i].id] = items[i];
clustersUnderPod["cluster_"+items[i].id] = items[i];
$clusterSelect.append("<option value='" + items[i].id + "'>" + fromdb(items[i].name) + "</option>");
}
@ -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('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="SharedMountPoint">SharedMountPoint</option>');
} else if(objCluster.hypervisortype == "XenServer") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="PreSetup">PreSetup</option>');
$protocolSelector.append('<option value="iscsi">iSCSI</option>');
} else if(objCluster.hypervisortype == "VMware") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="vmfs">VMFS datastore</option>');
}
$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();

View File

@ -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<items.length; i++) {
mapClusters["cluster_"+items[i].id] = items[i];
clustersUnderPod["cluster_"+items[i].id] = items[i];
$clusterSelect.append("<option value='" + items[i].id + "'>" + fromdb(items[i].name) + "</option>");
}
@ -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('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="SharedMountPoint">SharedMountPoint</option>');
} else if(objCluster.hypervisortype == "XenServer") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="PreSetup">PreSetup</option>');
$protocolSelector.append('<option value="iscsi">iSCSI</option>');
} else if(objCluster.hypervisortype == "VMware") {
$protocolSelector.empty();
$protocolSelector.append('<option value="nfs">NFS</option>');
$protocolSelector.append('<option value="vmfs">VMFS datastore</option>');
}
$protocolSelector.change();
});
bindAddPrimaryStorageDialog($dialogAddPool);
$button.unbind("click").bind("click", function(event) {
$dialogAddPool.find("#info_container").hide();
$podSelect.change();