From 9d0c3fd0fb7e7ede37805eb5698249ff68206d18 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Mon, 23 Jan 2012 18:06:50 -0800 Subject: [PATCH] cloudstack 3.0 new UI - IP page - configuration - show/hide tabs upon whether their corresponding service are included in the network or not. --- ui/scripts/network.js | 31 ++++++++++++++++++++++++++++++- ui/scripts/ui-custom/ipRules.js | 24 ++++++++++++++++++++++-- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index ed822796410..75b64c29d22 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -1075,7 +1075,32 @@ } }); args.context.networks[0].networkHavingLbService = networkHavingLbService; - + + + + var disallowedActions = []; + if (args.context.ipAddresses[0].isstaticnat) + disallowedActions.push("nonStaticNATChart"); //tell ipRules widget to show staticNAT chart instead of non-staticNAT chart. + + var networkHavingFirewallService = false; + var networkHavingPortForwardingService = false; + var networkHavingLbService = false; + $(args.context.networks[0].service).each(function(){ + if(this.name == "Firewall") + networkHavingFirewallService = true; + if(this.name == "PortForwarding") + networkHavingPortForwardingService = true; + if(this.name == "Lb") + networkHavingLbService = true; + }); + if(networkHavingFirewallService == false) + disallowedActions.push("firewall"); + if(networkHavingPortForwardingService == false) + disallowedActions.push("portForwarding"); + if(networkHavingLbService == false) + disallowedActions.push("loadBalancing"); + + /* var disallowedActions = []; if (args.context.ipAddresses[0].isstaticnat) { //All items filtered means static NAT disallowedActions.push("firewall"); @@ -1097,6 +1122,10 @@ if (g_firewallRuleUiEnabled != 'true') { disallowedActions.push("firewall"); } + */ + + + return disallowedActions; }, diff --git a/ui/scripts/ui-custom/ipRules.js b/ui/scripts/ui-custom/ipRules.js index 5df2d4e6fb2..405b2781d74 100644 --- a/ui/scripts/ui-custom/ipRules.js +++ b/ui/scripts/ui-custom/ipRules.js @@ -112,8 +112,27 @@ context: context }) : []; - // Filter disabled tabs - if (preFilter.length) { + // 1. choose between staticNAT chart and non-staticNAT chart 2. filter disabled tabs + if (preFilter.length) { + if($.inArray('nonStaticNATChart', preFilter) != -1) { //choose static NAT chart + if($.inArray('firewall', preFilter) == -1) { + return staticNATChart(args, true); //static NAT including Firewall + } + else { + return staticNATChart(args, false); //static NAT excluding Firewall + } + } + else { //choose non-static NAT chart + $(preFilter).each(function() { + var id = this; + + var $li = $chart.find('li').filter(function() { + return $(this).hasClass(id); + }).addClass('disabled'); + }); + } + + /* if (preFilter.length == 3) { // 'firewall', 'portForwarding', 'loadBalancing' return staticNATChart(args, true); //static NAT including Firewall } @@ -129,6 +148,7 @@ }).addClass('disabled'); }); } + */ } $chart.find('.view-details').click(function() {