bug 8636: Network page - Add Network dialog, Add IP Range dialog - change domain dropdown to autoComplete input textbox.

This commit is contained in:
Jessica Wang 2011-03-01 10:06:13 -08:00
parent 858578993f
commit c347827193
3 changed files with 145 additions and 42 deletions

View File

@ -871,7 +871,7 @@ dictionary = {
</select>
</li>
<li style="display: none" id="add_publicip_vlan_vlan_container">
<label for="user_name">
<label>
<fmt:message key="label.vlan.id"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_vlan" id="add_publicip_vlan_vlan" />
<div id="add_publicip_vlan_vlan_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
@ -887,14 +887,19 @@ dictionary = {
-->
</select>
</li>
<li style="display: none" id="add_publicip_vlan_domain_container">
<label for="user_name">
<li style="display: none" id="domain_container">
<label>
<fmt:message key="label.domain"/>:</label>
<select class="select" name="add_publicip_vlan_domain" id="add_publicip_vlan_domain">
<input class="text" type="text" id="domain" />
<div id="domain_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
<!--
<select class="select" id="add_publicip_vlan_domain">
</select>
-->
</li>
<li style="display: none" id="add_publicip_vlan_account_container">
<label for="user_name">
<label>
<fmt:message key="label.account"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_account" id="add_publicip_vlan_account" />
<div id="add_publicip_vlan_account_errormsg" class="dialog_formcontent_errormsg"
@ -902,7 +907,7 @@ dictionary = {
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.gateway"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_gateway" id="add_publicip_vlan_gateway" />
<div id="add_publicip_vlan_gateway_errormsg" class="dialog_formcontent_errormsg"
@ -910,7 +915,7 @@ dictionary = {
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.netmask"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_netmask" id="add_publicip_vlan_netmask" />
<div id="add_publicip_vlan_netmask_errormsg" class="dialog_formcontent_errormsg"
@ -918,7 +923,7 @@ dictionary = {
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.ip.range"/>:</label>
<input class="text" style="width: 67px" type="text" name="add_publicip_vlan_startip"
id="add_publicip_vlan_startip" /><span>-</span>
@ -1135,7 +1140,7 @@ dictionary = {
<form action="#" method="post" id="form_acquire">
<ol>
<li style="display: none" id="vlan_id_container">
<label for="user_name">
<label>
<fmt:message key="label.vlan.id"/>:</label>
<input class="text" type="text" id="vlan_id" />
<div id="vlan_id_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
@ -1158,7 +1163,7 @@ dictionary = {
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.ip.range"/>:</label>
<input class="text" style="width: 67px" type="text" name="add_publicip_vlan_startip"
id="add_publicip_vlan_startip" /><span>-</span>
@ -1200,21 +1205,21 @@ dictionary = {
<form action="#" method="post" id="form_acquire">
<ol>
<li>
<label for="user_name">
<label>
<fmt:message key="label.network.name"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_network_name" id="add_publicip_vlan_network_name" />
<div id="add_publicip_vlan_network_name_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.network.desc"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_network_desc" id="add_publicip_vlan_network_desc" />
<div id="add_publicip_vlan_network_desc_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.is.default"/>?</label>
<select class="select" name="add_publicip_vlan_default" id="add_publicip_vlan_default">
<option value="false">No</option>
@ -1229,7 +1234,7 @@ dictionary = {
</select>
</li>
<li id="add_publicip_vlan_vlan_container">
<label for="user_name">
<label>
<fmt:message key="label.vlan.id"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_vlan" id="add_publicip_vlan_vlan" />
<div id="add_publicip_vlan_vlan_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
@ -1245,14 +1250,19 @@ dictionary = {
-->
</select>
</li>
<li style="display: none" id="add_publicip_vlan_domain_container">
<label for="user_name">
<li style="display: none" id="domain_container">
<label>
<fmt:message key="label.domain"/>:</label>
<select class="select" name="add_publicip_vlan_domain" id="add_publicip_vlan_domain">
<input class="text" type="text" id="domain" />
<div id="domain_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
<!--
<select class="select" id="add_publicip_vlan_domain">
</select>
-->
</li>
<li style="display: none" id="add_publicip_vlan_account_container">
<label for="user_name">
<label>
<fmt:message key="label.account"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_account" id="add_publicip_vlan_account" />
<div id="add_publicip_vlan_account_errormsg" class="dialog_formcontent_errormsg"
@ -1260,7 +1270,7 @@ dictionary = {
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.gateway"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_gateway" id="add_publicip_vlan_gateway" />
<div id="add_publicip_vlan_gateway_errormsg" class="dialog_formcontent_errormsg"
@ -1268,7 +1278,7 @@ dictionary = {
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.netmask"/>:</label>
<input class="text" type="text" name="add_publicip_vlan_netmask" id="add_publicip_vlan_netmask" />
<div id="add_publicip_vlan_netmask_errormsg" class="dialog_formcontent_errormsg"
@ -1276,7 +1286,7 @@ dictionary = {
</div>
</li>
<li>
<label for="user_name">
<label>
<fmt:message key="label.ip.range"/>:</label>
<input class="text" style="width: 67px" type="text" name="add_publicip_vlan_startip"
id="add_publicip_vlan_startip" /><span>-</span>

View File

@ -1072,6 +1072,39 @@ function applyAutoCompleteToDomainField($field) {
}
});
}
function applyAutoCompleteToDomainChildrenField($field, parentDomainId) {
$field.autocomplete({
source: function(request, response) {
var array1 = [];
$.ajax({
data: createURL("command=listDomainChildren&id="+parentDomainId+"&isrecursive=true&keyword=" + request.term),
dataType: "json",
async: false,
success: function(json) {
autoCompleteDomains = json.listdomainchildrenresponse.domain;
if(autoCompleteDomains != null && autoCompleteDomains.length > 0) {
for(var i=0; i < autoCompleteDomains.length; i++)
array1.push(fromdb(autoCompleteDomains[i].name));
}
}
});
$.ajax({
data: createURL("command=listDomains&id="+parentDomainId+"&keyword=" + request.term),
dataType: "json",
async: false,
success: function(json) {
var items = json.listdomainsresponse.domain;
if(items != null && items.length > 0) {
autoCompleteDomains.push(items[0]);
array1.push(fromdb(items[0].name));
}
}
});
response(array1);
}
});
}
//var lastSearchType;
var currentCommandString;

View File

@ -524,7 +524,7 @@ function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) {
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_scope").empty().append('<option value="zone-wide">zone-wide</option>');
}
// default value of "#add_publicip_vlan_scope" is "zone-wide". Calling change() will hide "#add_publicip_vlan_domain_container", "#add_publicip_vlan_account_container".
// default value of "#add_publicip_vlan_scope" is "zone-wide". Calling change() will hide "#domain_container", "#add_publicip_vlan_account_container".
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_scope").change();
return false;
@ -533,11 +533,11 @@ function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) {
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_scope").change(function(event) {
if($(this).val() == "zone-wide") {
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_domain_container").hide();
$dialogAddIpRangeToPublicNetwork.find("#domain_container").hide();
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_account_container").hide();
}
else if($(this).val() == "account-specific") {
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_domain_container").show();
$dialogAddIpRangeToPublicNetwork.find("#domain_container").show();
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_account_container").show();
}
return false;
@ -549,12 +549,12 @@ function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) {
$("#public_network_page").find("#tab_ipallocation").click();
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_tagged").change();
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_scope").change(); // default value of "#add_publicip_vlan_scope" is "zone-wide". Calling change() will hide "#add_publicip_vlan_domain_container", "#add_publicip_vlan_account_container".
var domainSelect = $dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_domain").empty();
$dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_scope").change(); // default value of "#add_publicip_vlan_scope" is "zone-wide". Calling change() will hide "#domain_container", "#add_publicip_vlan_account_container".
if(zoneObj.domainid != null) { //list only domains under zoneObj.domainid
applyAutoCompleteToDomainChildrenField($dialogAddIpRangeToPublicNetwork.find("#domain"), zoneObj.domainid);
/*
domainSelect.append("<option value='" + zoneObj.domainid + "'>" + fromdb(zoneObj.domain) + "</option>");
function populateDomainDropdown(id) {
$.ajax({
data: createURL("command=listDomainChildren&id="+id),
@ -571,11 +571,13 @@ function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) {
}
}
});
}
}
populateDomainDropdown(zoneObj.domainid);
*/
}
else { //list all domains
applyAutoCompleteToDomainField($dialogAddIpRangeToPublicNetwork.find("#domain"));
/*
$.ajax({
data: createURL("command=listDomains"),
dataType: "json",
@ -588,6 +590,7 @@ function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) {
}
}
});
*/
}
$dialogAddIpRangeToPublicNetwork
@ -610,6 +613,33 @@ function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) {
isValid &= validateIp("Netmask", $thisDialog.find("#add_publicip_vlan_netmask"), $thisDialog.find("#add_publicip_vlan_netmask_errormsg"), false); //required
isValid &= validateIp("Start IP Range", $thisDialog.find("#add_publicip_vlan_startip"), $thisDialog.find("#add_publicip_vlan_startip_errormsg"), false); //required
isValid &= validateIp("End IP Range", $thisDialog.find("#add_publicip_vlan_endip"), $thisDialog.find("#add_publicip_vlan_endip_errormsg"), true); //optional
if($thisDialog.find("#domain_container").css("display") != "none") {
isValid &= validateString("Domain", $thisDialog.find("#domain"), $thisDialog.find("#domain_errormsg"), false); //required
var domainName = $thisDialog.find("#domain").val();
var domainId;
if(domainName != null && domainName.length > 0) {
var items;
if(zoneObj.domainid != null)
items = autoCompleteDomains;
else
items = autoCompleteDomains;
if(items != null && items.length > 0) {
for(var i=0; i < items.length; i++) {
if(fromdb(items[i].name).toLowerCase() == domainName.toLowerCase()) {
domainId = items[i].id;
break;
}
}
}
if(domainId == null) {
showError(false, $thisDialog.find("#domain"), $thisDialog.find("#domain_errormsg"), g_dictionary["label.not.found"]);
isValid &= false;
}
}
}
if (!isValid)
return;
@ -625,8 +655,8 @@ function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) {
}
var scopeParams = "";
if($dialogAddIpRangeToPublicNetwork.find("#add_publicip_vlan_scope").val() == "account-specific") {
scopeParams = "&domainId="+trim($thisDialog.find("#add_publicip_vlan_domain").val())+"&account="+trim($thisDialog.find("#add_publicip_vlan_account").val());
if($thisDialog.find("#domain_container").css("display") != "none") {
scopeParams = "&domainId="+domainId+"&account="+trim($thisDialog.find("#add_publicip_vlan_account").val());
} else if (isDirect) {
scopeParams = "&isshared=true";
}
@ -1198,11 +1228,11 @@ function bindAddNetworkButton($button) {
$dialogAddNetworkForZone.find("#add_publicip_vlan_scope").change(function(event) {
if($(this).val() == "zone-wide") {
$dialogAddNetworkForZone.find("#add_publicip_vlan_domain_container").hide();
$dialogAddNetworkForZone.find("#domain_container").hide();
$dialogAddNetworkForZone.find("#add_publicip_vlan_account_container").hide();
}
else if($(this).val() == "account-specific") {
$dialogAddNetworkForZone.find("#add_publicip_vlan_domain_container").show();
$dialogAddNetworkForZone.find("#domain_container").show();
$dialogAddNetworkForZone.find("#add_publicip_vlan_account_container").show();
}
return false;
@ -1217,11 +1247,11 @@ function bindAddNetworkButton($button) {
if (zoneObj.networktype == 'Basic') {
}
else {
var domainSelect = $dialogAddNetworkForZone.find("#add_publicip_vlan_domain").empty();
else {
if(zoneObj.domainid != null) { //list only domains under zoneObj.domainid
applyAutoCompleteToDomainChildrenField($dialogAddNetworkForZone.find("#domain"), zoneObj.domainid);
/*
domainSelect.append("<option value='" + zoneObj.domainid + "'>" + fromdb(zoneObj.domain) + "</option>");
function populateDomainDropdown(id) {
$.ajax({
data: createURL("command=listDomainChildren&id="+id),
@ -1239,11 +1269,13 @@ function bindAddNetworkButton($button) {
}
});
}
populateDomainDropdown(zoneObj.domainid);
*/
}
else { //list all domains
$.ajax({
else { //list all domains
applyAutoCompleteToDomainField($dialogAddNetworkForZone.find("#domain"));
/*
$.ajax({
data: createURL("command=listDomains"),
dataType: "json",
success: function(json) {
@ -1255,6 +1287,7 @@ function bindAddNetworkButton($button) {
}
}
});
*/
}
}
@ -1277,6 +1310,33 @@ function bindAddNetworkButton($button) {
isValid &= validateIp("Netmask", $thisDialog.find("#add_publicip_vlan_netmask"), $thisDialog.find("#add_publicip_vlan_netmask_errormsg"));
isValid &= validateIp("Start IP Range", $thisDialog.find("#add_publicip_vlan_startip"), $thisDialog.find("#add_publicip_vlan_startip_errormsg")); //required
isValid &= validateIp("End IP Range", $thisDialog.find("#add_publicip_vlan_endip"), $thisDialog.find("#add_publicip_vlan_endip_errormsg"), true); //optional
if($thisDialog.find("#domain_container").css("display") != "none") {
isValid &= validateString("Domain", $thisDialog.find("#domain"), $thisDialog.find("#domain_errormsg"), false); //required
var domainName = $thisDialog.find("#domain").val();
var domainId;
if(domainName != null && domainName.length > 0) {
var items;
if(zoneObj.domainid != null)
items = autoCompleteDomains;
else
items = autoCompleteDomains;
if(items != null && items.length > 0) {
for(var i=0; i < items.length; i++) {
if(fromdb(items[i].name).toLowerCase() == domainName.toLowerCase()) {
domainId = items[i].id;
break;
}
}
}
if(domainId == null) {
showError(false, $thisDialog.find("#domain"), $thisDialog.find("#domain_errormsg"), g_dictionary["label.not.found"]);
isValid &= false;
}
}
}
if (!isValid)
return;
@ -1290,8 +1350,8 @@ function bindAddNetworkButton($button) {
}
var scopeParams = "";
if($dialogAddNetworkForZone.find("#add_publicip_vlan_scope").val()=="account-specific") {
scopeParams = "&domainId="+trim($thisDialog.find("#add_publicip_vlan_domain").val())+"&account="+trim($thisDialog.find("#add_publicip_vlan_account").val());
if($thisDialog.find("#domain_container").css("display") != "none") {
scopeParams = "&domainId="+domainId+"&account="+trim($thisDialog.find("#add_publicip_vlan_account").val());
} else if (isDirect) {
scopeParams = "&isshared=true";
}