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/01/05 21:59:43 UTC

[02/11] incubator-trafficcontrol git commit: adds more views to TO experimental UI

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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 2c0c4e3..298319f 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
@@ -24,7 +24,7 @@ under the License.
             <li><a ng-click="navigateToPath('/configure/delivery-services/' + deliveryService.id)">{{deliveryService.displayName}}</a></li>
             <li class="active">Regexes</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="addRegex()">Add</button>
+        <button class="btn btn-primary pull-right" ng-click="addRegex()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Add Regex to DS</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">
@@ -39,7 +39,7 @@ under the License.
             </tr>
             </thead>
             <tbody>
-            <tr ng-repeat="regex in regexes">
+            <tr ng-repeat="regex in regexes.regexes | orderBy:['setNumber']">
                 <td>{{regex.type}}</td>
                 <td>{{regex.pattern}}</td>
                 <td>{{regex.setNumber}}</td>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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 cee878b..0eb0633 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
@@ -24,7 +24,7 @@ under the License.
             <li><a ng-click="navigateToPath('/configure/delivery-services/' + deliveryService.id)">{{deliveryService.displayName}}</a></li>
             <li class="active">Servers</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="addServer()">Add</button>
+        <button class="btn btn-primary pull-right" ng-click="addServer()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Add Server to DS</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/table.deliveryServices.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/table.deliveryServices.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/table.deliveryServices.tpl.html
index fa4fbde..f1910a9 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/table.deliveryServices.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/table.deliveryServices.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Delivery Services</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createDeliveryService()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createDeliveryService()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Delivery Service</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/table.divisions.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/table.divisions.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/table.divisions.tpl.html
index 97abea6..9dc8a97 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/table.divisions.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/table.divisions.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Divisions</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createDivision()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createDivision()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Division</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/TableParameterProfilesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/TableParameterProfilesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/TableParameterProfilesController.js
new file mode 100644
index 0000000..3c89c58
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/TableParameterProfilesController.js
@@ -0,0 +1,46 @@
+/*
+ * 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 TableParameterProfilesController = function(parameter, parameterProfiles, $scope, locationUtils) {
+
+	$scope.parameter = parameter;
+
+	$scope.parameterProfiles = parameterProfiles;
+
+	$scope.addProfile = function() {
+		alert('not hooked up yet: add profile to parameter');
+	};
+
+	$scope.removeProfile = function() {
+		alert('not hooked up yet: remove profile from parameter');
+	};
+
+	$scope.navigateToPath = locationUtils.navigateToPath;
+
+	angular.element(document).ready(function () {
+		$('#parametersTable').dataTable({
+			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+			"iDisplayLength": 100
+		});
+	});
+
+};
+
+TableParameterProfilesController.$inject = ['parameter', 'parameterProfiles', '$scope', 'locationUtils'];
+module.exports = TableParameterProfilesController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/index.js
new file mode 100644
index 0000000..b5b0968
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/index.js
@@ -0,0 +1,21 @@
+/*
+ * 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.table.parameterProfiles', [])
+	.controller('TableParameterProfilesController', require('./TableParameterProfilesController'));

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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
new file mode 100644
index 0000000..42fbae4
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterProfiles/table.parameterProfiles.tpl.html
@@ -0,0 +1,50 @@
+<!--
+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="x_panel">
+    <div class="x_title">
+        <ol class="breadcrumb pull-left">
+            <li><a ng-click="navigateToPath('/admin/parameters')">Parameters</a></li>
+            <li><a ng-click="navigateToPath('/admin/parameters/' + parameter.id)">{{parameter.name}}</a></li>
+            <li class="active">Profiles</li>
+        </ol>
+        <button class="btn btn-primary pull-right" ng-click="addProfile()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Add Profile to Param</button>
+        <div class="clearfix"></div>
+    </div>
+    <div class="x_content">
+        <br>
+        <table id="parameterProfilesTable" class="table responsive-utilities jambo_table">
+            <thead>
+            <tr class="headings">
+                <th>name</th>
+                <th>description</th>
+                <th></th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-repeat="parameterProfile in parameterProfiles">
+                <td>{{parameterProfile.name}}</td>
+                <td>{{parameterProfile.description}}</td>
+                <td><button type="button" class="btn btn-link" title="Remove from Parameter" ng-click="removeProfile()"><i class="fa fa-trash-o"></i></button></td>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/table.parameters.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/table.parameters.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/table.parameters.tpl.html
index 984af8c..9ef579b 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/table.parameters.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/table.parameters.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Parameters</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createParameter()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createParameter()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Parameter</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/table.physLocations.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/table.physLocations.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/table.physLocations.tpl.html
index dd8dc2e..5001bcb 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/table.physLocations.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/table.physLocations.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Physical Locations</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createPhysLocation()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createPhysLocation()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Phys Location</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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 4b8575a..6fc8734 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
@@ -24,7 +24,7 @@ under the License.
             <li><a ng-click="navigateToPath('/admin/profiles/' + profile.id)">{{profile.name}}</a></li>
             <li class="active">Parameters</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="addParameter()">Add</button>
+        <button class="btn btn-primary pull-right" ng-click="addParameter()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Add Parameter To Profile</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/table.profiles.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/table.profiles.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/table.profiles.tpl.html
index 2d79fb4..1245fa7 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/table.profiles.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/table.profiles.tpl.html
@@ -22,10 +22,19 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Profiles</li>
         </ol>
-
-        <button class="btn btn-primary pull-right" ng-click="createProfile()">New</button>
-        <button class="btn btn-default pull-right" ng-click="importProfile()">Import</button>
-        <button class="btn btn-default pull-right" ng-click="compareProfiles()">Compare</button>
+        <div class="pull-right">
+            <button class="btn btn-primary" ng-click="createProfile()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Profile</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="importProfile()">Import Profile</a></li>
+                    <li role="menuitem"><a ng-click="compareProfiles()">Compare Profiles</a></li>
+                </ul>
+            </div>
+        </div>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/regions/table.regions.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/regions/table.regions.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/regions/table.regions.tpl.html
index 32dd17a..a20d0c3 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/regions/table.regions.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/regions/table.regions.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Regions</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createRegion()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createRegion()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Region</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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 f8cde74..82f665c 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
@@ -24,9 +24,18 @@ under the License.
             <li><a ng-click="navigateToPath('/configure/servers/' + server.id)">{{server.hostName}}</a></li>
             <li class="active">Delivery Services</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="addDeliveryService()">Add</button>
-        <button class="btn btn-default pull-right" ng-click="cloneDsAssignments()">Clone Assignments</button>
-
+        <div class="pull-right" role="group">
+            <button class="btn btn-primary" ng-click="addDeliveryService()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Add Delivery Service To Server</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><a ng-click="cloneDsAssignments()">Clone Assignments</a></li>
+                </ul>
+            </div>
+        </div>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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 6ba550a..d1aea1f 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
@@ -22,8 +22,18 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Servers</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createServer()">New</button>
-        <button class="btn btn-default pull-right" ng-click="uploadServerCSV()">Upload CSV</button>
+        <div class="pull-right">
+            <button class="btn btn-primary" ng-click="createServer()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Server</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="uploadServerCSV()">Upload Bulk CSV</a></li>
+                </ul>
+            </div>
+        </div>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/TableStatusServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/TableStatusServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/TableStatusServersController.js
new file mode 100644
index 0000000..636b17c
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/TableStatusServersController.js
@@ -0,0 +1,42 @@
+/*
+ * 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 TableStatusServersController = function(status, servers, $scope, locationUtils) {
+
+	$scope.status = status;
+
+	$scope.servers = servers;
+
+	$scope.editServer = function(id) {
+		locationUtils.navigateToPath('/configure/servers/' + id);
+	};
+
+	$scope.navigateToPath = locationUtils.navigateToPath;
+
+	angular.element(document).ready(function () {
+		$('#serversTable').dataTable({
+			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+			"iDisplayLength": 100
+		});
+	});
+
+};
+
+TableStatusServersController.$inject = ['status', 'servers', '$scope', 'locationUtils'];
+module.exports = TableStatusServersController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/index.js
new file mode 100644
index 0000000..9923c18
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/index.js
@@ -0,0 +1,22 @@
+
+/*
+ * 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.table.statusServers', [])
+	.controller('TableStatusServersController', require('./TableStatusServersController'));

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/table.statusServers.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/table.statusServers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/table.statusServers.tpl.html
new file mode 100644
index 0000000..0b5f850
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/statusServers/table.statusServers.tpl.html
@@ -0,0 +1,69 @@
+<!--
+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="x_panel">
+    <div class="x_title">
+        <ol class="breadcrumb pull-left">
+            <li><a ng-click="navigateToPath('/admin/statuses')">Statuses</a></li>
+            <li><a ng-click="navigateToPath('/admin/statuses/' + status.id)">{{status.name}}</a></li>
+            <li class="active">Servers</li>
+        </ol>
+        <div class="clearfix"></div>
+    </div>
+    <div class="x_content">
+        <br>
+        <table id="serversTable" class="table responsive-utilities jambo_table">
+            <thead>
+            <tr class="headings">
+                <th>Update?</th>
+                <th>hostName</th>
+                <th>domainName</th>
+                <th>cdn</th>
+                <th>cachegroup</th>
+                <th>type</th>
+                <th>location</th>
+                <th>ipAddress</th>
+                <th>ip6Address</th>
+                <th>status</th>
+                <th>profile</th>
+                <th>iloIpAddress</th>
+                <th>iloIpGateway</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-click="editServer(server.id)" ng-repeat="server in servers" ng-class="{'active': server.updPending}">
+                <td>{{server.updPending}}</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.status}}</td>
+                <td>{{server.profile}}</td>
+                <td>{{server.iloIpAddress}}</td>
+                <td>{{server.iloIpGateway}}</td>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/table.statuses.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/table.statuses.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/table.statuses.tpl.html
index 503f674..ce09d01 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/table.statuses.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/table.statuses.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Statuses</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createStatus()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createStatus()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Status</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/table.tenants.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/table.tenants.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/table.tenants.tpl.html
index 15ed605..c8f4b97 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/table.tenants.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/table.tenants.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Tenants</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createTenant()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createTenant()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Tenant</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/TableTypeCacheGroupsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/TableTypeCacheGroupsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/TableTypeCacheGroupsController.js
new file mode 100644
index 0000000..45e3ed7
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/TableTypeCacheGroupsController.js
@@ -0,0 +1,42 @@
+/*
+ * 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 TableTypeCacheGroupsController = function(type, cacheGroups, $scope, locationUtils) {
+
+	$scope.type = type;
+
+	$scope.cacheGroups = cacheGroups;
+
+	$scope.editCacheGroup = function(id) {
+		locationUtils.navigateToPath('/configure/cache-groups/' + id);
+	};
+
+	$scope.navigateToPath = locationUtils.navigateToPath;
+
+	angular.element(document).ready(function () {
+		$('#cacheGroupsTable').dataTable({
+			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+			"iDisplayLength": -1
+		});
+	});
+
+};
+
+TableTypeCacheGroupsController.$inject = ['type', 'cacheGroups', '$scope', 'locationUtils'];
+module.exports = TableTypeCacheGroupsController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/index.js
new file mode 100644
index 0000000..f0237ff
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/index.js
@@ -0,0 +1,22 @@
+
+/*
+ * 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.table.typeCacheGroups', [])
+	.controller('TableTypeCacheGroupsController', require('./TableTypeCacheGroupsController'));

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/table.typeCacheGroups.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/table.typeCacheGroups.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/table.typeCacheGroups.tpl.html
new file mode 100644
index 0000000..b3fafe3
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeCacheGroups/table.typeCacheGroups.tpl.html
@@ -0,0 +1,53 @@
+<!--
+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="x_panel">
+    <div class="x_title">
+        <ol class="breadcrumb pull-left">
+            <li><a ng-click="navigateToPath('/admin/types')">Types</a></li>
+            <li><a ng-click="navigateToPath('/admin/types/' + type.id)">{{type.name}}</a></li>
+            <li class="active">Cache Groups</li>
+        </ol>
+        <div class="clearfix"></div>
+    </div>
+    <div class="x_content">
+        <br>
+        <table id="cacheGroupsTable" class="table responsive-utilities jambo_table">
+            <thead>
+            <tr class="headings">
+                <th>name</th>
+                <th>shortName</th>
+                <th>type</th>
+                <th>latitude</th>
+                <th>longitude</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-click="editCacheGroup(cacheGroup.id)" ng-repeat="cacheGroup in cacheGroups">
+                <td>{{cacheGroup.name}}</td>
+                <td>{{cacheGroup.shortName}}</td>
+                <td>{{cacheGroup.typeName}}</td>
+                <td>{{cacheGroup.latitude}}</td>
+                <td>{{cacheGroup.longitude}}</td>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/TableTypeDeliveryServicesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/TableTypeDeliveryServicesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/TableTypeDeliveryServicesController.js
new file mode 100644
index 0000000..4720047
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/TableTypeDeliveryServicesController.js
@@ -0,0 +1,42 @@
+/*
+ * 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 TableTypeDeliveryServicesController = function(type, deliveryServices, $scope, locationUtils) {
+
+	$scope.type = type;
+
+	$scope.deliveryServices = deliveryServices;
+
+	$scope.editDeliveryServices = function(id) {
+		locationUtils.navigateToPath('/configure/delivery-services/' + id);
+	};
+
+	$scope.navigateToPath = locationUtils.navigateToPath;
+
+	angular.element(document).ready(function () {
+		$('#deliveryServicesTable').dataTable({
+			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+			"iDisplayLength": -1
+		});
+	});
+
+};
+
+TableTypeDeliveryServicesController.$inject = ['type', 'deliveryServices', '$scope', 'locationUtils'];
+module.exports = TableTypeDeliveryServicesController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/index.js
new file mode 100644
index 0000000..7c90933
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/index.js
@@ -0,0 +1,22 @@
+
+/*
+ * 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.table.typeDeliveryServices', [])
+	.controller('TableTypeDeliveryServicesController', require('./TableTypeDeliveryServicesController'));

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/table.typeDeliveryServices.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/table.typeDeliveryServices.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/table.typeDeliveryServices.tpl.html
new file mode 100644
index 0000000..4bc2437
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeDeliveryServices/table.typeDeliveryServices.tpl.html
@@ -0,0 +1,71 @@
+<!--
+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="x_panel">
+    <div class="x_title">
+        <ol class="breadcrumb pull-left">
+            <li><a ng-click="navigateToPath('/admin/types')">Types</a></li>
+            <li><a ng-click="navigateToPath('/admin/types/' + type.id)">{{type.name}}</a></li>
+            <li class="active">Delivery Services</li>
+        </ol>
+        <div class="clearfix"></div>
+    </div>
+    <div class="x_content">
+        <br>
+        <table id="deliveryServicesTable" class="table responsive-utilities jambo_table">
+            <thead>
+            <tr class="headings">
+                <th>xmlId</th>
+                <th>orgServerFqdn</th>
+                <th>cdn</th>
+                <th>profile</th>
+                <th>ccrDnsTtl</th>
+                <th>active</th>
+                <th>type</th>
+                <th>dscp</th>
+                <th>signed</th>
+                <th>qstringIgnore</th>
+                <th>geoLimit</th>
+                <th>protocol</th>
+                <th>ipv6RoutingEnabled</th>
+                <th>rangeRequestHandling</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-click="editDeliveryService(deliveryService.id)" ng-repeat="deliveryService in deliveryServices">
+                <td>{{deliveryService.xmlId}}</td>
+                <td>{{deliveryService.orgServerFqdn}}</td>
+                <td>{{deliveryService.cdnName}}</td>
+                <td>{{deliveryService.profileName}}</td>
+                <td>{{deliveryService.ccrDnsTtl}}</td>
+                <td>{{deliveryService.active}}</td>
+                <td>{{deliveryService.type}}</td>
+                <td>{{deliveryService.dscp}}</td>
+                <td>{{deliveryService.signed}}</td>
+                <td>{{deliveryService.qstringIgnore}}</td>
+                <td>{{deliveryService.geoLimit}}</td>
+                <td>{{deliveryService.protocol}}</td>
+                <td>{{deliveryService.ipv6RoutingEnabled}}</td>
+                <td>{{deliveryService.rangeRequestHandling}}</td>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/TableTypeServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/TableTypeServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/TableTypeServersController.js
new file mode 100644
index 0000000..3b58dbf
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/TableTypeServersController.js
@@ -0,0 +1,42 @@
+/*
+ * 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 TableTypeServersController = function(type, servers, $scope, locationUtils) {
+
+	$scope.type = type;
+
+	$scope.servers = servers;
+
+	$scope.editServer = function(id) {
+		locationUtils.navigateToPath('/configure/servers/' + id);
+	};
+
+	$scope.navigateToPath = locationUtils.navigateToPath;
+
+	angular.element(document).ready(function () {
+		$('#serversTable').dataTable({
+			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+			"iDisplayLength": 100
+		});
+	});
+
+};
+
+TableTypeServersController.$inject = ['type', 'servers', '$scope', 'locationUtils'];
+module.exports = TableTypeServersController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/index.js
new file mode 100644
index 0000000..45d23c9
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/index.js
@@ -0,0 +1,22 @@
+
+/*
+ * 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.table.typeServers', [])
+	.controller('TableTypeServersController', require('./TableTypeServersController'));

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/table.typeServers.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/table.typeServers.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/table.typeServers.tpl.html
new file mode 100644
index 0000000..90cb997
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeServers/table.typeServers.tpl.html
@@ -0,0 +1,69 @@
+<!--
+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="x_panel">
+    <div class="x_title">
+        <ol class="breadcrumb pull-left">
+            <li><a ng-click="navigateToPath('/admin/types')">Types</a></li>
+            <li><a ng-click="navigateToPath('/admin/types/' + type.id)">{{type.name}}</a></li>
+            <li class="active">Servers</li>
+        </ol>
+        <div class="clearfix"></div>
+    </div>
+    <div class="x_content">
+        <br>
+        <table id="serversTable" class="table responsive-utilities jambo_table">
+            <thead>
+            <tr class="headings">
+                <th>Update?</th>
+                <th>hostName</th>
+                <th>domainName</th>
+                <th>cdn</th>
+                <th>cachegroup</th>
+                <th>type</th>
+                <th>location</th>
+                <th>ipAddress</th>
+                <th>ip6Address</th>
+                <th>status</th>
+                <th>profile</th>
+                <th>iloIpAddress</th>
+                <th>iloIpGateway</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-click="editServer(server.id)" ng-repeat="server in servers" ng-class="{'active': server.updPending}">
+                <td>{{server.updPending}}</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.status}}</td>
+                <td>{{server.profile}}</td>
+                <td>{{server.iloIpAddress}}</td>
+                <td>{{server.iloIpGateway}}</td>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/types/table.types.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/types/table.types.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/types/table.types.tpl.html
index 621800f..5d3ef35 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/types/table.types.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/types/table.types.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Types</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createType()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createType()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create Type</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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 0709409..9cb4c57 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
@@ -24,8 +24,7 @@ under the License.
             <li><a ng-click="navigateToPath('/admin/users/' + user.id)">{{user.username}}</a></li>
             <li class="active">Delivery Services</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="addDeliveryService()">Add</button>
-
+        <button class="btn btn-primary pull-right" ng-click="addDeliveryService()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Add Delivery Services To User</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/modules/table/users/table.users.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/users/table.users.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/users/table.users.tpl.html
index 51f3d39..282159f 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/users/table.users.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/users/table.users.tpl.html
@@ -22,7 +22,7 @@ under the License.
         <ol class="breadcrumb pull-left">
             <li class="active">Users</li>
         </ol>
-        <button class="btn btn-primary pull-right" ng-click="createUser()">New</button>
+        <button class="btn btn-primary pull-right" ng-click="createUser()"><i class="fa fa-plus"></i>&nbsp;&nbsp; Create User</button>
         <div class="clearfix"></div>
     </div>
     <div class="x_content">

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/common/service/utils/FormUtils.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/service/utils/FormUtils.js b/traffic_ops/experimental/ui/app/src/common/service/utils/FormUtils.js
index 1c2d85b..e930043 100644
--- a/traffic_ops/experimental/ui/app/src/common/service/utils/FormUtils.js
+++ b/traffic_ops/experimental/ui/app/src/common/service/utils/FormUtils.js
@@ -20,11 +20,11 @@
 var FormUtils = function() {
 
     this.hasError = function(input) {
-        return !input.$focused && input.$dirty && input.$invalid;
+        return input && !input.$focused && input.$dirty && input.$invalid;
     };
 
     this.hasPropertyError = function(input, property) {
-        return !input.$focused && input.$dirty && input.$error[property];
+        return input && !input.$focused && input.$dirty && input.$error[property];
     };
 
 };

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/deliveryServices/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/deliveryServices/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/deliveryServices/index.js
index 88bf7e5..a582378 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/deliveryServices/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/deliveryServices/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.admin.cdns.deliveryServices'
 							cdn: function($stateParams, cdnService) {
 								return cdnService.getCDN($stateParams.cdnId);
 							},
-							deliveryServices: function(deliveryServiceService) {
-								return deliveryServiceService.getDeliveryServices();
+							deliveryServices: function($stateParams, deliveryServiceService) {
+								return deliveryServiceService.getDeliveryServices({ cdn: $stateParams.cdnId });
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/servers/index.js
index 30c228a..d969b3d 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/servers/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/cdns/servers/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.admin.cdns.servers', [])
 							cdn: function($stateParams, cdnService) {
 								return cdnService.getCDN($stateParams.cdnId);
 							},
-							servers: function(serverService) {
-								return serverService.getServers();
+							servers: function($stateParams, serverService) {
+								return serverService.getServers({ cdn: $stateParams.cdnId });
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/divisions/regions/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/divisions/regions/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/divisions/regions/index.js
index 76a2608..8e75ec1 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/divisions/regions/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/divisions/regions/index.js
@@ -31,7 +31,7 @@ module.exports = angular.module('trafficOps.private.admin.divisions.regions', []
 								return divisionService.getDivision($stateParams.divisionId);
 							},
 							divisionRegions: function($stateParams, regionService) {
-								return regionService.getRegions();
+								return regionService.getRegions({ division: $stateParams.divisionId });
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/parameters/profiles/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/parameters/profiles/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/parameters/profiles/index.js
new file mode 100644
index 0000000..8b63900
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/parameters/profiles/index.js
@@ -0,0 +1,42 @@
+/*
+ * 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.admin.parameters.profiles', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.admin.parameters.profiles', {
+				url: '/{parameterId}/profiles',
+				views: {
+					parametersContent: {
+						templateUrl: 'common/modules/table/parameterProfiles/table.parameterProfiles.tpl.html',
+						controller: 'TableParameterProfilesController',
+						resolve: {
+							parameter: function($stateParams, parameterService) {
+								return parameterService.getParameter($stateParams.parameterId);
+							},
+							parameterProfiles: function($stateParams, profileService) {
+								return profileService.getParameterProfiles($stateParams.parameterId);
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/physLocations/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/physLocations/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/physLocations/servers/index.js
index 111d6c1..42339a0 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/physLocations/servers/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/physLocations/servers/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.admin.physLocations.servers'
 							physLocation: function($stateParams, physLocationService) {
 								return physLocationService.getPhysLocation($stateParams.physLocationId);
 							},
-							servers: function(serverService) {
-								return serverService.getServers();
+							servers: function($stateParams, serverService) {
+								return serverService.getServers({ physLocation: $stateParams.physLocationId });
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/parameters/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/parameters/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/parameters/index.js
index 0c9e476..d0fba62 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/parameters/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/parameters/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.admin.profiles.parameters',
 							profile: function($stateParams, profileService) {
 								return profileService.getProfile($stateParams.profileId);
 							},
-							profileParameters: function($stateParams, profileParameterService) {
-								return profileParameterService.getProfileParameters($stateParams.profileId);
+							profileParameters: function($stateParams, parameterService) {
+								return parameterService.getProfileParameters($stateParams.profileId);
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/servers/index.js
index 8900ea6..5eb3b0e 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/servers/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/profiles/servers/index.js
@@ -31,7 +31,7 @@ module.exports = angular.module('trafficOps.private.admin.profiles.servers', [])
 								return profileService.getProfile($stateParams.profileId);
 							},
 							servers: function($stateParams, serverService) {
-								return serverService.getServers(null, $stateParams.profileId);
+								return serverService.getServers({ profileId: $stateParams.profileId });
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/regions/physLocations/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/regions/physLocations/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/regions/physLocations/index.js
index 4973a47..255c0b3 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/regions/physLocations/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/regions/physLocations/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.admin.regions.physLocations'
 							region: function($stateParams, regionService) {
 								return regionService.getRegion($stateParams.regionId);
 							},
-							physLocations: function(physLocationService) {
-								return physLocationService.getPhysLocations();
+							physLocations: function($stateParams, physLocationService) {
+								return physLocationService.getPhysLocations({ region: $stateParams.regionId });
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/statuses/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/statuses/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/statuses/servers/index.js
new file mode 100644
index 0000000..d60cb23
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/statuses/servers/index.js
@@ -0,0 +1,42 @@
+/*
+ * 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.admin.statuses.servers', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.admin.statuses.servers', {
+				url: '/{statusId}/servers',
+				views: {
+					statusesContent: {
+						templateUrl: 'common/modules/table/statusServers/table.statusServers.tpl.html',
+						controller: 'TableStatusServersController',
+						resolve: {
+							status: function($stateParams, statusService) {
+								return statusService.getStatus($stateParams.statusId);
+							},
+							servers: function(status, serverService) {
+								return serverService.getServers({ status: status.name });
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/types/cacheGroups/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/types/cacheGroups/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/types/cacheGroups/index.js
new file mode 100644
index 0000000..02991eb
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/types/cacheGroups/index.js
@@ -0,0 +1,42 @@
+/*
+ * 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.admin.types.cacheGroups', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.admin.types.cacheGroups', {
+				url: '/{typeId}/cache-groups',
+				views: {
+					typesContent: {
+						templateUrl: 'common/modules/table/typeCacheGroups/table.typeCacheGroups.tpl.html',
+						controller: 'TableTypeCacheGroupsController',
+						resolve: {
+							type: function($stateParams, typeService) {
+								return typeService.getType($stateParams.typeId);
+							},
+							cacheGroups: function($stateParams, cacheGroupService) {
+								return cacheGroupService.getCacheGroups({ type: $stateParams.typeId });
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/types/deliveryServices/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/types/deliveryServices/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/types/deliveryServices/index.js
new file mode 100644
index 0000000..12160b8
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/types/deliveryServices/index.js
@@ -0,0 +1,42 @@
+/*
+ * 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.admin.types.deliveryServices', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.admin.types.deliveryServices', {
+				url: '/{typeId}/delivery-services',
+				views: {
+					typesContent: {
+						templateUrl: 'common/modules/table/typeDeliveryServices/table.typeDeliveryServices.tpl.html',
+						controller: 'TableTypeDeliveryServicesController',
+						resolve: {
+							type: function($stateParams, typeService) {
+								return typeService.getType($stateParams.typeId);
+							},
+							deliveryServices: function($stateParams, deliveryServiceService) {
+								return deliveryServiceService.getDeliveryServices({ type: $stateParams.typeId });
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/types/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/types/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/types/servers/index.js
new file mode 100644
index 0000000..4ad0926
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/types/servers/index.js
@@ -0,0 +1,42 @@
+/*
+ * 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.admin.types.servers', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.admin.types.servers', {
+				url: '/{typeId}/servers',
+				views: {
+					typesContent: {
+						templateUrl: 'common/modules/table/typeServers/table.typeServers.tpl.html',
+						controller: 'TableTypeServersController',
+						resolve: {
+							type: function($stateParams, typeService) {
+								return typeService.getType($stateParams.typeId);
+							},
+							servers: function(type, serverService) {
+								return serverService.getServers({ type: type.name });
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/admin/users/deliveryServices/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/users/deliveryServices/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/users/deliveryServices/index.js
index ccf0535..de353bb 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/admin/users/deliveryServices/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/users/deliveryServices/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.admin.users.deliveryServices
 							user: function($stateParams, userService) {
 								return userService.getUser($stateParams.userId);
 							},
-							userDeliveryServices: function(deliveryServiceService) {
-								return deliveryServiceService.getDeliveryServices();
+							userDeliveryServices: function($stateParams, deliveryServiceService) {
+								return deliveryServiceService.getUserDeliveryServices($stateParams.userId);
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/asns/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/asns/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/asns/index.js
new file mode 100644
index 0000000..5dc57e3
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/asns/index.js
@@ -0,0 +1,42 @@
+/*
+ * 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.configure.cacheGroups.asns', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.configure.cacheGroups.asns', {
+				url: '/{cacheGroupId}/asns',
+				views: {
+					cacheGroupsContent: {
+						templateUrl: 'common/modules/table/cacheGroupAsns/table.cacheGroupAsns.tpl.html',
+						controller: 'TableCacheGroupAsnsController',
+						resolve: {
+							cacheGroup: function($stateParams, cacheGroupService) {
+								return cacheGroupService.getCacheGroup($stateParams.cacheGroupId);
+							},
+							asns: function($stateParams, asnService) {
+								return asnService.getASNs({ cachegroup: $stateParams.cacheGroupId });
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/parameters/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/parameters/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/parameters/index.js
index 5cf20c5..a77b7f8 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/parameters/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/parameters/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.configure.cacheGroups.parame
 							cacheGroup: function($stateParams, cacheGroupService) {
 								return cacheGroupService.getCacheGroup($stateParams.cacheGroupId);
 							},
-							parameters: function(parameterService) {
-								return parameterService.getParameters();
+							cacheGroupParameters: function($stateParams, cacheGroupParameterService) {
+								return cacheGroupParameterService.getCacheGroupParameters($stateParams.cacheGroupId);
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/servers/index.js
index c47ca07..b63981d 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/servers/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/cacheGroups/servers/index.js
@@ -30,8 +30,8 @@ module.exports = angular.module('trafficOps.private.configure.cacheGroups.server
 							cacheGroup: function($stateParams, cacheGroupService) {
 								return cacheGroupService.getCacheGroup($stateParams.cacheGroupId);
 							},
-							servers: function(serverService) {
-								return serverService.getServers();
+							servers: function($stateParams, serverService) {
+								return serverService.getServers({ cachegroup: $stateParams.cacheGroupId });
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
index 5248c8a..4b6bf57 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/deliveryServices/servers/index.js
@@ -31,7 +31,7 @@ module.exports = angular.module('trafficOps.private.configure.deliveryServices.s
 								return deliveryServiceService.getDeliveryService($stateParams.deliveryServiceId);
 							},
 							servers: function($stateParams, serverService) {
-								return serverService.getServers($stateParams.deliveryServiceId);
+								return serverService.getDeliveryServiceServers($stateParams.deliveryServiceId);
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/private/configure/servers/deliveryServices/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/configure/servers/deliveryServices/index.js b/traffic_ops/experimental/ui/app/src/modules/private/configure/servers/deliveryServices/index.js
index 2f96a7f..90ab145 100644
--- a/traffic_ops/experimental/ui/app/src/modules/private/configure/servers/deliveryServices/index.js
+++ b/traffic_ops/experimental/ui/app/src/modules/private/configure/servers/deliveryServices/index.js
@@ -31,7 +31,7 @@ module.exports = angular.module('trafficOps.private.configure.servers.deliverySe
 								return serverService.getServer($stateParams.serverId);
 							},
 							serverDeliveryServices: function(deliveryServiceService) {
-								return deliveryServiceService.getDeliveryServices();
+								return deliveryServiceService.getServerDeliveryServices();
 							}
 						}
 					}

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/traffic_ops/experimental/ui/app/src/modules/public/login/login.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/public/login/login.tpl.html b/traffic_ops/experimental/ui/app/src/modules/public/login/login.tpl.html
index 8570673..a2a1c0f 100644
--- a/traffic_ops/experimental/ui/app/src/modules/public/login/login.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/modules/public/login/login.tpl.html
@@ -42,7 +42,7 @@ under the License.
                     <div class="ln_solid"></div>
                     <div class="form-group">
                         <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
-                            <button type="submit" class="btn btn-primary" ng-disabled="loginForm.$invalid">Log in &nbsp;&nbsp;<i class="fa fa-chevron-circle-right fa-lg"></i></button>
+                            <button type="submit" class="btn btn-primary" ng-disabled="loginForm.$invalid">Log in &nbsp;&nbsp;<i class="fa fa-chevron-circle-right"></i></button>
                             <button type="button" class="btn btn-link" ng-click="resetPassword()">Reset Password</button>
                         </div>
                     </div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/d69e9415/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 a2e2e61..eda4be5 100755
--- a/traffic_ops/experimental/ui/app/src/styles/main.scss
+++ b/traffic_ops/experimental/ui/app/src/styles/main.scss
@@ -682,6 +682,11 @@ h2 {
   button {
     margin: 8px 6px 4px 0;
   }
+
+  .btn-group {
+    margin-top: -4px;
+  }
+
 }
 
 .x_title .filter {