CS-16001: Show router details on click of 'virtual router'

Clicking the 'Virtual Router' button will show the same router tab as seen on
the VPC detail view.

 -- Note that this is only clickable for admins, as users cannot view router
      details in the API.
This commit is contained in:
Brian Federle 2012-08-16 12:34:05 -07:00 committed by Alex Huang
parent f5352fa9ce
commit fd4fe0511b
3 changed files with 80 additions and 42 deletions

View File

@ -9607,10 +9607,15 @@ div.panel.ui-dialog div.list-view div.fixed-header {
top: -36px;
background-position: 0px -2519px;
border: 1px solid #ADADAD;
cursor: pointer;
}
.vpc-chart li.tier.virtual-router.disabled,
.vpc-chart li.tier.virtual-router.disabled span {
cursor: default;
}
.vpc-chart li.tier.virtual-router span {
cursor: default;
color: #586E82;
font-size: 18px;
/*+text-shadow:0px 1px 3px #FFFFFF;*/

View File

@ -297,7 +297,9 @@
return $config;
},
router: function() {
router: function(args) {
var $browser = args.$browser;
var detailView = args.detailView;
var $router = $('<li>').addClass('tier virtual-router');
var $title = $('<span>').addClass('title').html('Virtual Router');
@ -306,6 +308,17 @@
// Append horizontal chart line
$router.append($('<div>').addClass('connect-line'));
$router.click(function() {
if ($router.hasClass('disabled')) return false;
$browser.cloudBrowser('addPanel', {
title: 'VPC router details',
complete: function($panel) {
$panel.detailView(detailView);
}
});
});
return $router;
},
tier: function(args) {
@ -468,60 +481,70 @@
var context = args.context;
var tierDetailView = args.tierDetailView;
var $tiers = $('<ul>').addClass('tiers');
var $router = elems.router();
var $router;
$router = elems.router({
$browser:$browser,
detailView:$.extend(true, {}, args.routerDetailView(), {
context:context
})
});
if (!isAdmin() && !isDomainAdmin()) $router.addClass('disabled');
var $chart = $('<div>').addClass('vpc-chart');
var $title = $('<div>').addClass('vpc-title')
.append(
$('<span>').html(vpcName)
)
.append(
elems.vpcConfigureArea({
context: context,
$browser: $browser,
$chart: $chart,
ipAddresses: $.extend(ipAddresses, {context: context}),
gateways: $.extend(gateways, {context: context}),
siteToSiteVPN: $.extend(siteToSiteVPN, {context: context}),
acl: $.extend(acl, {context: context}),
tierDetailView: tierDetailView
})
);
.append(
$('<span>').html(vpcName)
)
.append(
elems.vpcConfigureArea({
context:context,
$browser:$browser,
$chart:$chart,
ipAddresses:$.extend(ipAddresses, {context:context}),
gateways:$.extend(gateways, {context:context}),
siteToSiteVPN:$.extend(siteToSiteVPN, {context:context}),
acl:$.extend(acl, {context:context}),
tierDetailView:tierDetailView
})
);
var showAddTierDialog = function() {
var showAddTierDialog = function () {
if ($(this).find('.loading-overlay').size()) {
return false;
}
addTierDialog({
ipAddresses: ipAddresses,
$browser: $browser,
tierDetailView: tierDetailView,
$tiers: $tiers,
acl: acl,
context: context,
actions: actions,
vmListView: vmListView,
actionPreFilter: actionPreFilter
ipAddresses:ipAddresses,
$browser:$browser,
tierDetailView:tierDetailView,
$tiers:$tiers,
acl:acl,
context:context,
actions:actions,
vmListView:vmListView,
actionPreFilter:actionPreFilter
});
return true;
};
if (tiers != null && tiers.length > 0) {
$(tiers).map(function(index, tier) {
$(tiers).map(function (index, tier) {
var $tier = elems.tier({
ipAddresses: ipAddresses,
acl: acl,
$browser: $browser,
detailView: tierDetailView,
name: tier.name,
cidr: tier.cidr,
virtualMachines: tier.virtualMachines,
vmListView: vmListView,
actions: actions,
actionPreFilter: actionPreFilter,
context: $.extend(true, {}, context, {
networks: [tier]
ipAddresses:ipAddresses,
acl:acl,
$browser:$browser,
detailView:tierDetailView,
name:tier.name,
cidr:tier.cidr,
virtualMachines:tier.virtualMachines,
vmListView:vmListView,
actions:actions,
actionPreFilter:actionPreFilter,
context:$.extend(true, {}, context, {
networks:[tier]
})
});
@ -530,7 +553,7 @@
}
elems.tier({ isPlaceholder: true }).appendTo($tiers)
elems.tier({ isPlaceholder:true }).appendTo($tiers)
.click(showAddTierDialog);
$tiers.prepend($router);
$chart.append($title, $tiers);
@ -799,6 +822,7 @@
var gateways = args.gateways;
var acl = args.acl;
var siteToSiteVPN = args.siteToSiteVPN;
var routerDetailView = args.routerDetailView;
return function(args) {
var context = args.context;
@ -849,6 +873,7 @@
gateways: gateways,
acl: acl,
tierDetailView: tierDetailView,
routerDetailView: routerDetailView,
siteToSiteVPN: siteToSiteVPN,
vmListView: vmListView,
context: context,

View File

@ -248,6 +248,14 @@
};
cloudStack.vpc = {
routerDetailView: function() {
return {
title: 'VPC router details',
tabs: {
routerDetails: cloudStack.sections.network.sections.vpc.listView.detailView.tabs.router
}
};
},
vmListView: {
id: 'vpcTierInstances',
listView: {