mirror of https://github.com/apache/cloudstack.git
bug 8636: (2.1.x UI) Zones page - Add VLAN IP Range dialog - change domain dropdown to autoComplete input text field.
This commit is contained in:
parent
ab91056e26
commit
bb2527f83b
|
|
@ -49,6 +49,8 @@ long milliseconds = new Date().getTime();
|
|||
<script type="text/javascript" src="scripts/cloud.core.js?t=<%=milliseconds%>"></script>
|
||||
<script type="text/javascript" src="scripts/cloud.core.init.js?t=<%=milliseconds%>"></script>
|
||||
|
||||
<script type="text/javascript" src="scripts/cloud.core.configuration.js?t=<%=milliseconds%>"></script>
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
<%
|
||||
long milliseconds = new Date().getTime();
|
||||
%>
|
||||
<!--
|
||||
<script type="text/javascript" src="scripts/cloud.core.configuration.js?t=<%=milliseconds%>"></script>
|
||||
-->
|
||||
|
||||
<!-- Content Panel -->
|
||||
<!-- Submenu -->
|
||||
|
|
@ -443,15 +445,19 @@ long milliseconds = new Date().getTime();
|
|||
<select class="select" name="add_publicip_vlan_pod" id="add_publicip_vlan_pod">
|
||||
</select>
|
||||
</li>
|
||||
<li style="display:none" id="add_publicip_vlan_domain_container">
|
||||
<label for="user_name">Domain:</label>
|
||||
<li style="display:none" id="domain_container">
|
||||
<label>Domain:</label>
|
||||
<input class="text" type="text" id="domain" />
|
||||
<div id="domain_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
|
||||
<!--
|
||||
<select class="select" name="add_publicip_vlan_domain" id="add_publicip_vlan_domain">
|
||||
</select>
|
||||
-->
|
||||
</li>
|
||||
<li style="display:none" id="add_publicip_vlan_account_container">
|
||||
<li style="display:none" id="account_container">
|
||||
<label for="user_name">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" style="display:none;" ></div>
|
||||
<input class="text" type="text" id="account"/>
|
||||
<div id="account_errormsg" class="dialog_formcontent_errormsg" style="display:none;" ></div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="user_name">Gateway:</label>
|
||||
|
|
|
|||
|
|
@ -613,8 +613,8 @@ function showConfigurationTab() {
|
|||
var id = $(this).data("id");
|
||||
|
||||
// reset dialog
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_vlan_container, #add_publicip_vlan_domain_container, #add_publicip_vlan_account_container").hide();
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_tagged, #add_publicip_vlan_vlan, #add_publicip_vlan_gateway, #add_publicip_vlan_netmask, #add_publicip_vlan_startip, #add_publicip_vlan_endip, #add_publicip_vlan_account").val("");
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_vlan_container, #domain_container, #account_container").hide();
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_tagged, #add_publicip_vlan_vlan, #add_publicip_vlan_gateway, #add_publicip_vlan_netmask, #add_publicip_vlan_startip, #add_publicip_vlan_endip, #account").val("");
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_zone_name").text($(this).data("name"));
|
||||
|
||||
if (getNetworkType() == 'vnet') {
|
||||
|
|
@ -640,6 +640,8 @@ function showConfigurationTab() {
|
|||
}
|
||||
});
|
||||
|
||||
applyAutoCompleteToDomainField(dialogAddVlanForZone.find("#domain"));
|
||||
/*
|
||||
var domainSelect = dialogAddVlanForZone.find("#add_publicip_vlan_domain").empty();
|
||||
$.ajax({
|
||||
data: "command=listDomains&response=json",
|
||||
|
|
@ -654,6 +656,7 @@ function showConfigurationTab() {
|
|||
}
|
||||
}
|
||||
});
|
||||
*/
|
||||
}
|
||||
|
||||
dialogAddVlanForZone
|
||||
|
|
@ -669,7 +672,7 @@ function showConfigurationTab() {
|
|||
isTagged = thisDialog.find("#add_publicip_vlan_tagged").val() == "tagged";
|
||||
}
|
||||
|
||||
isValid &= validateString("Account", thisDialog.find("#add_publicip_vlan_account"), thisDialog.find("#add_publicip_vlan_account_errormsg"), true); //optional
|
||||
isValid &= validateString("Account", thisDialog.find("#account"), thisDialog.find("#account_errormsg"), true); //optional
|
||||
|
||||
if (isTagged) {
|
||||
isValid &= validateNumber("VLAN", thisDialog.find("#add_publicip_vlan_vlan"), thisDialog.find("#add_publicip_vlan_vlan_errormsg"), 2, 4095);
|
||||
|
|
@ -678,26 +681,66 @@ function showConfigurationTab() {
|
|||
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 (!isValid) return;
|
||||
|
||||
var domainId;
|
||||
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();
|
||||
if(domainName != null && domainName.length > 0) {
|
||||
if(autoCompleteDomains != null && autoCompleteDomains.length > 0) {
|
||||
for(var i=0; i < autoCompleteDomains.length; i++) {
|
||||
if(fromdb(autoCompleteDomains[i].name).toLowerCase() == domainName.toLowerCase()) {
|
||||
domainId = autoCompleteDomains[i].id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(domainId == null) {
|
||||
showError(false, thisDialog.find("#domain"), thisDialog.find("#domain_errormsg"), "Not Found");
|
||||
isValid &= false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isValid)
|
||||
return;
|
||||
|
||||
var array1 = [];
|
||||
array1.push("&zoneId="+id);
|
||||
|
||||
var vlan = trim(thisDialog.find("#add_publicip_vlan_vlan").val());
|
||||
if (isTagged) {
|
||||
vlan = "&vlan="+vlan;
|
||||
} else {
|
||||
vlan = "&vlan=untagged";
|
||||
}
|
||||
|
||||
var scopeParams = "";
|
||||
if(dialogAddVlanForZone.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());
|
||||
|
||||
var type = "true";
|
||||
if (getNetworkType() == "vlan") type = trim(thisDialog.find("#add_publicip_vlan_type").val());
|
||||
array1.push(vlan);
|
||||
|
||||
var type = "true";
|
||||
if (getNetworkType() == "vlan")
|
||||
type = trim(thisDialog.find("#add_publicip_vlan_type").val());
|
||||
array1.push("&forVirtualNetwork="+type);
|
||||
|
||||
var gateway = trim(thisDialog.find("#add_publicip_vlan_gateway").val());
|
||||
var netmask = trim(thisDialog.find("#add_publicip_vlan_netmask").val());
|
||||
var startip = trim(thisDialog.find("#add_publicip_vlan_startip").val());
|
||||
var endip = trim(thisDialog.find("#add_publicip_vlan_endip").val());
|
||||
array1.push("&gateway="+encodeURIComponent(gateway));
|
||||
|
||||
var netmask = trim(thisDialog.find("#add_publicip_vlan_netmask").val());
|
||||
array1.push("&netmask="+encodeURIComponent(netmask));
|
||||
|
||||
var startip = trim(thisDialog.find("#add_publicip_vlan_startip").val());
|
||||
array1.push("&startip="+encodeURIComponent(startip));
|
||||
|
||||
var endip = trim(thisDialog.find("#add_publicip_vlan_endip").val());
|
||||
array1.push("&endip="+encodeURIComponent(endip));
|
||||
|
||||
if(thisDialog.find("#domain_container").css("display") != "none") {
|
||||
array1.push("&domainid="+domainId);
|
||||
}
|
||||
|
||||
if(thisDialog.find("#account_container").css("display") != "none") {
|
||||
array1.push("&account="+trim(thisDialog.find("#account").val()));
|
||||
}
|
||||
|
||||
thisDialog.dialog("close");
|
||||
|
||||
var template = $("#vlan_ip_range_template").clone(true);
|
||||
|
|
@ -712,7 +755,7 @@ function showConfigurationTab() {
|
|||
template.fadeIn("slow");
|
||||
|
||||
$.ajax({
|
||||
data: "command=createVlanIpRange&forVirtualNetwork="+type+"&zoneId="+id+vlan+scopeParams+"&gateway="+encodeURIComponent(gateway)+"&netmask="+encodeURIComponent(netmask)+"&startip="+encodeURIComponent(startip)+"&endip="+encodeURIComponent(endip)+"&response=json",
|
||||
data: "command=createVlanIpRange"+array1.join("")+"&response=json",
|
||||
dataType: "json",
|
||||
success: function(json) {
|
||||
var vlan = json.createvlaniprangeresponse;
|
||||
|
|
@ -1024,7 +1067,7 @@ function showConfigurationTab() {
|
|||
|
||||
if (getNetworkType() != "vnet") {
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_tagged").change(function(event) {
|
||||
// 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", "#account_container".
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_scope").change();
|
||||
|
||||
if (dialogAddVlanForZone.find("#add_publicip_vlan_type").val() == "false") { //direct VLAN (only tagged option)
|
||||
|
|
@ -1050,11 +1093,11 @@ function showConfigurationTab() {
|
|||
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_scope").change(function(event) {
|
||||
if($(this).val() == "zone-wide") {
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_domain_container").hide();
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_account_container").hide();
|
||||
dialogAddVlanForZone.find("#domain_container").hide();
|
||||
dialogAddVlanForZone.find("#account_container").hide();
|
||||
} else { // account-specific
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_domain_container").show();
|
||||
dialogAddVlanForZone.find("#add_publicip_vlan_account_container").show();
|
||||
dialogAddVlanForZone.find("#domain_container").show();
|
||||
dialogAddVlanForZone.find("#account_container").show();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -67,6 +67,62 @@ function initializeTestTool() {
|
|||
});
|
||||
}
|
||||
|
||||
//autoComplete
|
||||
var autoCompleteDomains = [];
|
||||
function applyAutoCompleteToDomainField($field) {
|
||||
$field.autocomplete({
|
||||
source: function(request, response) {
|
||||
$.ajax({
|
||||
data: "command=listDomains&keyword=" + request.term +"&response=json",
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success: function(json) {
|
||||
autoCompleteDomains = json.listdomainsresponse.domain;
|
||||
var array1 = [];
|
||||
if(autoCompleteDomains != null && autoCompleteDomains.length > 0) {
|
||||
for(var i=0; i < autoCompleteDomains.length; i++)
|
||||
array1.push(fromdb(autoCompleteDomains[i].name));
|
||||
}
|
||||
response(array1);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function applyAutoCompleteToDomainChildrenField($field, parentDomainId) {
|
||||
$field.autocomplete({
|
||||
source: function(request, response) {
|
||||
var array1 = [];
|
||||
$.ajax({
|
||||
data: "command=listDomainChildren&id="+parentDomainId+"&isrecursive=true&keyword=" + request.term +"&response=json",
|
||||
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: "command=listDomains&id="+parentDomainId+"&keyword=" + request.term +"&response=json",
|
||||
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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Role Functions
|
||||
function isAdmin() {
|
||||
return (g_role == 1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue