CLOUDSTACK-2989: UI > Networks menu > Add Isolated Network dialog > network offering dropdown > populate network offerings whose specifyvlan=false to normal user.

This commit is contained in:
Jessica Wang 2013-08-15 14:24:53 -07:00
parent aa223e5786
commit 34823eb85a

View File

@ -377,63 +377,76 @@
}, },
dependsOn: 'zoneId', dependsOn: 'zoneId',
docID: 'helpGuestNetworkNetworkOffering', docID: 'helpGuestNetworkNetworkOffering',
select: function(args) { select: function(args) {
$.ajax({ var data = {
url: createURL('listVPCs'), zoneid: args.zoneId,
data: { guestiptype: 'Isolated',
listAll: true supportedServices: 'SourceNat',
}, state: 'Enabled',
success: function(json) { };
var items = json.listvpcsresponse.vpc;
var baseUrl = 'listNetworkOfferings&zoneid=' + args.zoneId; if ('vpc' in args.context) { //from VPC section
var listUrl; $.extend(data, {
var data = { forVpc: true
guestiptype: 'Isolated', });
supportedServices: 'SourceNat', }
state: 'Enabled', else { //from guest network section
}; var vpcs;
$.ajax({
if (items != null && items.length > 0) url: createURL('listVPCs'),
listUrl = baseUrl; data: {
else listAll: true
listUrl = baseUrl + '&forVpc=false'; },
async: false,
if (args.context.vpc) { success: function(json) {
data.forVpc = true; vpcs = json.listvpcsresponse.vpc;
} }
});
if (vpcs == null || vpcs.length == 0) { //if there is no VPC in the system
$.extend(data, {
forVpc: false
});
}
}
$.ajax({ if(!isAdmin()) { //normal user is not aware of the VLANs in the system, so normal user is not allowed to create network with network offerings whose specifyvlan = true
url: createURL(listUrl), $.extend(data, {
data: data, specifyvlan: false
success: function(json) { });
networkOfferingObjs = json.listnetworkofferingsresponse.networkoffering; }
args.$select.change(function() {
var $vlan = args.$select.closest('form').find('[rel=vlan]'); $.ajax({
var networkOffering = $.grep( url: createURL('listNetworkOfferings'),
networkOfferingObjs, function(netoffer) { data: data,
return netoffer.id == args.$select.val(); success: function(json) {
} networkOfferingObjs = json.listnetworkofferingsresponse.networkoffering;
)[0]; args.$select.change(function() {
var $vlan = args.$select.closest('form').find('[rel=vlan]');
var networkOffering = $.grep(
networkOfferingObjs, function(netoffer) {
return netoffer.id == args.$select.val();
}
)[0];
if (networkOffering.specifyvlan) { if (networkOffering.specifyvlan) {
$vlan.css('display', 'inline-block'); $vlan.css('display', 'inline-block');
} else { } else {
$vlan.hide(); $vlan.hide();
}
});
args.response.success({
data: $.map(networkOfferingObjs, function(zone) {
return {
id: zone.id,
description: zone.name
};
})
});
} }
}); });
args.response.success({
data: $.map(networkOfferingObjs, function(zone) {
return {
id: zone.id,
description: zone.name
};
})
});
} }
}); });
//???
} }
}, },