From a3a965a5a89cb12ff944aed4062652460d1ace67 Mon Sep 17 00:00:00 2001 From: Brian Federle Date: Fri, 29 Jun 2012 13:35:47 -0700 Subject: [PATCH] VPC UI: Add link to site-to-site VPN Add link in tooltip for site-to-site VPN, which opens a new panel showing the list view. This draws from the existing 'siteToSiteVpn' network subsection, so no modification should be required to the existing list view. --- ui/scripts/ui-custom/vpc.js | 37 +++++++++++++++++++++++++++++++++++-- ui/scripts/vpc.js | 5 +++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/ui/scripts/ui-custom/vpc.js b/ui/scripts/ui-custom/vpc.js index 98934dc1f8d..c598c0880a6 100644 --- a/ui/scripts/ui-custom/vpc.js +++ b/ui/scripts/ui-custom/vpc.js @@ -11,6 +11,8 @@ (function($, cloudStack) { var elems = { vpcConfigureTooltip: function(args) { + var $browser = args.$browser; + var siteToSiteVPN = args.siteToSiteVPN; var links = { 'ip-addresses': 'IP Addresses', 'gateways': 'Gateways', @@ -28,6 +30,24 @@ $link.append($label); $link.appendTo($links); + + // Link event + $link.click(function() { + switch (id) { + case 'site-to-site-vpn': + $browser.cloudBrowser('addPanel', { + title: 'Site-to-site VPNs', + maximizeIfSelected: true, + complete: function($panel) { + $panel.listView( + $.isFunction(siteToSiteVPN.listView) ? + siteToSiteVPN.listView() : siteToSiteVPN.listView + ); + } + }); + break; + } + }); }); $tooltip.append($links); @@ -51,6 +71,8 @@ return $tooltip; }, vpcConfigureArea: function(args) { + var $browser = args.$browser; + var siteToSiteVPN = args.siteToSiteVPN; var $config = $('
').addClass('config-area'); var $configIcon = $('').addClass('icon').html(' '); @@ -58,7 +80,10 @@ // Tooltip event $configIcon.mouseover(function() { - var $tooltip = elems.vpcConfigureTooltip(); + var $tooltip = elems.vpcConfigureTooltip({ + $browser: $browser, + siteToSiteVPN: siteToSiteVPN + }); // Make sure tooltip is center aligned with icon $tooltip.css({ left: $configIcon.position().left }); @@ -197,6 +222,8 @@ return $tier; }, chart: function(args) { + var $browser = args.$browser; + var siteToSiteVPN = args.siteToSiteVPN; var tiers = args.tiers; var vmListView = args.vmListView; var actions = args.actions; @@ -211,7 +238,10 @@ $('').html(vpcName) ) .append( - elems.vpcConfigureArea({}) + elems.vpcConfigureArea({ + $browser: $browser, + siteToSiteVPN: siteToSiteVPN + }) ); var showAddTierDialog = function() { @@ -484,6 +514,7 @@ cloudStack.uiCustom.vpc = function(args) { var vmListView = args.vmListView; var tierArgs = args.tiers; + var siteToSiteVPN = args.siteToSiteVPN; return function(args) { var context = args.context; @@ -506,6 +537,8 @@ success: function(args) { var tiers = args.data.tiers; var $chart = elems.chart({ + $browser: $browser, + siteToSiteVPN: siteToSiteVPN, vmListView: vmListView, context: context, actions: tierArgs.actions, diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js index 4f73345f208..b8beeaa5aa7 100644 --- a/ui/scripts/vpc.js +++ b/ui/scripts/vpc.js @@ -368,6 +368,11 @@ } } }, + siteToSiteVPN: { + listView: function() { + return cloudStack.sections.network.sections.siteToSiteVpn; + } + }, tiers: { actionPreFilter: function(args) { var tier = args.context.tiers[0];