diff --git a/ui/scripts/cloud.core.zone.js b/ui/scripts/cloud.core.zone.js
index c3eb95c3130..a1c01e87c74 100644
--- a/ui/scripts/cloud.core.zone.js
+++ b/ui/scripts/cloud.core.zone.js
@@ -317,27 +317,43 @@ function initAddVLANButton($addButton) {
});
var domainSelect = dialogAddVlanForZone.find("#add_publicip_vlan_domain").empty();
- domainSelect.append("");
-
- function populateDomainDropdown(id) {
- $.ajax({
- data: createURL("command=listDomainChildren&id="+id+"&pageSize=-1"),
- dataType: "json",
- async: false,
- success: function(json) {
- var domains = json.listdomainchildrenresponse.domain;
- if (domains != null && domains.length > 0) {
- for (var i = 0; i < domains.length; i++) {
- domainSelect.append("");
- if(domains[i].haschild == true)
- populateDomainDropdown(domains[i].id);
- }
- }
- }
- });
- }
-
- populateDomainDropdown(zoneObj.domainid);
+ if(zoneObj.domainid != null) { //list only domains under zoneObj.domainid
+ domainSelect.append("");
+
+ function populateDomainDropdown(id) {
+ $.ajax({
+ data: createURL("command=listDomainChildren&id="+id+"&pageSize=-1"),
+ dataType: "json",
+ async: false,
+ success: function(json) {
+ var domains = json.listdomainchildrenresponse.domain;
+ if (domains != null && domains.length > 0) {
+ for (var i = 0; i < domains.length; i++) {
+ domainSelect.append("");
+ if(domains[i].haschild == true)
+ populateDomainDropdown(domains[i].id);
+ }
+ }
+ }
+ });
+ }
+
+ populateDomainDropdown(zoneObj.domainid);
+ }
+ else { //list all domains
+ $.ajax({
+ data: createURL("command=listDomains"),
+ dataType: "json",
+ success: function(json) {
+ var items = json.listdomainsresponse.domain;
+ if(items != null && items.length > 0) {
+ for(var i=0; i" + fromdb(items[i].name) + "");
+ }
+ }
+ }
+ });
+ }
}
dialogAddVlanForZone