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/04/19 22:11:18 UTC

[1/4] incubator-trafficcontrol git commit: adds a column for relative time to change logs table

Repository: incubator-trafficcontrol
Updated Branches:
  refs/heads/master b31c9bffd -> 49a75238c


adds a column for relative time to change logs table


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

Branch: refs/heads/master
Commit: 49a75238cffb4789cedff5385cd9324923f278c8
Parents: 0cc4f75
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Tue Apr 18 20:44:17 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Wed Apr 19 16:10:40 2017 -0600

----------------------------------------------------------------------
 .../modules/table/changeLogs/TableChangeLogsController.js    | 4 ++++
 .../modules/table/changeLogs/table.changeLogs.tpl.html       | 8 +++++---
 2 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/49a75238/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js
index deb7021..18a5cd9 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js
@@ -21,6 +21,10 @@ var TableChangeLogsController = function(changeLogs, $scope, $state, locationUti
 
 	$scope.changeLogs = changeLogs;
 
+	$scope.getRelativeTime = function(date) {
+		return moment(date).fromNow();
+	};
+
 	$scope.refresh = function() {
 		$state.reload(); // reloads all the resolves for the view
 	};

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/49a75238/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html
index b4fd92e..81a913a 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html
@@ -32,18 +32,20 @@ under the License.
         <table id="changeLogsTable" class="table responsive-utilities jambo_table">
             <thead>
             <tr class="headings">
-                <th>time</th>
+                <th>occurred</th>
+                <th>timestamp (UTC)</th>
+                <th>user</th>
                 <th>type</th>
                 <th>message</th>
-                <th>user</th>
             </tr>
             </thead>
             <tbody>
             <tr ng-repeat="changeLog in changeLogs">
+                <td>{{getRelativeTime(changeLog.lastUpdated)}}</td>
                 <td>{{changeLog.lastUpdated}}</td>
+                <td>{{changeLog.user}}</td>
                 <td>{{changeLog.level}}</td>
                 <td>{{changeLog.message}}</td>
-                <td>{{changeLog.user}}</td>
             </tr>
             </tbody>
         </table>


[3/4] incubator-trafficcontrol git commit: should be limit not rows

Posted by da...@apache.org.
should be limit not rows


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

Branch: refs/heads/master
Commit: 0cc4f75536045c6bc1b746c37428c10fcbc8ac41
Parents: ba5055c
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Tue Apr 18 20:33:15 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Wed Apr 19 16:10:40 2017 -0600

----------------------------------------------------------------------
 .../ui/app/src/common/modules/header/HeaderController.js           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/0cc4f755/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js b/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
index 7d08c2a..90f9b51 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
@@ -38,7 +38,7 @@ var HeaderController = function($rootScope, $scope, $log, $state, $anchorScroll,
 
     $scope.getChangeLogs = function() {
         $scope.changeLogs = [];
-        changeLogService.getChangeLogs({ rows: 6 })
+        changeLogService.getChangeLogs({ limit: 6 })
             .then(function(response) {
                 $scope.changeLogs = response;
             });


[2/4] incubator-trafficcontrol git commit: preserves the sort order provided from the api

Posted by da...@apache.org.
preserves the sort order provided from the api


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

Branch: refs/heads/master
Commit: ba5055cf6c3efbefd29dd43bda3e1a19ce39f9b1
Parents: 40877b3
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Tue Apr 18 20:31:25 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Wed Apr 19 16:10:40 2017 -0600

----------------------------------------------------------------------
 .../ui/app/src/common/modules/table/asns/TableASNsController.js   | 3 ++-
 .../modules/table/cacheGroupAsns/TableCacheGroupAsnsController.js | 3 ++-
 .../cacheGroupParameters/TableCacheGroupParametersController.js   | 3 ++-
 .../table/cacheGroupServers/TableCacheGroupServersController.js   | 3 ++-
 .../TableCacheGroupStaticDnsEntriesController.js                  | 3 ++-
 .../modules/table/cacheGroups/TableCacheGroupsController.js       | 3 ++-
 .../cdnDeliveryServices/TableCDNDeliveryServicesController.js     | 3 ++-
 .../modules/table/cdnProfiles/TableCDNProfilesController.js       | 3 ++-
 .../common/modules/table/cdnServers/TableCDNServersController.js  | 3 ++-
 .../ui/app/src/common/modules/table/cdns/TableCDNsController.js   | 3 ++-
 .../deliveryServiceJobs/TableDeliveryServiceJobsController.js     | 3 ++-
 .../TableDeliveryServiceRegexesController.js                      | 3 ++-
 .../TableDeliveryServiceServersController.js                      | 3 ++-
 .../TableDeliveryServiceStaticDnsEntriesController.js             | 3 ++-
 .../deliveryServiceUsers/TableDeliveryServiceUsersController.js   | 3 ++-
 .../table/deliveryServices/TableDeliveryServicesController.js     | 3 ++-
 .../table/divisionRegions/TableDivisionRegionsController.js       | 3 ++-
 .../common/modules/table/divisions/TableDivisionsController.js    | 3 ++-
 .../ui/app/src/common/modules/table/jobs/TableJobsController.js   | 3 ++-
 .../parameterCacheGroups/TableParameterCacheGroupsController.js   | 3 ++-
 .../table/parameterProfiles/TableParameterProfilesController.js   | 3 ++-
 .../common/modules/table/parameters/TableParametersController.js  | 3 ++-
 .../physLocationServers/TablePhysLocationServersController.js     | 3 ++-
 .../modules/table/physLocations/TablePhysLocationsController.js   | 3 ++-
 .../TableProfileDeliveryServicesController.js                     | 3 ++-
 .../table/profileParameters/TableProfileParametersController.js   | 3 ++-
 .../modules/table/profileServers/TableProfileServersController.js | 3 ++-
 .../src/common/modules/table/profiles/TableProfilesController.js  | 3 ++-
 .../regionPhysLocations/TableRegionPhysLocationsController.js     | 3 ++-
 .../src/common/modules/table/regions/TableRegionsController.js    | 3 ++-
 .../TableServerDeliveryServicesController.js                      | 3 ++-
 .../src/common/modules/table/servers/TableServersController.js    | 3 ++-
 .../modules/table/statusServers/TableStatusServersController.js   | 3 ++-
 .../src/common/modules/table/statuses/TableStatusesController.js  | 3 ++-
 .../src/common/modules/table/tenants/TableTenantsController.js    | 3 ++-
 .../table/typeCacheGroups/TableTypeCacheGroupsController.js       | 3 ++-
 .../typeDeliveryServices/TableTypeDeliveryServicesController.js   | 3 ++-
 .../modules/table/typeServers/TableTypeServersController.js       | 3 ++-
 .../typeStaticDnsEntries/TableTypeStaticDnsEntriesController.js   | 3 ++-
 .../ui/app/src/common/modules/table/types/TableTypesController.js | 3 ++-
 .../userDeliveryServices/TableUserDeliveryServicesController.js   | 3 ++-
 .../ui/app/src/common/modules/table/users/TableUsersController.js | 3 ++-
 42 files changed, 84 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/asns/TableASNsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/asns/TableASNsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/asns/TableASNsController.js
index 9bd4e87..0b0489f 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/asns/TableASNsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/asns/TableASNsController.js
@@ -36,7 +36,8 @@ var TableASNsController = function(asns, $scope, $state, locationUtils) {
     angular.element(document).ready(function () {
         $('#asnsTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupAsns/TableCacheGroupAsnsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupAsns/TableCacheGroupAsnsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupAsns/TableCacheGroupAsnsController.js
index 770b64a..2a31fa1 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupAsns/TableCacheGroupAsnsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupAsns/TableCacheGroupAsnsController.js
@@ -36,7 +36,8 @@ var TableCacheGroupAsnsController = function(cacheGroup, asns, $scope, $state, l
 	angular.element(document).ready(function () {
 		$('#parametersTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/TableCacheGroupParametersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/TableCacheGroupParametersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/TableCacheGroupParametersController.js
index c8a4c33..032154d 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/TableCacheGroupParametersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupParameters/TableCacheGroupParametersController.js
@@ -40,7 +40,8 @@ var TableCacheGroupParametersController = function(cacheGroup, cacheGroupParamet
 	angular.element(document).ready(function () {
 		$('#parametersTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
index 9a97660..4652479 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupServers/TableCacheGroupServersController.js
@@ -108,7 +108,8 @@ var TableCacheGroupsServersController = function(cacheGroup, servers, $scope, $s
 	angular.element(document).ready(function () {
 		$('#serversTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupStaticDnsEntries/TableCacheGroupStaticDnsEntriesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupStaticDnsEntries/TableCacheGroupStaticDnsEntriesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupStaticDnsEntries/TableCacheGroupStaticDnsEntriesController.js
index d432da6..87e6ef2 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupStaticDnsEntries/TableCacheGroupStaticDnsEntriesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroupStaticDnsEntries/TableCacheGroupStaticDnsEntriesController.js
@@ -32,7 +32,8 @@ var TableCacheGroupsStaticDnsEntriesController = function(cacheGroup, staticDnsE
 	angular.element(document).ready(function () {
 		$('#staticDnsEntriesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/TableCacheGroupsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/TableCacheGroupsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/TableCacheGroupsController.js
index d00fa91..053d0d4 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/TableCacheGroupsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cacheGroups/TableCacheGroupsController.js
@@ -36,7 +36,8 @@ var TableCacheGroupsController = function(cacheGroups, $scope, $state, locationU
     angular.element(document).ready(function () {
         $('#cacheGroupsTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cdnDeliveryServices/TableCDNDeliveryServicesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnDeliveryServices/TableCDNDeliveryServicesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnDeliveryServices/TableCDNDeliveryServicesController.js
index 1ed061c..2cb1327 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnDeliveryServices/TableCDNDeliveryServicesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnDeliveryServices/TableCDNDeliveryServicesController.js
@@ -36,7 +36,8 @@ var TableCDNDeliveryServicesController = function(cdn, deliveryServices, $scope,
 	angular.element(document).ready(function () {
 		$('#deliveryServicesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cdnProfiles/TableCDNProfilesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnProfiles/TableCDNProfilesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnProfiles/TableCDNProfilesController.js
index 9a093bb..ccb04c8 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnProfiles/TableCDNProfilesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnProfiles/TableCDNProfilesController.js
@@ -36,7 +36,8 @@ var TableCDNProfilesController = function(cdn, profiles, $scope, $state, locatio
 	angular.element(document).ready(function () {
 		$('#profilesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/TableCDNServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/TableCDNServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/TableCDNServersController.js
index 787bf37..cfb36c0 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/TableCDNServersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cdnServers/TableCDNServersController.js
@@ -58,7 +58,8 @@ var TableCDNServersController = function(cdn, servers, $scope, $state, locationU
 	angular.element(document).ready(function () {
 		$('#serversTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/cdns/TableCDNsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/cdns/TableCDNsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/cdns/TableCDNsController.js
index e9ce432..6ce5b19 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/cdns/TableCDNsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/cdns/TableCDNsController.js
@@ -36,7 +36,8 @@ var TableCDNsController = function(cdns, $scope, $state, locationUtils) {
     angular.element(document).ready(function () {
         $('#cdnsTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js
index 93e263e..c5327ae 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceJobs/TableDeliveryServiceJobsController.js
@@ -36,7 +36,8 @@ var TableDeliveryServiceJobsController = function(deliveryService, jobs, $scope,
 	angular.element(document).ready(function () {
 		$('#dsJobsTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/TableDeliveryServiceRegexesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/TableDeliveryServiceRegexesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/TableDeliveryServiceRegexesController.js
index eb61cb3..d08e930 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/TableDeliveryServiceRegexesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceRegexes/TableDeliveryServiceRegexesController.js
@@ -40,7 +40,8 @@ var TableDeliveryServiceRegexesController = function(deliveryService, regexes, $
 	angular.element(document).ready(function () {
 		$('#regexesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
index 805fbea..405a7fb 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceServers/TableDeliveryServiceServersController.js
@@ -44,7 +44,8 @@ var TableDeliveryServiceServersController = function(deliveryService, servers, $
 	angular.element(document).ready(function () {
 		$('#serversTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceStaticDnsEntries/TableDeliveryServiceStaticDnsEntriesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceStaticDnsEntries/TableDeliveryServiceStaticDnsEntriesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceStaticDnsEntries/TableDeliveryServiceStaticDnsEntriesController.js
index db528fc..24013ae 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceStaticDnsEntries/TableDeliveryServiceStaticDnsEntriesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceStaticDnsEntries/TableDeliveryServiceStaticDnsEntriesController.js
@@ -32,7 +32,8 @@ var TableDeliveryServiceStaticDnsEntriesController = function(deliveryService, s
 	angular.element(document).ready(function () {
 		$('#staticDnsEntriesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceUsers/TableDeliveryServiceUsersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceUsers/TableDeliveryServiceUsersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceUsers/TableDeliveryServiceUsersController.js
index 72a790c..253285d 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceUsers/TableDeliveryServiceUsersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServiceUsers/TableDeliveryServiceUsersController.js
@@ -44,7 +44,8 @@ var TableDeliveryServiceUsersController = function(deliveryService, users, $scop
 	angular.element(document).ready(function () {
 		$('#usersTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/TableDeliveryServicesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/TableDeliveryServicesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/TableDeliveryServicesController.js
index 2ca44b5..9e92a70 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/TableDeliveryServicesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/deliveryServices/TableDeliveryServicesController.js
@@ -36,7 +36,8 @@ var TableDeliveryServicesController = function(deliveryServices, $scope, $state,
     angular.element(document).ready(function () {
         $('#deliveryServicesTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/divisionRegions/TableDivisionRegionsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/divisionRegions/TableDivisionRegionsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/divisionRegions/TableDivisionRegionsController.js
index c631609..e09ee5e 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/divisionRegions/TableDivisionRegionsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/divisionRegions/TableDivisionRegionsController.js
@@ -36,7 +36,8 @@ var TableDivisionRegionsController = function(division, divisionRegions, $scope,
 	angular.element(document).ready(function () {
 		$('#regionsTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/TableDivisionsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/TableDivisionsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/TableDivisionsController.js
index 70f1cd3..3c168cf 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/TableDivisionsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/divisions/TableDivisionsController.js
@@ -36,7 +36,8 @@ var TableDivisionsController = function(divisions, $scope, $state, locationUtils
     angular.element(document).ready(function () {
         $('#divisionsTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js
index f9edec3..4b708d4 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/jobs/TableJobsController.js
@@ -32,7 +32,8 @@ var TableJobsController = function(jobs, $scope, $state, locationUtils) {
 	angular.element(document).ready(function () {
 		$('#jobsTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 25
+			"iDisplayLength": 25,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/parameterCacheGroups/TableParameterCacheGroupsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/parameterCacheGroups/TableParameterCacheGroupsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterCacheGroups/TableParameterCacheGroupsController.js
index ce4c855..28914d0 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/parameterCacheGroups/TableParameterCacheGroupsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/parameterCacheGroups/TableParameterCacheGroupsController.js
@@ -40,7 +40,8 @@ var TableParameterCacheGroupsController = function(parameter, cacheGroups, $scop
 	angular.element(document).ready(function () {
 		$('#cacheGroupsTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/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
index 06d341a..92b6a0b 100644
--- 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
@@ -40,7 +40,8 @@ var TableParameterProfilesController = function(parameter, parameterProfiles, $s
 	angular.element(document).ready(function () {
 		$('#parameterProfilesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/TableParametersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/TableParametersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/TableParametersController.js
index 93af3b0..573a5be 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/TableParametersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/parameters/TableParametersController.js
@@ -36,7 +36,8 @@ var TableParametersController = function(parameters, $scope, $state, locationUti
     angular.element(document).ready(function () {
         $('#parametersTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": 100
+            "iDisplayLength": 100,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/physLocationServers/TablePhysLocationServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/physLocationServers/TablePhysLocationServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/physLocationServers/TablePhysLocationServersController.js
index 3af755c..205c71b 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/physLocationServers/TablePhysLocationServersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/physLocationServers/TablePhysLocationServersController.js
@@ -40,7 +40,8 @@ var TablePhysLocationServersController = function(physLocation, servers, $scope,
 	angular.element(document).ready(function () {
 		$('#serversTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/TablePhysLocationsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/TablePhysLocationsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/TablePhysLocationsController.js
index 0f12d26..eefc39a 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/TablePhysLocationsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/physLocations/TablePhysLocationsController.js
@@ -36,7 +36,8 @@ var TablePhysLocationsController = function(physLocations, $scope, $state, locat
     angular.element(document).ready(function () {
         $('#physLocationsTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/profileDeliveryServices/TableProfileDeliveryServicesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/profileDeliveryServices/TableProfileDeliveryServicesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/profileDeliveryServices/TableProfileDeliveryServicesController.js
index 8655d52..2d655f1 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/profileDeliveryServices/TableProfileDeliveryServicesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/profileDeliveryServices/TableProfileDeliveryServicesController.js
@@ -36,7 +36,8 @@ var TableProfileDeliveryServicesController = function(profile, deliveryServices,
 	angular.element(document).ready(function () {
 		$('#deliveryServicesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/TableProfileParametersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/TableProfileParametersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/TableProfileParametersController.js
index a87aa18..d35c696 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/TableProfileParametersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/profileParameters/TableProfileParametersController.js
@@ -40,7 +40,8 @@ var TableProfileParametersController = function(profile, profileParameters, $sco
 	angular.element(document).ready(function () {
 		$('#parametersTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/profileServers/TableProfileServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/profileServers/TableProfileServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/profileServers/TableProfileServersController.js
index f84699a..0e6bbef 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/profileServers/TableProfileServersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/profileServers/TableProfileServersController.js
@@ -40,7 +40,8 @@ var TableProfileServersController = function(profile, servers, $scope, $state, l
 	angular.element(document).ready(function () {
 		$('#serversTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/TableProfilesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/TableProfilesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/TableProfilesController.js
index 387b6d5..04ed8e6 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/TableProfilesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/profiles/TableProfilesController.js
@@ -44,7 +44,8 @@ var TableProfilesController = function(profiles, $scope, $state, locationUtils)
     angular.element(document).ready(function () {
         $('#profilesTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/regionPhysLocations/TableRegionPhysLocationsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/regionPhysLocations/TableRegionPhysLocationsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/regionPhysLocations/TableRegionPhysLocationsController.js
index 9dc82c8..0e80fe8 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/regionPhysLocations/TableRegionPhysLocationsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/regionPhysLocations/TableRegionPhysLocationsController.js
@@ -40,7 +40,8 @@ var TableRegionPhysLocationsController = function(region, physLocations, $scope,
 	angular.element(document).ready(function () {
 		$('#physLocationsTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/regions/TableRegionsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/regions/TableRegionsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/regions/TableRegionsController.js
index ea315b2..3e9438d 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/regions/TableRegionsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/regions/TableRegionsController.js
@@ -36,7 +36,8 @@ var TableRegionsController = function(regions, $scope, $state, locationUtils) {
     angular.element(document).ready(function () {
         $('#regionsTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/TableServerDeliveryServicesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/TableServerDeliveryServicesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/TableServerDeliveryServicesController.js
index 4943b41..5d99116 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/TableServerDeliveryServicesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/serverDeliveryServices/TableServerDeliveryServicesController.js
@@ -44,7 +44,8 @@ var TableServerDeliveryServicesController = function(server, serverDeliveryServi
 	angular.element(document).ready(function () {
 		$('#deliveryServicesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/servers/TableServersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/servers/TableServersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/servers/TableServersController.js
index 591bb10..a6bbf8b 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/servers/TableServersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/servers/TableServersController.js
@@ -113,7 +113,8 @@ var TableServersController = function(servers, $scope, $state, $uibModal, locati
     angular.element(document).ready(function () {
         $('#serversTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": 100
+            "iDisplayLength": 100,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/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
index dd06a76..b92b7f8 100644
--- 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
@@ -40,7 +40,8 @@ var TableStatusServersController = function(status, servers, $scope, $state, loc
 	angular.element(document).ready(function () {
 		$('#serversTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/TableStatusesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/TableStatusesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/TableStatusesController.js
index 5675ffc..0e8b5f8 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/TableStatusesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/statuses/TableStatusesController.js
@@ -36,7 +36,8 @@ var TableStatusesController = function(statuses, $scope, $state, locationUtils)
     angular.element(document).ready(function () {
         $('#statusesTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/TableTenantsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/TableTenantsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/TableTenantsController.js
index 2b042cf..5d997d5 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/TableTenantsController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/tenants/TableTenantsController.js
@@ -36,7 +36,8 @@ var TableTenantsController = function(tenants, $scope, $state, locationUtils) {
     angular.element(document).ready(function () {
         $('#tenantsTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/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
index 2eec22e..c85911b 100644
--- 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
@@ -36,7 +36,8 @@ var TableTypeCacheGroupsController = function(type, cacheGroups, $scope, $state,
 	angular.element(document).ready(function () {
 		$('#cacheGroupsTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/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
index dfd3ff7..0e0b0d2 100644
--- 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
@@ -36,7 +36,8 @@ var TableTypeDeliveryServicesController = function(type, deliveryServices, $scop
 	angular.element(document).ready(function () {
 		$('#deliveryServicesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/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
index 30f1fa4..28bf631 100644
--- 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
@@ -40,7 +40,8 @@ var TableTypeServersController = function(type, servers, $scope, $state, locatio
 	angular.element(document).ready(function () {
 		$('#serversTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/typeStaticDnsEntries/TableTypeStaticDnsEntriesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/typeStaticDnsEntries/TableTypeStaticDnsEntriesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/typeStaticDnsEntries/TableTypeStaticDnsEntriesController.js
index 42e779d..03faf48 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/typeStaticDnsEntries/TableTypeStaticDnsEntriesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/typeStaticDnsEntries/TableTypeStaticDnsEntriesController.js
@@ -32,7 +32,8 @@ var TableTypeStaticDnsEntriesController = function(type, staticDnsEntries, $scop
 	angular.element(document).ready(function () {
 		$('#staticDnsEntriesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": -1
+			"iDisplayLength": -1,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/types/TableTypesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/types/TableTypesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/types/TableTypesController.js
index 3d5fc11..93346f3 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/types/TableTypesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/types/TableTypesController.js
@@ -36,7 +36,8 @@ var TableTypesController = function(types, $scope, $state, locationUtils) {
     angular.element(document).ready(function () {
         $('#typesTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
index 22e4a54..57327d7 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
@@ -40,7 +40,8 @@ var TableUserDeliveryServicesController = function(user, userDeliveryServices, $
 	angular.element(document).ready(function () {
 		$('#deliveryServicesTable').dataTable({
 			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-			"iDisplayLength": 100
+			"iDisplayLength": 100,
+			"aaSorting": []
 		});
 	});
 

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ba5055cf/traffic_ops/experimental/ui/app/src/common/modules/table/users/TableUsersController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/users/TableUsersController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/users/TableUsersController.js
index 1da8493..029dfb9 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/users/TableUsersController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/users/TableUsersController.js
@@ -36,7 +36,8 @@ var TableUsersController = function(users, $scope, $state, locationUtils) {
     angular.element(document).ready(function () {
         $('#usersTable').dataTable({
             "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
-            "iDisplayLength": -1
+            "iDisplayLength": -1,
+            "aaSorting": []
         });
     });
 


[4/4] incubator-trafficcontrol git commit: adds change logs

Posted by da...@apache.org.
adds change logs


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

Branch: refs/heads/master
Commit: 40877b36c8608b8a107e688b666a0a16b65e434e
Parents: b31c9bf
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Fri Apr 14 08:09:16 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Wed Apr 19 16:10:40 2017 -0600

----------------------------------------------------------------------
 traffic_ops/experimental/ui/app/src/app.js      |  4 ++
 .../ui/app/src/common/api/ChangeLogService.js   | 35 +++++++++++++
 .../experimental/ui/app/src/common/api/index.js |  1 +
 .../common/modules/header/HeaderController.js   | 52 ++++++++++++++++++--
 .../src/common/modules/header/header.tpl.html   | 16 +++---
 .../changeLogs/TableChangeLogsController.js     | 39 +++++++++++++++
 .../common/modules/table/changeLogs/index.js    | 21 ++++++++
 .../table/changeLogs/table.changeLogs.tpl.html  | 52 ++++++++++++++++++++
 .../admin/changeLogs/ChangeLogsController.js    | 24 +++++++++
 .../admin/changeLogs/changeLogs.tpl.html        | 22 +++++++++
 .../modules/private/admin/changeLogs/index.js   | 36 ++++++++++++++
 .../private/admin/changeLogs/list/index.js      | 39 +++++++++++++++
 12 files changed, 330 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/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 d61b659..ac65eb3 100644
--- a/traffic_ops/experimental/ui/app/src/app.js
+++ b/traffic_ops/experimental/ui/app/src/app.js
@@ -64,6 +64,8 @@ var trafficOps = angular.module('trafficOps', [
         require('./modules/private/admin/cdns/new').name,
         require('./modules/private/admin/cdns/profiles').name,
         require('./modules/private/admin/cdns/servers').name,
+        require('./modules/private/admin/changeLogs').name,
+        require('./modules/private/admin/changeLogs/list').name,
         require('./modules/private/admin/divisions').name,
         require('./modules/private/admin/divisions/edit').name,
         require('./modules/private/admin/divisions/list').name,
@@ -224,6 +226,7 @@ var trafficOps = angular.module('trafficOps', [
         require('./common/modules/table/cacheGroupParameters').name,
         require('./common/modules/table/cacheGroupServers').name,
         require('./common/modules/table/cacheGroupStaticDnsEntries').name,
+        require('./common/modules/table/changeLogs').name,
         require('./common/modules/table/asns').name,
         require('./common/modules/table/cdns').name,
         require('./common/modules/table/cdnDeliveryServices').name,
@@ -283,6 +286,7 @@ var trafficOps = angular.module('trafficOps', [
             RestangularProvider.setBaseUrl(ENV.api['root']);
 
             RestangularProvider.setResponseInterceptor(function(data, operation, what) {
+
                 if (angular.isDefined(data.response)) { // todo: this should not be needed. need better solution.
                     if (operation == 'getList') {
                         return data.response;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/common/api/ChangeLogService.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/api/ChangeLogService.js b/traffic_ops/experimental/ui/app/src/common/api/ChangeLogService.js
new file mode 100644
index 0000000..6d62e24
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/api/ChangeLogService.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.
+ */
+
+var ChangeLogService = function(Restangular, $rootScope, httpService, ENV) {
+
+	this.getNewLogCount = function() {
+		return httpService.get(ENV.api['root'] + 'logs/newcount');
+	};
+
+	this.getChangeLogs = function(queryParams) {
+		// broadcast an event that will zero out the change log count immediately
+		$rootScope.$broadcast('changeLogService::getChangeLogs');
+		return Restangular.all('logs').getList(queryParams);
+	};
+
+};
+
+ChangeLogService.$inject = ['Restangular', '$rootScope', 'httpService', 'ENV'];
+module.exports = ChangeLogService;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/common/api/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/api/index.js b/traffic_ops/experimental/ui/app/src/common/api/index.js
index 4099199..c3cc2f7 100644
--- a/traffic_ops/experimental/ui/app/src/common/api/index.js
+++ b/traffic_ops/experimental/ui/app/src/common/api/index.js
@@ -23,6 +23,7 @@ module.exports = angular.module('trafficOps.api', [])
     .service('cacheGroupService', require('./CacheGroupService'))
     .service('cacheGroupParameterService', require('./CacheGroupParameterService'))
     .service('cdnService', require('./CDNService'))
+    .service('changeLogService', require('./ChangeLogService'))
     .service('deliveryServiceService', require('./DeliveryServiceService'))
 	.service('deliveryServiceRegexService', require('./DeliveryServiceRegexService'))
 	.service('divisionService', require('./DivisionService'))

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js b/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
index 3b7e547..7d08c2a 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/header/HeaderController.js
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-var HeaderController = function($rootScope, $scope, $log, $state, $anchorScroll, authService, userModel) {
+var HeaderController = function($rootScope, $scope, $log, $state, $anchorScroll, $interval, locationUtils, authService, changeLogService, userModel) {
 
     $scope.isCollapsed = true;
 
@@ -28,10 +28,26 @@ var HeaderController = function($rootScope, $scope, $log, $state, $anchorScroll,
      */
     $scope.user = angular.copy(userModel.user);
 
+    $scope.newLogCount = 0;
+
+    $scope.changeLogs = [];
+
     $scope.isState = function(state) {
         return $state.current.name.indexOf(state) !== -1;
     };
 
+    $scope.getChangeLogs = function() {
+        $scope.changeLogs = [];
+        changeLogService.getChangeLogs({ rows: 6 })
+            .then(function(response) {
+                $scope.changeLogs = response;
+            });
+    };
+
+    $scope.getRelativeTime = function(date) {
+        return moment(date).fromNow();
+    };
+
     $scope.logout = function() {
         authService.logout();
     };
@@ -40,6 +56,30 @@ var HeaderController = function($rootScope, $scope, $log, $state, $anchorScroll,
         alert('not hooked up yet: downloadDB');
     };
 
+    $scope.navigateToPath = locationUtils.navigateToPath;
+
+    var changeLogInterval,
+        increment = 1;
+
+    var createChangeLogInterval = function() {
+        killChangeLogInterval();
+        changeLogInterval = $interval(function() { getNewLogCount() }, (increment*60*1000)); // every X minutes
+    };
+
+    var killChangeLogInterval = function() {
+        if (angular.isDefined(changeLogInterval)) {
+            $interval.cancel(changeLogInterval);
+            changeLogInterval = undefined;
+        }
+    };
+
+    var getNewLogCount = function() {
+        changeLogService.getNewLogCount()
+            .then(function(result) {
+                $scope.newLogCount = result.data.response.newLogcount;
+            });
+    };
+
     var scrollToTop = function() {
         $anchorScroll(); // hacky?
     };
@@ -79,16 +119,22 @@ var HeaderController = function($rootScope, $scope, $log, $state, $anchorScroll,
         });
     };
 
-    $scope.$on('userModel::userUpdated', function(event) {
+    $scope.$on('userModel::userUpdated', function() {
         $scope.user = angular.copy(userModel.user);
     });
 
+    $scope.$on('changeLogService::getChangeLogs', function() {
+        $scope.newLogCount = 0;
+    });
+
     var init = function () {
         scrollToTop();
         initToggleMenu();
+        getNewLogCount();
+        createChangeLogInterval();
     };
     init();
 };
 
-HeaderController.$inject = ['$rootScope', '$scope', '$log', '$state', '$anchorScroll', 'authService', 'userModel'];
+HeaderController.$inject = ['$rootScope', '$scope', '$log', '$state', '$anchorScroll', '$interval', 'locationUtils', 'authService', 'changeLogService', 'userModel'];
 module.exports = HeaderController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/common/modules/header/header.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/header/header.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/header/header.tpl.html
index 8172197..ece21a7 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/header/header.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/header/header.tpl.html
@@ -37,24 +37,24 @@ under the License.
             </li>
             <li role="presentation" class="dropdown">
                 <div class="btn-group" uib-dropdown is-open="alerts.isopen">
-                    <button id="alertsButton" type="button" class="btn btn-link" uib-dropdown-toggle>
+                    <button id="alertsButton" type="button" class="btn btn-link" ng-click="getChangeLogs()" uib-dropdown-toggle>
                         <i class="fa fa-comment-o"></i>
-                        <span class="badge bg-green">6</span>
+                        <span class="badge bg-green">{{newLogCount}}</span>
                     </button>
                     <ul class="uib-dropdown-menu list-unstyled msg_list animated fadeInDown" role="menu">
-                        <li ng-repeat="i in [1, 2, 3, 4, 5, 6]">
-                            <a>
+                        <li ng-repeat="changeLog in changeLogs">
+                            <a ng-click="$event.stopPropagation()">
                                 <span>
-                                    <span>User Name</span>
-                                    <span class="time">{{i}} mins ago</span>
+                                    <span>{{changeLog.user}}</span>
+                                    <span class="time">{{getRelativeTime(changeLog.lastUpdated)}}</span>
                                 </span>
-                                <span class="message">Contents of Log.message goes here</span>
+                                <span class="message">{{changeLog.message}}</span>
                             </a>
                         </li>
                         <li>
                             <div class="text-center">
                                 <a>
-                                    <strong><a href="javascript:void(0);">See All Change Logs</a></strong>
+                                    <strong><a ng-click="navigateToPath('/admin/change-logs')">See All Change Logs</a></strong>
                                     <i class="fa fa-angle-right"></i>
                                 </a>
                             </div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js
new file mode 100644
index 0000000..deb7021
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/TableChangeLogsController.js
@@ -0,0 +1,39 @@
+/*
+ * 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 TableChangeLogsController = function(changeLogs, $scope, $state, locationUtils) {
+
+	$scope.changeLogs = changeLogs;
+
+	$scope.refresh = function() {
+		$state.reload(); // reloads all the resolves for the view
+	};
+
+	angular.element(document).ready(function () {
+		$('#changeLogsTable').dataTable({
+			"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
+			"iDisplayLength": 25,
+			"aaSorting": []
+		});
+	});
+
+};
+
+TableChangeLogsController.$inject = ['changeLogs', '$scope', '$state', 'locationUtils'];
+module.exports = TableChangeLogsController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/index.js b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/index.js
new file mode 100644
index 0000000..b5bde1e
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/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.changeLogs', [])
+	.controller('TableChangeLogsController', require('./TableChangeLogsController'));

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html
new file mode 100644
index 0000000..b4fd92e
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/changeLogs/table.changeLogs.tpl.html
@@ -0,0 +1,52 @@
+<!--
+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 class="active">Change Logs</li>
+        </ol>
+        <div class="pull-right" role="group">
+            <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
+        </div>
+        <div class="clearfix"></div>
+    </div>
+    <div class="x_content">
+        <br>
+        <table id="changeLogsTable" class="table responsive-utilities jambo_table">
+            <thead>
+            <tr class="headings">
+                <th>time</th>
+                <th>type</th>
+                <th>message</th>
+                <th>user</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-repeat="changeLog in changeLogs">
+                <td>{{changeLog.lastUpdated}}</td>
+                <td>{{changeLog.level}}</td>
+                <td>{{changeLog.message}}</td>
+                <td>{{changeLog.user}}</td>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/ChangeLogsController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/ChangeLogsController.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/ChangeLogsController.js
new file mode 100644
index 0000000..b390590
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/ChangeLogsController.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 ChangeLogsController = function() {
+};
+
+ChangeLogsController.$inject = [];
+module.exports = ChangeLogsController;

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/changeLogs.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/changeLogs.tpl.html b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/changeLogs.tpl.html
new file mode 100644
index 0000000..0837cb4
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/changeLogs.tpl.html
@@ -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.
+-->
+
+<div id="changeLogsContainer">
+    <div ui-view="changeLogsContent"></div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/index.js
new file mode 100644
index 0000000..b9e8f70
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/index.js
@@ -0,0 +1,36 @@
+/*
+ * 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.changeLogs', [])
+	.controller('ChangeLogsController', require('./ChangeLogsController'))
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.admin.changeLogs', {
+				url: '/change-logs',
+				abstract: true,
+				views: {
+					adminContent: {
+						templateUrl: 'modules/private/admin/changeLogs/changeLogs.tpl.html',
+						controller: 'ChangeLogsController'
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/40877b36/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/list/index.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/list/index.js b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/list/index.js
new file mode 100644
index 0000000..1db44d4
--- /dev/null
+++ b/traffic_ops/experimental/ui/app/src/modules/private/admin/changeLogs/list/index.js
@@ -0,0 +1,39 @@
+/*
+ * 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.changeLogs.list', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficOps.private.admin.changeLogs.list', {
+				url: '',
+				views: {
+					changeLogsContent: {
+						templateUrl: 'common/modules/table/changeLogs/table.changeLogs.tpl.html',
+						controller: 'TableChangeLogsController',
+						resolve: {
+							changeLogs: function(changeLogService) {
+								return changeLogService.getChangeLogs({ days: 3 });
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});