From 32fe57aa7720ba5ea49ef093c41456d33dd0efe4 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Tue, 17 Jul 2012 15:22:50 -0700 Subject: [PATCH] cloudstack 3.0 UI - VPC - IP Address - after a Port Forwarding rule is added, hide tier dropdown. --- ui/scripts/network.js | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index 7f8f0b352da..4eb11485631 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -2814,23 +2814,34 @@ } }); }); - - // Check if tiers are present; hide/show header drop-down - var $headerFields = $multi.find('.header-fields'); - if ('vpc' in args.context) { - $headerFields.show(); - if(args.context.ipAddresses[0].associatednetworkid == null) { - //$headerFields.find("select").removeAttr("disabled"); - $headerFields.show(); + + // Check if tiers are present; hide/show header drop-down (begin) *** + //dataProvider() is called when a LB rule is added in multiEdit. However, adding a LB rule might change parent object (IP Address object). So, we have to force to refresh args.context.ipAddresses[0] here + $.ajax({ + url: createURL('listPublicIpAddresses'), + data: { + id: args.context.ipAddresses[0].id + }, + success: function(json) { + var item = json.listpublicipaddressesresponse.publicipaddress[0]; + args.context.ipAddresses.shift(); //remove the first element in args.context.ipAddresses + args.context.ipAddresses.push(item); + + var $headerFields = $multi.find('.header-fields'); + if ('vpc' in args.context) { + if(args.context.ipAddresses[0].associatednetworkid == null) { + $headerFields.show(); + } + else { + $headerFields.hide(); + } + } + else if('networks' in args.context){ + $headerFields.hide(); + } } - else { - //$headerFields.find("select").attr("disabled", true); - $headerFields.hide(); - } - } - else if('networks' in args.context){ - $headerFields.hide(); - } + }); + // Check if tiers are present; hide/show header drop-down (end) *** }, error: function(data) { args.response.error(parseXMLHttpResponse(data));