cloudstack 3.0 UI - network page - Guest Network section - create Guest Network - If selected network offering includes forvpc = true, show VPC dropdown. Otherwise, hide VPC dropdown.

This commit is contained in:
Jessica Wang 2012-07-16 13:24:28 -07:00
parent 9a550adb75
commit d623ee3dee
1 changed files with 66 additions and 14 deletions

View File

@ -152,6 +152,8 @@
} }
}; };
var networkOfferingObjs = [];
cloudStack.sections.network = { cloudStack.sections.network = {
title: 'label.network', title: 'label.network',
id: 'network', id: 'network',
@ -257,9 +259,9 @@
state: 'Enabled' state: 'Enabled'
}, },
success: function(json) { success: function(json) {
var networkOfferings = json.listnetworkofferingsresponse.networkoffering; networkOfferingObjs = json.listnetworkofferingsresponse.networkoffering;
args.response.success({ args.response.success({
data: $.map(networkOfferings, function(zone) { data: $.map(networkOfferingObjs, function(zone) {
return { return {
id: zone.id, id: zone.id,
description: zone.name description: zone.name
@ -270,24 +272,74 @@
}); });
} }
}, },
vpcid: {
label: 'VPC',
dependsOn: 'networkOfferingId',
select: function(args) {
var networkOfferingObj;
$(networkOfferingObjs).each(function(key, value) {
if(value.id == args.networkOfferingId) {
networkOfferingObj = value;
return false; //break each loop
}
});
if(networkOfferingObj.forvpc == true) {
args.$select.closest('.form-item').css('display', 'inline-block');
$.ajax({
url: createURL('listVPCs'),
data: {
listAll: true
},
success: function(json) {
var items = json.listvpcsresponse.vpc;
var data;
if(items != null && items.length > 0) {
data = $.map(items, function(item) {
return {
id: item.id,
description: item.name
}
});
}
args.response.success({ data: data });
}
});
}
else {
args.$select.closest('.form-item').hide();
args.response.success({ data: null });
}
}
},
guestGateway: { label: 'label.guest.gateway' }, guestGateway: { label: 'label.guest.gateway' },
guestNetmask: { label: 'label.guest.netmask' } guestNetmask: { label: 'label.guest.netmask' }
} }
}, },
action: function(args) { action: function(args) {
var array1 = []; var dataObj = {
array1.push("&zoneId=" + args.data.zoneId); zoneId: args.data.zoneId,
array1.push("&name=" + todb(args.data.name)); name: args.data.name,
array1.push("&displayText=" + todb(args.data.displayText)); displayText: args.data.displayText,
array1.push("&networkOfferingId=" + args.data.networkOfferingId); networkOfferingId: args.data.networkOfferingId
};
if(args.data.guestGateway != null && args.data.guestGateway.length > 0) if(args.data.guestGateway != null && args.data.guestGateway.length > 0) {
array1.push("&gateway=" + args.data.guestGateway); $.extend(dataObj, {
if(args.data.guestNetmask != null && args.data.guestNetmask.length > 0) gateway: args.data.guestGateway
array1.push("&netmask=" + args.data.guestNetmask); });
}
if(args.data.guestNetmask != null && args.data.guestNetmask.length > 0) {
$.extend(dataObj, {
netmask: args.data.guestNetmask
});
}
if(args.$form.find('.form-item[rel=vpcid]').css("display") != "none") {
$.extend(dataObj, {
vpcid: args.data.vpcid
});
}
$.ajax({ $.ajax({
url: createURL('createNetwork' + array1.join("")), url: createURL('createNetwork'),
data: dataObj,
success: function(json) { success: function(json) {
args.response.success({ args.response.success({
data: json.createnetworkresponse.network data: json.createnetworkresponse.network