Updated Branches:
  refs/heads/master ae5d22b4a -> 9394e838a

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.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/9394e838
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/9394e838
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/9394e838

Branch: refs/heads/master
Commit: 9394e838a51a622805180bcb822a76358ad42ee9
Parents: ae5d22b
Author: Brian Federle <[email protected]>
Authored: Thu Aug 16 12:34:05 2012 -0700
Committer: Brian Federle <[email protected]>
Committed: Thu Aug 16 12:36:03 2012 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css      |    7 ++-
 ui/scripts/ui-custom/vpc.js |  109 +++++++++++++++++++++++---------------
 ui/scripts/vpc.js           |    8 +++
 3 files changed, 81 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9394e838/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index da41b76..b3abeee 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -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 span {
+.vpc-chart li.tier.virtual-router.disabled,
+.vpc-chart li.tier.virtual-router.disabled span {
   cursor: default;
+}
+
+.vpc-chart li.tier.virtual-router span {
   color: #586E82;
   font-size: 18px;
   /*+text-shadow:0px 1px 3px #FFFFFF;*/

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9394e838/ui/scripts/ui-custom/vpc.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/vpc.js b/ui/scripts/ui-custom/vpc.js
index 60d5429..f6214b8 100644
--- a/ui/scripts/ui-custom/vpc.js
+++ b/ui/scripts/ui-custom/vpc.js
@@ -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
-              })
-            );
-
-      var showAddTierDialog = function() {
+        .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 () {
         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,

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9394e838/ui/scripts/vpc.js
----------------------------------------------------------------------
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index dfa3f34..d25458b 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -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: {

Reply via email to