You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by da...@apache.org on 2017/05/08 19:23:08 UTC

[4/5] incubator-trafficcontrol git commit: moved a couple pages around; button and tooltip changes as well

moved a couple pages around; button and tooltip changes as well


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

Branch: refs/heads/master
Commit: a53c064ccb2999eac401856aff0be09d75d2fcc6
Parents: 26d3ca0
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Wed May 3 08:19:09 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Mon May 8 13:21:54 2017 -0600

----------------------------------------------------------------------
 traffic_ops/experimental/ui/app/src/app.js      |  6 +-
 .../ui/app/src/common/api/AuthService.js        |  2 +-
 .../form/cacheGroup/form.cacheGroup.tpl.html    |  7 ++-
 .../modules/form/cdn/FormCDNController.js       |  4 --
 .../common/modules/form/cdn/form.cdn.tpl.html   | 12 ++--
 .../FormDeliveryServiceController.js            |  6 +-
 .../form.deliveryService.tpl.html               |  9 +--
 .../modules/form/profile/form.profile.tpl.html  |  6 +-
 .../modules/form/server/form.server.tpl.html    | 11 +++-
 .../modules/navigation/navigation.tpl.html      |  5 +-
 .../table.cacheGroupParameters.tpl.html         |  4 +-
 .../table/cdnServers/table.cdnServers.tpl.html  | 32 +++++-----
 .../table.deliveryServiceJobs.tpl.html          |  2 +-
 .../table.deliveryServiceRegexes.tpl.html       |  2 +-
 .../table.deliveryServiceServers.tpl.html       |  4 +-
 .../table.parameterProfiles.tpl.html            |  4 +-
 .../table.profileParameters.tpl.html            |  4 +-
 .../table.serverDeliveryServices.tpl.html       |  4 +-
 .../table/servers/table.servers.tpl.html        |  5 +-
 .../table.userDeliveryServices.tpl.html         |  4 +-
 .../monitor/dashboard/DashboardController.js    | 24 ++++++++
 .../private/monitor/dashboard/_dashboard.scss   | 16 +++++
 .../monitor/dashboard/dashboard.tpl.html        | 20 +++++++
 .../modules/private/monitor/dashboard/index.js  | 35 +++++++++++
 .../monitor/dashboards/DashboardsController.js  | 24 --------
 .../private/monitor/dashboards/_dashboards.scss | 16 -----
 .../monitor/dashboards/dashboards.tpl.html      | 22 -------
 .../modules/private/monitor/dashboards/index.js | 35 -----------
 .../dashboards/map/DashboardsMapController.js   | 62 --------------------
 .../monitor/dashboards/map/_dashboards.map.scss | 21 -------
 .../dashboards/map/dashboards.map.tpl.html      | 37 ------------
 .../private/monitor/dashboards/map/index.js     | 43 --------------
 .../three/DashboardsThreeController.js          | 24 --------
 .../dashboards/three/_dashboards.three.scss     | 16 -----
 .../dashboards/three/dashboards.three.tpl.html  | 20 -------
 .../private/monitor/dashboards/three/index.js   | 35 -----------
 .../dashboards/two/DashboardsTwoController.js   | 24 --------
 .../monitor/dashboards/two/_dashboards.two.scss | 16 -----
 .../dashboards/two/dashboards.two.tpl.html      | 20 -------
 .../private/monitor/dashboards/two/index.js     | 35 -----------
 .../private/monitor/map/MapController.js        | 62 ++++++++++++++++++++
 .../src/modules/private/monitor/map/_map.scss   | 21 +++++++
 .../src/modules/private/monitor/map/index.js    | 43 ++++++++++++++
 .../modules/private/monitor/map/map.tpl.html    | 37 ++++++++++++
 .../experimental/ui/app/src/styles/main.scss    |  6 +-
 45 files changed, 326 insertions(+), 521 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/app.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/app.js b/traffic_ops/experimental/ui/app/src/app.js
index 820ee28..ac4a99d 100644
--- a/traffic_ops/experimental/ui/app/src/app.js
+++ b/traffic_ops/experimental/ui/app/src/app.js
@@ -154,10 +154,8 @@ var trafficOps = angular.module('trafficOps', [
         require('./modules/private/monitor').name,
 
         // dashboards
-        require('./modules/private/monitor/dashboards').name,
-        require('./modules/private/monitor/dashboards/map').name,
-        require('./modules/private/monitor/dashboards/two').name,
-        require('./modules/private/monitor/dashboards/three').name,
+        require('./modules/private/monitor/dashboard').name,
+        require('./modules/private/monitor/map').name,
 
         // common modules
         require('./common/modules/dialog/confirm').name,

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/api/AuthService.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/api/AuthService.js b/traffic_ops/experimental/ui/app/src/common/api/AuthService.js
index da534fa..d1b7c9c 100644
--- a/traffic_ops/experimental/ui/app/src/common/api/AuthService.js
+++ b/traffic_ops/experimental/ui/app/src/common/api/AuthService.js
@@ -30,7 +30,7 @@ var AuthService = function($rootScope, $http, $state, $location, $q, $state, htt
                         $location.search('redirect', null); // remove the redirect query param
                         $location.url(redirect);
                     } else {
-                        $location.url('/monitor/dashboards/map');
+                        $location.url('/monitor/map');
                     }
                 },
                 function(fault) {

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
index 5275808..40beeb4 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/form/cacheGroup/form.cacheGroup.tpl.html
@@ -24,14 +24,17 @@ under the License.
             <li class="active">{{cacheGroupName}}</li>
         </ol>
         <div class="pull-right" ng-show="!settings.isNew">
-            <button class="btn btn-primary" title="Queue {{cacheGroup.name}} server updates" ng-click="confirmQueueServerUpdates(cacheGroup)"><i class="fa fa-flag"></i></button>
-            <button class="btn btn-primary" title="Clear {{cacheGroup.name}} server updates" ng-click="confirmClearServerUpdates(cacheGroup)"><i class="fa fa-ban"></i></button>
+            <button class="btn btn-primary" title="Queue Server Updates" ng-click="confirmQueueServerUpdates(cacheGroup)"><i class="fa fa-flag"></i></button>
+            <button class="btn btn-primary" title="Clear Server Updates" ng-click="confirmClearServerUpdates(cacheGroup)"><i class="fa fa-ban"></i></button>
             <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
                     More
                     <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu>
+                    <li role="menuitem"><a ng-click="confirmQueueServerUpdates(cacheGroup)">Queue Server Updates</a></li>
+                    <li role="menuitem"><a ng-click="confirmQueueServerUpdates(cacheGroup)">Clear Server Updates</a></li>
+                    <li class="divider"></li>
                     <li role="menuitem"><a ng-click="viewAsns()">View ASNs</a></li>
                     <li role="menuitem"><a ng-click="viewParams()">View Parameters</a></li>
                     <li role="menuitem"><a ng-click="viewServers()">View Servers</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/FormCDNController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/FormCDNController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/FormCDNController.js
index d76772d..41f8147 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/FormCDNController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/FormCDNController.js
@@ -34,10 +34,6 @@ var FormCDNController = function(cdn, $scope, $location, formUtils, stringUtils,
         alert('not hooked up yet: manageSSL for cdn');
     };
 
-    $scope.cachegroupHealth = function() {
-        alert('not hooked up yet: cachegroupHealth for CDN');
-    };
-
     $scope.queueServerUpdates = function(cdn) {
         cdnService.queueServerUpdates(cdn.id);
     };

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/form.cdn.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/form.cdn.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/form.cdn.tpl.html
index 661c3a8..8528350 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/form.cdn.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/form/cdn/form.cdn.tpl.html
@@ -24,19 +24,23 @@ under the License.
             <li class="active">{{cdnName}}</li>
         </ol>
         <div class="pull-right" ng-show="!settings.isNew">
-            <button class="btn btn-primary" title="Snapshot {{cdn.name}} config" ng-click="manageSnapshots()"><i class="fa fa-camera"></i></button>
-            <button class="btn btn-primary" title="Queue {{cdn.name}} server updates" ng-click="queueServerUpdates(cdn)"><i class="fa fa-flag"></i></button>
-            <button class="btn btn-primary" title="Cancel {{cdn.name}} server updates" ng-click="clearServerUpdates(cdn)"><i class="fa fa-ban"></i></button>
+            <button class="btn btn-primary" title="Snapshot {{cdn.name}} Config" ng-click="manageSnapshots()"><i class="fa fa-camera"></i></button>
+            <button class="btn btn-primary" title="Queue {{cdn.name}} Server Updates" ng-click="queueServerUpdates(cdn)"><i class="fa fa-flag"></i></button>
+            <button class="btn btn-primary" title="Clear {{cdn.name}} Server Updates" ng-click="clearServerUpdates(cdn)"><i class="fa fa-ban"></i></button>
             <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
                     More
                     <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu>
+                    <li role="menuitem"><a ng-click="manageSnapshots()">Snapshot {{cdn.name}} Config</a></li>
+                    <li class="divider"></li>
+                    <li role="menuitem"><a ng-click="queueServerUpdates(cdn)">Queue {{cdn.name}} Server Updates</a></li>
+                    <li role="menuitem"><a ng-click="clearServerUpdates(cdn)">Clear {{cdn.name}} Server Updates</a></li>
+                    <li class="divider"></li>
                     <li role="menuitem"><a ng-click="manageDNSSEC()">Manage DNSSEC Keys</a></li>
                     <li role="menuitem"><a ng-click="manageSSL()">Manage SSL Keys</a></li>
                     <li class="divider"></li>
-                    <li role="menuitem"><a ng-click="cachegroupHealth()">View Cachegroup Health</a></li>
                     <li role="menuitem"><a ng-click="viewDeliveryServices()">View Delivery Services</a></li>
                     <li role="menuitem"><a ng-click="viewProfiles()">View Profiles</a></li>
                     <li role="menuitem"><a ng-click="viewServers()">View Servers</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js
index 30a2378..e1e7cbe 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/FormDeliveryServiceController.js
@@ -122,7 +122,7 @@ var FormDeliveryServiceController = function(deliveryService, $scope, $location,
         { value: 4, label: "4 - Latch on Failover" }
     ];
 
-    $scope.assignServers = function() {
+    $scope.viewServers = function() {
         $location.path($location.path() + '/servers');
     };
 
@@ -130,10 +130,6 @@ var FormDeliveryServiceController = function(deliveryService, $scope, $location,
         $location.path($location.path() + '/regexes');
     };
 
-    $scope.cachegroupHealth = function() {
-        alert('not hooked up yet: cachegroupHealth for DS');
-    };
-
     $scope.viewJobs = function() {
         $location.path($location.path() + '/jobs');
     };

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html
index 3cddf16..fed8aa3 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/form/deliveryService/form.deliveryService.tpl.html
@@ -24,21 +24,18 @@ under the License.
             <li class="active">{{deliveryServiceName}}</li>
         </ol>
         <div class="pull-right" role="group" ng-show="!settings.isNew">
-            <button class="btn btn-primary" title="Assign Caches" ng-click="assignServers()"><i class="fa fa-server"></i></button>
             <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
                     More
                     <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu>
-                    <li role="menuitem"><a ng-click="viewRegexes()">Edit Delivery Service Regexes</a></li>
-                    <li class="divider"></li>
-                    <li role="menuitem"><a ng-click="viewJobs()">View Invalidate Content Jobs</a></li>
-                    <li class="divider"></li>
                     <li role="menuitem"><a ng-click="manageSslKeys()">Manage SSL Keys</a></li>
                     <li role="menuitem"><a ng-click="manageUrlSigKeys()">Manage URL Sig Keys</a></li>
                     <li class="divider"></li>
-                    <li role="menuitem"><a ng-click="cachegroupHealth()">View Cachegroup Health</a></li>
+                    <li role="menuitem"><a ng-click="viewServers()">View Servers</a></li>
+                    <li role="menuitem"><a ng-click="viewRegexes()">View Regexes</a></li>
+                    <li role="menuitem"><a ng-click="viewJobs()">View Invalidate Content Jobs</a></li>
                     <li role="menuitem"><a ng-click="viewStaticDnsEntries()">View Static DNS Entries</a></li>
                 </ul>
             </div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/form/profile/form.profile.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/profile/form.profile.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/profile/form.profile.tpl.html
index f2d5450..00c41a7 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/form/profile/form.profile.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/form/profile/form.profile.tpl.html
@@ -24,15 +24,15 @@ under the License.
             <li class="active">{{profileName}}</li>
         </ol>
         <div class="pull-right" role="group" ng-show="!settings.isNew">
-            <button class="btn btn-primary" title="View Parameters" ng-click="viewParams()"><i class="fa fa-clone"></i></button>
             <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
                     More
                     <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu>
-                    <li role="menuitem"><a ng-click="viewDeliveryServices()" ng-show="profile.type == 'DS_PROFILE'">View Delivery Services</a></li>
-                    <li role="menuitem"><a ng-click="viewServers()" ng-show="profile.type != 'DS_PROFILE'">View Servers</a></li>
+                    <li role="menuitem"><a ng-click="viewDeliveryServices()" ng-if="profile.type == 'DS_PROFILE'">View Delivery Services</a></li>
+                    <li role="menuitem"><a ng-click="viewParams()">View Parameters</a></li>
+                    <li role="menuitem"><a ng-click="viewServers()" ng-if="profile.type != 'DS_PROFILE'">View Servers</a></li>
                     <li class="divider"></li>
                     <li role="menuitem"><a ng-click="cloneProfile()">Clone Profile</a></li>
                     <li role="menuitem"><a ng-click="exportProfile()">Export Profile</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html
index 7cf7d03..c5e4a54 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/form/server/form.server.tpl.html
@@ -26,16 +26,21 @@ under the License.
         <div class="pull-right" role="group" ng-show="!settings.isNew">
             <button class="btn btn-primary" ng-click="confirmStatusUpdate()">Update Status</button>
             <!--<button class="btn btn-success" ng-click="onlineServer()">Online Server</button>-->
-            <button class="btn btn-primary" title="Queue {{server.hostName}} updates" ng-show="!server.updPending" ng-click="queueServerUpdates(server)"><i class="fa fa-flag"></i></button>
-            <button class="btn btn-primary" title="Cancel {{server.hostName}} updates" ng-show="server.updPending" ng-click="clearServerUpdates(server)"><i class="fa fa-ban"></i></button>
+            <button class="btn btn-primary" title="Queue Server Updates" ng-show="!server.updPending" ng-click="queueServerUpdates(server)"><i class="fa fa-flag"></i></button>
+            <button class="btn btn-primary" title="Clear Server Updates" ng-show="server.updPending" ng-click="clearServerUpdates(server)"><i class="fa fa-ban"></i></button>
             <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
                     More
                     <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu>
+                    <li ng-show="!server.updPending"><a ng-click="queueServerUpdates(server)">Queue Server Updates</a></li>
+                    <li ng-show="server.updPending"><a ng-click="clearServerUpdates(server)">Clear Server Updates</a></li>
+                    <li class="divider"></li>
+                    <li><a ng-click="confirmStatusUpdate()">Update Status</a></li>
+                    <li class="divider"></li>
                     <li><a ng-click="viewDeliveryServices()">View Delivery Services</a></li>
-                    <li><a ng-click="viewConfig()">View Server Config Files</a></li>
+                    <li><a ng-click="viewConfig()">View Config Files</a></li>
                 </ul>
             </div>
         </div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
index 3e0821d..7a1bb82 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
@@ -27,9 +27,8 @@ under the License.
             <ul class="nav side-menu">
                 <li class="side-menu-category"><a href="javascript:void(0);"><i class="fa fa-bar-chart"></i> Monitor <span class="fa fa-chevron-down"></span></a>
                     <ul class="nav child_menu" style="display: none">
-                        <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.monitor.dashboards.map')}"><a ng-click="navigateToPath('/monitor/dashboards/map')">Map</a></li>
-                        <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.monitor.dashboards.two')}"><a ng-click="navigateToPath('/monitor/dashboards/two')">Graphs</a></li>
-                        <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.monitor.dashboards.three')}"><a ng-click="navigateToPath('/monitor/dashboards/three')">Dashboard 3</a></li>
+                        <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.monitor.dashboard')}"><a ng-click="navigateToPath('/monitor/dashboard')">Dashboard</a></li>
+                        <li class="side-menu-category-item" ng-class="{'current-page': isState('trafficOps.private.monitor.map')}"><a ng-click="navigateToPath('/monitor/map')">Map</a></li>
                     </ul>
                 </li>
                 <li class="side-menu-category"><a href="javascript:void(0);"><i class="fa fa-cog"></i> Configure <span class="fa fa-chevron-down"></span></a>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/table.cacheGroupParameters.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/table.cacheGroupParameters.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/table.cacheGroupParameters.tpl.html
index 4a66d01..6ab49f0 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/table.cacheGroupParameters.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/table.cacheGroupParameters.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Parameters</li>
         </ol>
         <div class="pull-right" role="group" ng-show="!settings.isNew">
-            <button class="btn btn-primary" title="Add Parameter" ng-click="addParameter()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" title="Link Parameter to Cache Group" ng-click="addParameter()"><i class="fa fa-link"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
@@ -48,7 +48,7 @@ under the License.
                 <td>{{::parameter.name}}</td>
                 <td>{{::parameter.configFile}}</td>
                 <td>{{::parameter.value}}</td>
-                <td><button type="button" class="btn btn-link" title="Remove from Cache Group" ng-click="removeParameter()"><i class="fa fa-trash-o"></i></button></td>
+                <td><button type="button" class="btn btn-link" title="Remove from Cache Group" ng-click="removeParameter()"><i class="fa fa-chain-broken"></i></button></td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/table.cdnServers.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/table.cdnServers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/table.cdnServers.tpl.html
index 8d4e6b0..4401e1e 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/table.cdnServers.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/table.cdnServers.tpl.html
@@ -21,12 +21,12 @@ under the License.
     <div class="x_title">
         <ol class="breadcrumb pull-left">
             <li><a ng-click="navigateToPath('/admin/cdns')">CDNs</a></li>
-            <li><a ng-click="navigateToPath('/admin/cdns/' + cdn.id)">{{cdn.name}}</a></li>
+            <li><a ng-click="navigateToPath('/admin/cdns/' + cdn.id)">{{::cdn.name}}</a></li>
             <li class="active">Servers</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Queue {{cdn.name}} server updates" ng-click="queueServerUpdates(cdn)"><i class="fa fa-flag"></i></button>
-            <button class="btn btn-primary" title="Cancel {{cdn.name}} server updates" ng-click="clearServerUpdates(cdn)"><i class="fa fa-ban"></i></button>
+            <button class="btn btn-primary" title="Queue {{::cdn.name}} Server Updates" ng-click="queueServerUpdates(cdn)"><i class="fa fa-flag"></i></button>
+            <button class="btn btn-primary" title="Cancel {{::cdn.name}} Server Updates" ng-click="clearServerUpdates(cdn)"><i class="fa fa-ban"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
@@ -57,21 +57,21 @@ under the License.
                     <i class="fa fa-flag" ng-if="server.updPending"></i>
                     <i class="fa fa-ban" ng-if="!server.updPending"></i>
                 </td>
-                <td>{{server.hostName}}</td>
-                <td>{{server.domainName}}</td>
-                <td>{{server.cdnName}}</td>
-                <td>{{server.cachegroup}}</td>
-                <td>{{server.type}}</td>
-                <td>{{server.physLocation}}</td>
-                <td>{{server.ipAddress}}</td>
-                <td>{{server.ip6Address}}</td>
+                <td>{{::server.hostName}}</td>
+                <td>{{::server.domainName}}</td>
+                <td>{{::server.cdnName}}</td>
+                <td>{{::server.cachegroup}}</td>
+                <td>{{::server.type}}</td>
+                <td>{{::server.physLocation}}</td>
+                <td>{{::server.ipAddress}}</td>
+                <td>{{::server.ip6Address}}</td>
                 <td>
-                    <span ng-if="!isOffline(server.status)">{{server.status}}</span>
-                    <span ng-if="isOffline(server.status)" uib-popover="{{offlineReason(server)}}" popover-title="Offline Reason" popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true">{{server.status}}</span>
+                    <span ng-if="!isOffline(server.status)">{{::server.status}}</span>
+                    <span ng-if="isOffline(server.status)" uib-popover="{{::offlineReason(server)}}" popover-title="Offline Reason" popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true">{{::server.status}}</span>
                 </td>
-                <td>{{server.profile}}</td>
-                <td>{{server.iloIpAddress}}</td>
-                <td>{{server.iloIpGateway}}</td>
+                <td>{{::server.profile}}</td>
+                <td>{{::server.iloIpAddress}}</td>
+                <td>{{::server.iloIpGateway}}</td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html
index ba214d5..d43f3a4 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/table.deliveryServiceJobs.tpl.html
@@ -37,7 +37,7 @@ under the License.
             <tr class="headings">
                 <th>assetUrl</th>
                 <th>parameters</th>
-                <th>start</th>
+                <th>start (UTC)</th>
                 <th>createdBy</th>
             </tr>
             </thead>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/table.deliveryServiceRegexes.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/table.deliveryServiceRegexes.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/table.deliveryServiceRegexes.tpl.html
index 9c6045a..5e7f1f3 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/table.deliveryServiceRegexes.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/table.deliveryServiceRegexes.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Regexes</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Create Regex" ng-click="createRegex(deliveryService.id)"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" title="Create Delivery Service Regex" ng-click="createRegex(deliveryService.id)"><i class="fa fa-plus"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
index 3a91cde..2fa9e92 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/table.deliveryServiceServers.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Servers</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Add Server" ng-click="addServer()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" title="Link Server to Delivery Service" ng-click="addServer()"><i class="fa fa-link"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
@@ -72,7 +72,7 @@ under the License.
                 <td>{{::server.profile}}</td>
                 <td>{{::server.iloIpAddress}}</td>
                 <td>{{::server.iloIpGateway}}</td>
-                <td><button type="button" class="btn btn-link" title="Remove Server from Delivery Service" ng-show="server.type == 'EDGE'" ng-click="removeServer(deliveryService.id, server.id)"><i class="fa fa-chain-broken"></i></button></td>
+                <td><button type="button" class="btn btn-link" title="Unlink Server from Delivery Service" ng-show="server.type == 'EDGE'" ng-click="removeServer(deliveryService.id, server.id)"><i class="fa fa-chain-broken"></i></button></td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/table.parameterProfiles.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/table.parameterProfiles.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/table.parameterProfiles.tpl.html
index 975f4cd..51f00e8 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/table.parameterProfiles.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/table.parameterProfiles.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Profiles</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Add Profile" ng-click="addProfile()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" title="Link Profile to Parameter" ng-click="addProfile()"><i class="fa fa-link"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
@@ -44,7 +44,7 @@ under the License.
             <tr ng-repeat="parameterProfile in ::parameterProfiles">
                 <td>{{::parameterProfile.name}}</td>
                 <td>{{::parameterProfile.description}}</td>
-                <td><button type="button" class="btn btn-link" title="Remove Profile from Parameter" ng-click="removeProfile(parameterProfile.id)"><i class="fa fa-chain-broken"></i></button></td>
+                <td><button type="button" class="btn btn-link" title="Unlink Profile from Parameter" ng-click="removeProfile(parameterProfile.id)"><i class="fa fa-chain-broken"></i></button></td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/table.profileParameters.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/table.profileParameters.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/table.profileParameters.tpl.html
index 1f70b10..3a36e8b 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/table.profileParameters.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/table.profileParameters.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Parameters</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Add Parameter" ng-click="addParameter()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" title="Link Parameter to Profile" ng-click="addParameter()"><i class="fa fa-link"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
@@ -48,7 +48,7 @@ under the License.
                 <td>{{::parameter.name}}</td>
                 <td>{{::parameter.configFile}}</td>
                 <td>{{::parameter.value}}</td>
-                <td><button type="button" class="btn btn-link" title="Remove Parameter from Profile" ng-click="removeParameter(parameter.id)"><i class="fa fa-chain-broken"></i></button></td>
+                <td><button type="button" class="btn btn-link" title="Unlink Parameter from Profile" ng-click="removeParameter(parameter.id)"><i class="fa fa-chain-broken"></i></button></td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/table.serverDeliveryServices.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/table.serverDeliveryServices.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/table.serverDeliveryServices.tpl.html
index 6bcd542..a9efa33 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/table.serverDeliveryServices.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/table.serverDeliveryServices.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Delivery Services</li>
         </ol>
         <div class="pull-right" role="group">
-            <button class="btn btn-primary" title="Add Delivery Service" ng-click="addDeliveryService()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" title="Link Delivery Service to Server" ng-click="addDeliveryService()"><i class="fa fa-link"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
             <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
@@ -77,7 +77,7 @@ under the License.
                 <td>{{::deliveryService.protocol}}</td>
                 <td>{{::deliveryService.ipv6RoutingEnabled}}</td>
                 <td>{{::deliveryService.rangeRequestHandling}}</td>
-                <td><button type="button" class="btn btn-link" title="Remove Delivery Service from Server" ng-click="removeDeliveryService(deliveryService.id, server.id)"><i class="fa fa-chain-broken"></i></button></td>
+                <td><button type="button" class="btn btn-link" title="Unlink Delivery Service from Server" ng-click="removeDeliveryService(deliveryService.id, server.id)"><i class="fa fa-chain-broken"></i></button></td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html
index c449343..a7be280 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/servers/table.servers.tpl.html
@@ -24,8 +24,6 @@ under the License.
         </ol>
         <div class="pull-right">
             <button class="btn btn-primary" title="Create Server" ng-click="createServer()"><i class="fa fa-plus"></i></button>
-            <button class="btn btn-primary" title="Queue server updates" ng-click="confirmQueueServerUpdates()"><i class="fa fa-flag"></i></button>
-            <button class="btn btn-primary" title="Clear server updates" ng-click="confirmClearServerUpdates()"><i class="fa fa-ban"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
             <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
@@ -33,6 +31,9 @@ under the License.
                     <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu>
+                    <li role="menuitem"><a ng-click="confirmQueueServerUpdates()">Queue Server Updates</a></li>
+                    <li role="menuitem"><a ng-click="confirmClearServerUpdates()">Clear Server Updates</a></li>
+                    <li class="divider"></li>
                     <li role="menuitem"><a ng-click="uploadServerCSV()">Upload Bulk CSV</a></li>
                 </ul>
             </div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDeliveryServices.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDeliveryServices.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDeliveryServices.tpl.html
index a0de18e..e5c5a90 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDeliveryServices.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDeliveryServices.tpl.html
@@ -25,7 +25,7 @@ under the License.
             <li class="active">Delivery Services</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Add Delivery Service" ng-click="addDeliveryService()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" title="Link Delivery Service to User" ng-click="addDeliveryService()"><i class="fa fa-link"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
         </div>
         <div class="clearfix"></div>
@@ -46,7 +46,7 @@ under the License.
                 <td>{{::deliveryService.xmlId}}</td>
                 <td>{{::deliveryService.orgServerFqdn}}</td>
                 <td>{{::deliveryService.cdnName}}</td>
-                <td><button type="button" class="btn btn-link" title="Remove Delivery Service" ng-click="removeDeliveryService()"><i class="fa fa-trash-o"></i></button></td>
+                <td><button type="button" class="btn btn-link" title="Unlink Delivery Service from User" ng-click="removeDeliveryService()"><i class="fa fa-chain-broken"></i></button></td>
             </tr>
             </tbody>
         </table>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/DashboardController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/DashboardController.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/DashboardController.js
new file mode 100644
index 0000000..f6d611f
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/DashboardController.js
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var DashboardController = function($scope) {
+};
+
+DashboardController.$inject = ['$scope'];
+module.exports = DashboardController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/_dashboard.scss
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/_dashboard.scss b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/_dashboard.scss
new file mode 100644
index 0000000..d57b9c6
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/_dashboard.scss
@@ -0,0 +1,16 @@
+/*
+
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+*/

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/dashboard.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/dashboard.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/dashboard.tpl.html
new file mode 100644
index 0000000..cc3c2fc
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/dashboard.tpl.html
@@ -0,0 +1,20 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<h3>Dashboard</h3>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/index.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/index.js
new file mode 100644
index 0000000..041dc19
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboard/index.js
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+module.exports = angular.module('trafficOps.private.monitor.dashboard', [])
+    .controller('DashboardController', require('./DashboardController'))
+    .config(function($stateProvider, $urlRouterProvider) {
+        $stateProvider
+            .state('trafficOps.private.monitor.dashboard', {
+                url: '/dashboard',
+                views: {
+                    monitorContent: {
+                        templateUrl: 'modules/private/monitor/dashboard/dashboard.tpl.html',
+                        controller: 'DashboardController'
+                    }
+                }
+            })
+        ;
+        $urlRouterProvider.otherwise('/');
+    });

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/DashboardsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/DashboardsController.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/DashboardsController.js
deleted file mode 100644
index ab114c2..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/DashboardsController.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var DashboardsController = function($scope) {
-};
-
-DashboardsController.$inject = ['$scope'];
-module.exports = DashboardsController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/_dashboards.scss
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/_dashboards.scss b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/_dashboards.scss
deleted file mode 100644
index d57b9c6..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/_dashboards.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/dashboards.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/dashboards.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/dashboards.tpl.html
deleted file mode 100644
index 3a7a94a..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/dashboards.tpl.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<div id="dashboardsContainer">
-    <div ui-view="dashboardsContent"></div>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/index.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/index.js
deleted file mode 100644
index aa6994a..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-module.exports = angular.module('trafficOps.private.monitor.dashboards', [])
-    .controller('DashboardsController', require('./DashboardsController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficOps.private.monitor.dashboards', {
-                url: '/dashboards',
-                abstract: true,
-                views: {
-                    monitorContent: {
-                        templateUrl: 'modules/private/monitor/dashboards/dashboards.tpl.html',
-                        controller: 'DashboardsController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/DashboardsMapController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/DashboardsMapController.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/DashboardsMapController.js
deleted file mode 100644
index 192804b..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/DashboardsMapController.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var DashboardsMapController = function(cacheGroups, cacheGroupHealth, $scope, NgMap) {
-
-	$scope.map = NgMap.getMap('cgMap');
-
-	$scope.cacheGroups = [];
-
-	$scope.parentCg = function(cg) {
-		return cg.parent ? cg.parent : 'None'
-	};
-
-	$scope.secondaryParentCg = function(cg) {
-		return cg.secondaryParent ? cg.secondaryParent : 'None'
-	};
-
-	var massageCacheGroups = function() {
-		var cgHealthCacheGroups = cacheGroupHealth.cachegroups,
-			cgHealth;
-		_.each(cacheGroups, function(cg) {
-			cgHealth = _.find(cgHealthCacheGroups, function(cghcg){ return cghcg.name == cg.name });
-			$scope.cacheGroups.push(
-				{
-					name: cg.name,
-					parent: cg.parentCachegroupName,
-					secondaryParent: cg.secondaryParentCachegroupName,
-					pos: [ cg.latitude, cg.longitude ],
-					type: cg.typeName,
-					offline: cgHealth ? cgHealth.offline : '-',
-					online: cgHealth ? cgHealth.online : '-'
-				}
-			);
-		});
-	};
-
-	var init = function() {
-		massageCacheGroups();
-	};
-	init();
-
-
-};
-
-DashboardsMapController.$inject = ['cacheGroups', 'cacheGroupHealth', '$scope', 'NgMap'];
-module.exports = DashboardsMapController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/_dashboards.map.scss
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/_dashboards.map.scss b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/_dashboards.map.scss
deleted file mode 100644
index 72d3f1b..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/_dashboards.map.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-ng-map {
-  position: absolute;
-  width:100%;
-  height:100%;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/dashboards.map.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/dashboards.map.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/dashboards.map.tpl.html
deleted file mode 100644
index 671e0d7..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/dashboards.map.tpl.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<div class="angular-google-map-container" map-lazy-load="https://maps.google.com/maps/api/js">
-    <ng-map id="cgMap" zoom="5" center="[41,-87]">
-        <marker ng-repeat="cg in ::cacheGroups"
-                position="{{::cg.pos}}"
-                on-click="map.showInfoWindow(event, cg.name)"></marker>
-        <info-window id="{{::cg.name}}" ng-repeat="cg in ::cacheGroups">
-            <div>
-                <h3>{{::cg.name}} ({{::cg.type}})</h3>
-                <hr>
-                <h5>Coordinates: {{::cg.pos}}</h5>
-                <h5>1st Parent: {{::parentCg(cg)}}</h5>
-                <h5>2nd Parent: {{::secondaryParentCg(cg)}}</h5>
-                <h5>Online Caches: {{::cg.online}}</h5>
-                <h5>Offline Caches: {{::cg.offline}}</h5>
-            </div>
-        </info-window>
-    </ng-map>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/index.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/index.js
deleted file mode 100644
index 74fe61a..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/map/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-module.exports = angular.module('trafficOps.private.monitor.dashboards.map', [])
-    .controller('DashboardsMapController', require('./DashboardsMapController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficOps.private.monitor.dashboards.map', {
-                url: '/map',
-                views: {
-                    dashboardsContent: {
-                        templateUrl: 'modules/private/monitor/dashboards/map/dashboards.map.tpl.html',
-                        controller: 'DashboardsMapController',
-                        resolve: {
-                            cacheGroups: function(cacheGroupService) {
-                                return cacheGroupService.getCacheGroups();
-                            },
-                            cacheGroupHealth: function(cacheGroupService) {
-                                return cacheGroupService.getCacheGroupHealth();
-                            }
-                        }
-                    }
-                }
-            })
-        ;
-        $urlRouterProvider.otherwise('/');
-    });

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/DashboardsThreeController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/DashboardsThreeController.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/DashboardsThreeController.js
deleted file mode 100644
index 65317c2..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/DashboardsThreeController.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var DashboardsThreeController = function($scope) {
-};
-
-DashboardsThreeController.$inject = ['$scope'];
-module.exports = DashboardsThreeController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/_dashboards.three.scss
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/_dashboards.three.scss b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/_dashboards.three.scss
deleted file mode 100644
index d57b9c6..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/_dashboards.three.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/dashboards.three.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/dashboards.three.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/dashboards.three.tpl.html
deleted file mode 100644
index 5fc86dd..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/dashboards.three.tpl.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<h3>Dashboard #3</h3>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/index.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/index.js
deleted file mode 100644
index 28fe8c4..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/three/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-module.exports = angular.module('trafficOps.private.monitor.dashboards.three', [])
-    .controller('DashboardsThreeController', require('./DashboardsThreeController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficOps.private.monitor.dashboards.three', {
-                url: '/three',
-                views: {
-                    dashboardsContent: {
-                        templateUrl: 'modules/private/monitor/dashboards/three/dashboards.three.tpl.html',
-                        controller: 'DashboardsThreeController'
-                    }
-                }
-            })
-        ;
-        $urlRouterProvider.otherwise('/');
-    });

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/DashboardsTwoController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/DashboardsTwoController.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/DashboardsTwoController.js
deleted file mode 100644
index 5cc6f60..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/DashboardsTwoController.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var DashboardsTwoController = function($scope) {
-};
-
-DashboardsTwoController.$inject = ['$scope'];
-module.exports = DashboardsTwoController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/_dashboards.two.scss
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/_dashboards.two.scss b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/_dashboards.two.scss
deleted file mode 100644
index d57b9c6..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/_dashboards.two.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/dashboards.two.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/dashboards.two.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/dashboards.two.tpl.html
deleted file mode 100644
index de5ac12..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/dashboards.two.tpl.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<h3>Dashboard #2</h3>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/index.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/index.js
deleted file mode 100644
index 7e14aed..0000000
--- a/traffic_ops/experimental/ui/app/src/modules/private/monitor/dashboards/two/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-module.exports = angular.module('trafficOps.private.monitor.dashboards.two', [])
-    .controller('DashboardsTwoController', require('./DashboardsTwoController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficOps.private.monitor.dashboards.two', {
-                url: '/two',
-                views: {
-                    dashboardsContent: {
-                        templateUrl: 'modules/private/monitor/dashboards/two/dashboards.two.tpl.html',
-                        controller: 'DashboardsTwoController'
-                    }
-                }
-            })
-        ;
-        $urlRouterProvider.otherwise('/');
-    });

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/MapController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/MapController.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/MapController.js
new file mode 100644
index 0000000..a85185d
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/MapController.js
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var MapController = function(cacheGroups, cacheGroupHealth, $scope, NgMap) {
+
+	$scope.map = NgMap.getMap('cgMap');
+
+	$scope.cacheGroups = [];
+
+	$scope.parentCg = function(cg) {
+		return cg.parent ? cg.parent : 'None'
+	};
+
+	$scope.secondaryParentCg = function(cg) {
+		return cg.secondaryParent ? cg.secondaryParent : 'None'
+	};
+
+	var massageCacheGroups = function() {
+		var cgHealthCacheGroups = cacheGroupHealth.cachegroups,
+			cgHealth;
+		_.each(cacheGroups, function(cg) {
+			cgHealth = _.find(cgHealthCacheGroups, function(cghcg){ return cghcg.name == cg.name });
+			$scope.cacheGroups.push(
+				{
+					name: cg.name,
+					parent: cg.parentCachegroupName,
+					secondaryParent: cg.secondaryParentCachegroupName,
+					pos: [ cg.latitude, cg.longitude ],
+					type: cg.typeName,
+					offline: cgHealth ? cgHealth.offline : '-',
+					online: cgHealth ? cgHealth.online : '-'
+				}
+			);
+		});
+	};
+
+	var init = function() {
+		massageCacheGroups();
+	};
+	init();
+
+
+};
+
+MapController.$inject = ['cacheGroups', 'cacheGroupHealth', '$scope', 'NgMap'];
+module.exports = MapController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/_map.scss
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/_map.scss b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/_map.scss
new file mode 100644
index 0000000..72d3f1b
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/_map.scss
@@ -0,0 +1,21 @@
+/*
+
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+*/
+ng-map {
+  position: absolute;
+  width:100%;
+  height:100%;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/index.js b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/index.js
new file mode 100644
index 0000000..22083bb
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/index.js
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+module.exports = angular.module('trafficOps.private.monitor.map', [])
+    .controller('MapController', require('./MapController'))
+    .config(function($stateProvider, $urlRouterProvider) {
+        $stateProvider
+            .state('trafficOps.private.monitor.map', {
+                url: '/map',
+                views: {
+                    monitorContent: {
+                        templateUrl: 'modules/private/monitor/map/map.tpl.html',
+                        controller: 'MapController',
+                        resolve: {
+                            cacheGroups: function(cacheGroupService) {
+                                return cacheGroupService.getCacheGroups();
+                            },
+                            cacheGroupHealth: function(cacheGroupService) {
+                                return cacheGroupService.getCacheGroupHealth();
+                            }
+                        }
+                    }
+                }
+            })
+        ;
+        $urlRouterProvider.otherwise('/');
+    });

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/map.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/map.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/map.tpl.html
new file mode 100644
index 0000000..671e0d7
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/monitor/map/map.tpl.html
@@ -0,0 +1,37 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<div class="angular-google-map-container" map-lazy-load="https://maps.google.com/maps/api/js">
+    <ng-map id="cgMap" zoom="5" center="[41,-87]">
+        <marker ng-repeat="cg in ::cacheGroups"
+                position="{{::cg.pos}}"
+                on-click="map.showInfoWindow(event, cg.name)"></marker>
+        <info-window id="{{::cg.name}}" ng-repeat="cg in ::cacheGroups">
+            <div>
+                <h3>{{::cg.name}} ({{::cg.type}})</h3>
+                <hr>
+                <h5>Coordinates: {{::cg.pos}}</h5>
+                <h5>1st Parent: {{::parentCg(cg)}}</h5>
+                <h5>2nd Parent: {{::secondaryParentCg(cg)}}</h5>
+                <h5>Online Caches: {{::cg.online}}</h5>
+                <h5>Offline Caches: {{::cg.offline}}</h5>
+            </div>
+        </info-window>
+    </ng-map>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a53c064c/traffic_ops/experimental/ui/app/src/styles/main.scss
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/styles/main.scss b/traffic_ops/experimental/ui/app/src/styles/main.scss
index 8a3c1c5..c79d6bd 100755
--- a/traffic_ops/experimental/ui/app/src/styles/main.scss
+++ b/traffic_ops/experimental/ui/app/src/styles/main.scss
@@ -60,10 +60,8 @@ $fa-font-path: "../assets/fonts";
 @import "../modules/private/monitor/monitor";
 
 // dashboards
-@import "../modules/private/monitor/dashboards/dashboards";
-@import "../modules/private/monitor/dashboards/map/dashboards.map";
-@import "../modules/private/monitor/dashboards/two/dashboards.two";
-@import "../modules/private/monitor/dashboards/three/dashboards.three";
+@import "../modules/private/monitor/dashboard/dashboard";
+@import "../modules/private/monitor/map/map";
 
 [ng-click] {
   cursor: pointer;