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];