Updated Branches: refs/heads/master 17b11d735 -> 7f40eef92
CLOUDSTACK-538: cloudstack UI - IP Addresses page - Acquire New IP button - If it's under a Basic zone, check whether its network offering is EIP ELB. If yes, show the button. If no, hide the button. Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/7f40eef9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/7f40eef9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/7f40eef9 Branch: refs/heads/master Commit: 7f40eef9200cd6b799db7059b203f150500778e2 Parents: 17b11d7 Author: Jessica Wang <[email protected]> Authored: Mon Nov 26 13:51:02 2012 -0800 Committer: Jessica Wang <[email protected]> Committed: Mon Nov 26 13:52:19 2012 -0800 ---------------------------------------------------------------------- ui/scripts/network.js | 81 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 65 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7f40eef9/ui/scripts/network.js ---------------------------------------------------------------------- diff --git a/ui/scripts/network.js b/ui/scripts/network.js index 5458de1..e3bc110 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -1272,26 +1272,76 @@ actions: { add: { label: 'label.acquire.new.ip', - addRow: 'true', - preFilter: function(args) { - if('networks' in args.context) { //from Guest Network section - if(args.context.networks[0].vpcid == null) { //if it's a non-VPC network, show Acquire IP button + addRow: 'true', + preFilter: function(args) { + var zoneObj; + $.ajax({ + url: createURL('listZones'), + data: { + id: args.context.networks[0].zoneid + }, + async: false, + success: function(json) { + zoneObj = json.listzonesresponse.zone[0]; + } + }); + + if(zoneObj.networktype == 'Basic') { + var havingEIP = false, havingELB = false; + $.ajax({ + url: createURL('listNetworkOfferings'), + data: { + id: args.context.networks[0].networkofferingid + }, + async: false, + success: function(json) { + $(json.listnetworkofferingsresponse.networkoffering[0].service).each(function(){ + var thisService = this; + if(thisService.name == "StaticNat") { + $(thisService.capability).each(function(){ + if(this.name == "ElasticIp" && this.value == "true") { + havingEIP = true; + return false; //break $.each() loop + } + }); + } + else if(thisService.name == "Lb") { + $(thisService.capability).each(function(){ + if(this.name == "ElasticLb" && this.value == "true") { + havingELB = true; + return false; //break $.each() loop + } + }); + } + }); + } + }); + if(havingEIP != true || havingELB != true) { //not EIP-ELB + return false; //acquire new IP is not allowed in non-EIP-ELB basic zone + } + } + + //*** from Guest Network section *** + if('networks' in args.context) { + if(args.context.networks[0].vpcid == null){ //Guest Network section > non-VPC network, show Acquire IP button return true; + } + else { //Guest Network section > VPC network, hide Acquire IP button + return false; } - else //if it's a VPC network, hide Acquire IP button - return false; - } - else { //from VPC section - return true; //show Acquire IP button - } - }, - messages: { + } + //*** from VPC section *** + else { //'vpc' in args.context + return true; //VPC section, show Acquire IP button + } + }, + messages: { confirm: function(args) { if(args.context.vpc) - return 'Please confirm that you would like to acquire a new IP for this VPC'; + return 'message.acquire.new.ip.vpc'; else - return 'message.acquire.new.ip'; - }, + return 'message.acquire.new.ip'; + }, notification: function(args) { return 'label.acquire.new.ip'; } @@ -2743,7 +2793,6 @@ }, async: false, success: function(json) { - //debugger; if(json.listautoscalevmgroupsresponse.autoscalevmgroup != null && json.listautoscalevmgroupsresponse.autoscalevmgroup.length > 0) { //from 'autoScale' button item._hideFields = ['add-vm']; }
