From 0f575c2ecf6bf53a3d3be4e2ff8834b2ca3ddee6 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Mon, 9 Jul 2012 12:10:03 -0700 Subject: [PATCH] cloudStack 3.0 UI - IP Address page - (1) if from VPC section, hardcode conserve mode as false and exclude VPN service. (2) if from Guest Network section, get conserve mode and whether or not to show VPN service from guest network's network offering. --- ui/scripts/network.js | 87 +++++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index d1144e73eaa..dab04c2cd20 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -113,14 +113,13 @@ disallowedActions.push('disableStaticNAT'); } - if ($.inArray('Vpn', $.map(args.context.networks[0].service, - function(service) { return service.name; })) > -1) { + if(item.networkOfferingHavingVpnService == true) { if (item.vpnenabled) { disallowedActions.push('enableVPN'); } else { disallowedActions.push('disableVPN'); } - } else { + } else { //item.networkOfferingHavingVpnService == false disallowedActions.push('disableVPN'); disallowedActions.push('enableVPN'); } @@ -1469,40 +1468,54 @@ async: true, success: function(json) { var ipObj = items[0]; - $.ajax({ - url: createURL('listNetworkOfferings'), - data: { - id: args.context.networks[0].networkofferingid - }, - dataType: 'json', - async: true, - success: function(json) { - var networkOfferingObj = json.listnetworkofferingsresponse.networkoffering[0]; - ipObj.networkOfferingConserveMode= networkOfferingObj.conservemode; - - // Get VPN data - $.ajax({ - url: createURL('listRemoteAccessVpns'), - data: { - listAll: true, - publicipid: ipObj.id - }, - dataType: 'json', - async: true, - success: function(vpnResponse) { - var isVPNEnabled = vpnResponse.listremoteaccessvpnsresponse.count; - if (isVPNEnabled) { - ipObj.vpnenabled = true; - ipObj.remoteaccessvpn = vpnResponse.listremoteaccessvpnsresponse.remoteaccessvpn[0]; - }; - args.response.success({ - actionFilter: actionFilters.ipAddress, - data: ipObj - }); - } - }); - } - }); + + if('networks' in args.context) { //from Guest Network section + //get ipObj.networkOfferingConserveMode and ipObj.networkOfferingHavingVpnService from guest network's network offering + $.ajax({ + url: createURL('listNetworkOfferings'), + data: { + id: args.context.networks[0].networkofferingid + }, + async: false, + success: function(json) { + var networkOfferingObj = json.listnetworkofferingsresponse.networkoffering[0]; + ipObj.networkOfferingConserveMode = networkOfferingObj.conservemode; + + $(networkOfferingObj.service).each(function(){ + var thisService = this; + if(thisService.name == "Vpn") + ipObj.networkOfferingHavingVpnService = true; + }); + + if(ipObj.networkOfferingHavingVpnService == true) { + $.ajax({ + url: createURL('listRemoteAccessVpns'), + data: { + listAll: true, + publicipid: ipObj.id + }, + async: false, + success: function(vpnResponse) { + var isVPNEnabled = vpnResponse.listremoteaccessvpnsresponse.count; + if (isVPNEnabled) { + ipObj.vpnenabled = true; + ipObj.remoteaccessvpn = vpnResponse.listremoteaccessvpnsresponse.remoteaccessvpn[0]; + }; + } + }); + } + } + }); + } + else { //from VPC section + ipObj.networkOfferingConserveMode = false; //conserve mode of IP in VPC is always off, so hardcode it as false + ipObj.networkOfferingHavingVpnService = false; //VPN is not supported in IP in VPC, so hardcode it as false + } + + args.response.success({ + actionFilter: actionFilters.ipAddress, + data: ipObj + }); }, error: function(data) { args.response.error(parseXMLHttpResponse(data));