diff --git a/ui/index.jsp b/ui/index.jsp
index a0ccc45fad8..0e069badedc 100755
--- a/ui/index.jsp
+++ b/ui/index.jsp
@@ -49,6 +49,8 @@ long milliseconds = new Date().getTime();
+
+
diff --git a/ui/jsp/tab_configuration.jsp b/ui/jsp/tab_configuration.jsp
index 4c6a71e764e..9026308d54b 100755
--- a/ui/jsp/tab_configuration.jsp
+++ b/ui/jsp/tab_configuration.jsp
@@ -2,7 +2,9 @@
<%
long milliseconds = new Date().getTime();
%>
+
@@ -443,15 +445,19 @@ long milliseconds = new Date().getTime();
-
-
+
+
+
+
+
-
+
-
-
+
+
diff --git a/ui/scripts/cloud.core.configuration.js b/ui/scripts/cloud.core.configuration.js
index 2f927ae74eb..2d375f292aa 100644
--- a/ui/scripts/cloud.core.configuration.js
+++ b/ui/scripts/cloud.core.configuration.js
@@ -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;
});
diff --git a/ui/scripts/cloud.core.js b/ui/scripts/cloud.core.js
index cb536bc3aa7..d7ed49c933c 100644
--- a/ui/scripts/cloud.core.js
+++ b/ui/scripts/cloud.core.js
@@ -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);