Updated Branches: refs/heads/master-6-17-stable c0af861a7 -> 3e3e5830b
CLOUDSTACK-869: Add VPC dialog - add Public LB Provider dropdown, remove VPC Offering dropdown. When Public LB Provider is selected as Netscaler, pass "Default VPC offering with Netscaler" to createVPC API. When Public LB Provider is selected as VpcVirtualRouter, pass "Default VPC Offering" to createVPC API. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3e3e5830 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3e3e5830 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3e3e5830 Branch: refs/heads/master-6-17-stable Commit: 3e3e5830b45eeba16b3dacfb5475d53d8d2dee27 Parents: c0af861 Author: Jessica Wang <[email protected]> Authored: Mon Jun 17 10:55:50 2013 -0700 Committer: Jessica Wang <[email protected]> Committed: Mon Jun 17 11:30:50 2013 -0700 ---------------------------------------------------------------------- ui/scripts/network.js | 125 +++++++++++++++++++++------------------------ 1 file changed, 57 insertions(+), 68 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3e3e5830/ui/scripts/network.js ---------------------------------------------------------------------- diff --git a/ui/scripts/network.js b/ui/scripts/network.js index fb63e4b..ddde9c9 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -4532,78 +4532,67 @@ docID: 'helpVPCDomain', label: 'label.DNS.domain.for.guest.networks' }, - - loadbalancer:{ //Support for Netscaler as an external device for load balancing - label:'Load Balancer', + publicLoadBalancerProvider:{ + label:'Public Load Balancer Provider', select:function(args){ - $.ajax({ - url:createURL('listVPCOfferings&listall=true'), - dataType:'json', - success:function(json){ - var items=[]; - var vpcObj = json.listvpcofferingsresponse.vpcoffering; - $(vpcObj).each(function(){ - items.push({id:this.id , description:this.name}); - }); - args.response.success({data:items}); - - } - - }); - - } - - } - + var items = []; + items.push({id: 'VpcVirtualRouter', description: 'VpcVirtualRouter'}); + items.push({id: 'Netscaler', description: 'Netscaler'}); + args.response.success({data: items}); + } + } } }, - action: function(args) { - /* var defaultvpcofferingid; - $.ajax({ - url: createURL("listVPCOfferings"), - dataType: "json", - data: { - isdefault: true - }, - async: false, - success: function(json) { - defaultvpcofferingid = json.listvpcofferingsresponse.vpcoffering[0].id; - } - });*/ - - var dataObj = { - name: args.data.name, - displaytext: args.data.displaytext, - zoneid: args.data.zoneid, - cidr: args.data.cidr, - vpcofferingid: args.data.loadbalancer // Support for external load balancer - }; - - if(args.data.networkdomain != null && args.data.networkdomain.length > 0) - $.extend(dataObj, { networkdomain: args.data.networkdomain }); - - $.ajax({ - url: createURL("createVPC"), - dataType: "json", - data: dataObj, - async: true, - success: function(json) { - var jid = json.createvpcresponse.jobid; - args.response.success( - {_custom: - {jobId: jid, - getUpdatedItem: function(json) { - return json.queryasyncjobresultresponse.jobresult.vpc; - } + action: function(args) { + var vpcOfferingName; + if (args.data.publicLoadBalancerProvider == 'VpcVirtualRouter') + vpcOfferingName = 'Default VPC offering'; + else if (args.data.publicLoadBalancerProvider == 'Netscaler') + vpcOfferingName = 'Default VPC offering with Netscaler'; + + $.ajax({ + url:createURL('listVPCOfferings'), + data: { + name: vpcOfferingName + }, + success:function(json){ + var vpcofferingid = json.listvpcofferingsresponse.vpcoffering[0].id; + + var dataObj = { + name: args.data.name, + displaytext: args.data.displaytext, + zoneid: args.data.zoneid, + cidr: args.data.cidr, + vpcofferingid: vpcofferingid + }; + + if(args.data.networkdomain != null && args.data.networkdomain.length > 0) + $.extend(dataObj, { networkdomain: args.data.networkdomain }); + + $.ajax({ + url: createURL("createVPC"), + dataType: "json", + data: dataObj, + async: true, + success: function(json) { + var jid = json.createvpcresponse.jobid; + args.response.success( + {_custom: + {jobId: jid, + getUpdatedItem: function(json) { + return json.queryasyncjobresultresponse.jobresult.vpc; + } + } + }); + }, + error: function(data) { + args.response.error(parseXMLHttpResponse(data)); } - }); - }, - error: function(data) { - args.response.error(parseXMLHttpResponse(data)); - } - }); - }, - + }); + } + }); + + }, notification: { poll: pollAsyncJobResult }
