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 2018/09/14 15:19:50 UTC

[trafficcontrol] branch master updated: removes TPv1

This is an automated email from the ASF dual-hosted git repository.

dangogh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new 63f69b9  removes TPv1
63f69b9 is described below

commit 63f69b9aa9395aeb4b2fc07c47fa7b12a3efa360
Author: Jeremy Mitchell <mi...@gmail.com>
AuthorDate: Thu Sep 13 15:40:07 2018 -0600

    removes TPv1
---
 LICENSE                                            |   1 -
 traffic_portal/v1/.bowerrc                         |   3 -
 traffic_portal/v1/.gitignore                       |   9 -
 traffic_portal/v1/.jshintrc                        |  23 -
 traffic_portal/v1/Gruntfile.js                     |  96 ----
 traffic_portal/v1/README.md                        |   5 -
 traffic_portal/v1/app/src/AppController.js         |  21 -
 traffic_portal/v1/app/src/app.js                   | 181 -------
 traffic_portal/v1/app/src/assets/css/custom.css    |  23 -
 .../v1/app/src/assets/images/favicon.png           | Bin 1386 -> 0 bytes
 traffic_portal/v1/app/src/assets/js/.keep          |   0
 .../v1/app/src/assets/other/collateral.txt         |   1 -
 .../v1/app/src/common/api/AuthService.js           |  82 ---
 .../app/src/common/api/DeliveryServiceService.js   | 177 ------
 .../v1/app/src/common/api/HealthService.js         |  45 --
 .../v1/app/src/common/api/PortalService.js         |  43 --
 .../v1/app/src/common/api/StatsService.js          | 159 ------
 .../v1/app/src/common/api/UserService.js           | 105 ----
 traffic_portal/v1/app/src/common/api/index.js      |  25 -
 .../src/common/directives/enter/EnterDirective.js  |  31 --
 .../v1/app/src/common/directives/enter/index.js    |  20 -
 .../formattedDate/FormattedDateDirective.js        |  34 --
 .../src/common/directives/formattedDate/index.js   |  20 -
 .../src/common/directives/match/MatchDirective.js  |  31 --
 .../v1/app/src/common/directives/match/index.js    |  20 -
 .../directives/rcSubmit/RCSubmitDirective.js       |  91 ----
 .../v1/app/src/common/directives/rcSubmit/index.js |  19 -
 .../directives/rcVerifySet/RCVerifySetDirective.js |  33 --
 .../app/src/common/directives/rcVerifySet/index.js |  19 -
 .../selectOnClick/SelectOnClickDirective.js        |  29 -
 .../src/common/directives/selectOnClick/index.js   |  19 -
 .../v1/app/src/common/filters/DateRangeFilter.js   |  32 --
 .../v1/app/src/common/filters/OffsetFilter.js      |  28 -
 .../v1/app/src/common/filters/PartitionFilter.js   |  37 --
 .../v1/app/src/common/filters/PercentFilter.js     |  33 --
 .../v1/app/src/common/filters/UnitsFilter.js       |  26 -
 traffic_portal/v1/app/src/common/filters/index.js  |  25 -
 .../v1/app/src/common/models/AuthModel.js          |  21 -
 .../v1/app/src/common/models/ChartModel.js         | 138 -----
 .../app/src/common/models/DeliveryServicesModel.js |  45 --
 .../v1/app/src/common/models/MessageModel.js       |  66 ---
 .../v1/app/src/common/models/PropertiesModel.js    |  31 --
 .../v1/app/src/common/models/UserModel.js          |  46 --
 traffic_portal/v1/app/src/common/models/index.js   |  24 -
 .../modules/cacheGroups/CacheGroupsController.js   |  83 ---
 .../common/modules/cacheGroups/_cacheGroups.scss   |  74 ---
 .../modules/cacheGroups/cacheGroups.tpl.html       |  55 --
 .../v1/app/src/common/modules/cacheGroups/index.js |  19 -
 .../v1/app/src/common/modules/chart/_chart.scss    |  89 ---
 .../ChartBandwidthPerSecondController.js           | 224 --------
 .../_chart.bandwidthPerSecond.scss                 |  40 --
 .../chart.bandwidthPerSecond.tpl.html              |  66 ---
 .../modules/chart/bandwidthPerSecond/index.js      |  19 -
 .../chart/capacity/ChartCapacityController.js      | 117 ----
 .../modules/chart/capacity/_chart.capacity.scss    |  25 -
 .../modules/chart/capacity/chart.capacity.tpl.html |  22 -
 .../app/src/common/modules/chart/capacity/index.js |  19 -
 .../modules/chart/dates/ChartDatesController.js    | 139 -----
 .../common/modules/chart/dates/_chart.dates.scss   |  68 ---
 .../modules/chart/dates/chart.dates.tpl.html       |  57 --
 .../v1/app/src/common/modules/chart/dates/index.js |  26 -
 .../chart/httpStatus/ChartHttpStatusController.js  | 175 ------
 .../chart/httpStatus/_chart.httpStatus.scss        |  99 ----
 .../chart/httpStatus/chart.httpStatus.tpl.html     |  27 -
 .../src/common/modules/chart/httpStatus/index.js   |  19 -
 .../chart/routing/ChartRoutingController.js        | 141 -----
 .../modules/chart/routing/_chart.routing.scss      |  25 -
 .../modules/chart/routing/chart.routing.tpl.html   |  22 -
 .../app/src/common/modules/chart/routing/index.js  |  19 -
 .../ChartTransactionsPerSecondController.js        | 214 --------
 .../_chart.transactionsPerSecond.scss              |  39 --
 .../chart.transactionsPerSecond.tpl.html           |  64 ---
 .../modules/chart/transactionsPerSecond/index.js   |  19 -
 .../src/common/modules/dates/DatesController.js    |  55 --
 .../v1/app/src/common/modules/dates/_dates.scss    |  47 --
 .../v1/app/src/common/modules/dates/dates.tpl.html |  42 --
 .../v1/app/src/common/modules/dates/index.js       |  19 -
 .../config/edit/DSConfigEditController.js          |  55 --
 .../config/edit/_deliveryService.config.edit.scss  |  36 --
 .../edit/deliveryService.config.edit.tpl.html      | 126 -----
 .../modules/deliveryService/config/edit/index.js   |  19 -
 .../dialog/confirm/DialogConfirmController.js      |  33 --
 .../modules/dialog/confirm/_dialog.confirm.scss    |  17 -
 .../modules/dialog/confirm/dialog.confirm.tpl.html |  27 -
 .../app/src/common/modules/dialog/confirm/index.js |  19 -
 .../modules/dialog/reset/DialogResetController.js  |  39 --
 .../common/modules/dialog/reset/_dialog.reset.scss |  17 -
 .../modules/dialog/reset/dialog.reset.tpl.html     |  38 --
 .../app/src/common/modules/dialog/reset/index.js   |  19 -
 .../src/common/modules/footer/FooterController.js  |  33 --
 .../app/src/common/modules/footer/footer.tpl.html  |  26 -
 .../v1/app/src/common/modules/footer/index.js      |  19 -
 .../src/common/modules/header/HeaderController.js  |  86 ---
 .../v1/app/src/common/modules/header/_header.scss  |  80 ---
 .../app/src/common/modules/header/header.tpl.html  |  75 ---
 .../v1/app/src/common/modules/header/index.js      |  19 -
 .../common/modules/message/MessageController.js    |  45 --
 .../app/src/common/modules/message/_message.scss   |  24 -
 .../v1/app/src/common/modules/message/index.js     |  19 -
 .../src/common/modules/message/message.tpl.html    |  29 -
 .../release/version/ReleaseVersionController.js    |  29 -
 .../modules/release/version/_release.version.scss  |  17 -
 .../src/common/modules/release/version/index.js    |  19 -
 .../release/version/release.version.tpl.html       |  24 -
 .../modules/tools/purge/ToolsPurgeController.js    |  92 ----
 .../common/modules/tools/purge/_tools.purge.scss   |  54 --
 .../v1/app/src/common/modules/tools/purge/index.js |  19 -
 .../modules/tools/purge/tools.purge.tpl.html       |  47 --
 .../service/application/ApplicationService.js      |  49 --
 .../v1/app/src/common/service/application/index.js |  19 -
 .../v1/app/src/common/service/utils/ChartUtils.js  |  38 --
 .../v1/app/src/common/service/utils/FormUtils.js   |  31 --
 .../v1/app/src/common/service/utils/JSONUtils.js   |  99 ----
 .../v1/app/src/common/service/utils/NumberUtils.js |  80 ---
 .../app/src/common/service/utils/date/DateUtils.js | 131 -----
 .../v1/app/src/common/service/utils/date/index.js  |  19 -
 .../v1/app/src/common/service/utils/index.js       |  22 -
 .../v1/app/src/common/templates/master.tpl.html    |  32 --
 traffic_portal/v1/app/src/index.html               |  63 ---
 .../private/collateral/CollateralController.js     |  25 -
 .../modules/private/collateral/_collateral.scss    |  29 -
 .../modules/private/collateral/collateral.tpl.html |  34 --
 .../v1/app/src/modules/private/collateral/index.js |  32 --
 .../private/dashboard/DashboardController.js       |  37 --
 .../src/modules/private/dashboard/_dashboard.scss  |  33 --
 .../modules/private/dashboard/dashboard.tpl.html   |  38 --
 .../v1/app/src/modules/private/dashboard/index.js  |  33 --
 .../DashboardDeliveryServicesController.js         | 188 -------
 .../_dashboard.deliveryServices.scss               |  20 -
 .../dashboard.deliveryServices.tpl.html            |  52 --
 .../modules/private/dashboard/overview/index.js    |  48 --
 .../deliveryService/DeliveryServiceController.js   |  25 -
 .../private/deliveryService/_deliveryService.scss  |  17 -
 .../deliveryService/deliveryService.tpl.html       |  18 -
 .../src/modules/private/deliveryService/index.js   |  33 --
 .../new/DeliveryServiceNewController.js            | 147 -----
 .../deliveryService/new/_deliveryService.new.scss  |  75 ---
 .../new/deliveryService.new.tpl.html               | 601 ---------------------
 .../modules/private/deliveryService/new/index.js   |  32 --
 .../view/DeliveryServiceViewController.js          |  25 -
 .../view/_deliveryService.view.scss                |  17 -
 .../charts/DeliveryServiceViewChartsController.js  |  58 --
 .../view/charts/_deliveryService.view.charts.scss  | 112 ----
 .../view/charts/bandwidthPerSecond/index.js        |  51 --
 .../charts/deliveryService.view.charts.tpl.html    |  64 ---
 .../view/charts/httpStatus/index.js                |  48 --
 .../private/deliveryService/view/charts/index.js   |  33 --
 .../view/charts/transactionsPerSecond/index.js     |  51 --
 .../view/deliveryService.view.tpl.html             |  18 -
 .../modules/private/deliveryService/view/index.js  |  38 --
 .../DeliveryServiceViewOverviewController.js       |  73 ---
 .../overview/_deliveryService.view.overview.scss   |  98 ----
 .../deliveryService.view.overview.tpl.html         |  58 --
 .../deliveryService/view/overview/detail/index.js  |  95 ----
 .../private/deliveryService/view/overview/index.js |  33 --
 traffic_portal/v1/app/src/modules/private/index.js |  57 --
 .../v1/app/src/modules/private/private.tpl.html    |  20 -
 .../app/src/modules/private/user/UserController.js |  79 ---
 .../v1/app/src/modules/private/user/_user.scss     |  27 -
 .../private/user/edit/UserEditController.js        |  25 -
 .../src/modules/private/user/edit/_user.edit.scss  |  22 -
 .../v1/app/src/modules/private/user/edit/index.js  |  33 --
 .../modules/private/user/edit/user.edit.tpl.html   | 182 -------
 .../v1/app/src/modules/private/user/index.js       |  33 --
 .../user/register/UserRegisterController.js        |  27 -
 .../private/user/register/_user.register.scss      |  17 -
 .../app/src/modules/private/user/register/index.js |  33 --
 .../private/user/reset/UserResetController.js      |  38 --
 .../modules/private/user/reset/_user.reset.scss    |  17 -
 .../v1/app/src/modules/private/user/reset/index.js |  33 --
 .../v1/app/src/modules/private/user/user.tpl.html  |  32 --
 .../src/modules/public/about/AboutController.js    |  44 --
 .../v1/app/src/modules/public/about/_about.scss    |  28 -
 .../v1/app/src/modules/public/about/about.tpl.html |  20 -
 .../v1/app/src/modules/public/about/index.js       |  33 --
 .../app/src/modules/public/home/HomeController.js  |  47 --
 .../v1/app/src/modules/public/home/_home.scss      |  63 ---
 .../v1/app/src/modules/public/home/home.tpl.html   |  49 --
 .../v1/app/src/modules/public/home/index.js        |  34 --
 .../app/src/modules/public/home/landing/index.js   |  26 -
 traffic_portal/v1/app/src/modules/public/index.js  |  43 --
 .../v1/app/src/modules/public/public.tpl.html      |  20 -
 traffic_portal/v1/app/src/package.json             |  16 -
 traffic_portal/v1/app/src/robots.txt               |  17 -
 traffic_portal/v1/app/src/scripts/shared-libs.js   |  50 --
 traffic_portal/v1/app/src/styles/loading.scss      | 110 ----
 traffic_portal/v1/app/src/styles/main.scss         | 349 ------------
 traffic_portal/v1/app/src/styles/variables.scss    |  28 -
 .../v1/app/src/traffic_portal_properties.json      |  99 ----
 .../v1/app/src/traffic_portal_release.json         |   5 -
 traffic_portal/v1/bower.json                       |  22 -
 traffic_portal/v1/build/build_rpm.sh               |  54 --
 traffic_portal/v1/build/etc/init.d/traffic_portal  | 152 ------
 .../v1/build/etc/logrotate.d/traffic_portal        |  26 -
 .../v1/build/etc/logrotate.d/traffic_portal-access |  26 -
 traffic_portal/v1/build/traffic_portal.spec        |  89 ---
 traffic_portal/v1/conf/config-template.js          |  47 --
 traffic_portal/v1/conf/config.js                   |  42 --
 traffic_portal/v1/grunt/browserify2.js             | 151 ------
 traffic_portal/v1/grunt/clean.js                   |  23 -
 traffic_portal/v1/grunt/compass.js                 |  44 --
 traffic_portal/v1/grunt/copy.js                    |  81 ---
 traffic_portal/v1/grunt/express.js                 |  25 -
 traffic_portal/v1/grunt/globalConfig.js            |  34 --
 traffic_portal/v1/grunt/html2js.js                 |  27 -
 traffic_portal/v1/grunt/install-dependencies.js    |  23 -
 traffic_portal/v1/grunt/jshint.js                  |  23 -
 traffic_portal/v1/grunt/ngconstant.js              |  46 --
 traffic_portal/v1/grunt/uglify.js                  |  26 -
 traffic_portal/v1/grunt/watch.js                   |  34 --
 traffic_portal/v1/package.json                     |  36 --
 traffic_portal/v1/server/log/.keep                 |   0
 traffic_portal/v1/server/server.js                 | 110 ----
 213 files changed, 11155 deletions(-)

diff --git a/LICENSE b/LICENSE
index fb89ab8..8bdf33d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -270,7 +270,6 @@ For the downloadjs component:
 
 For the angular-loading-bar component:
 @traffic_portal/app/src/styles/loading.scss
-@traffic_portal/v1/app/src/styles/loading.scss
 ./licenses/MIT-angular_loading_bar
 
 For the gentelella admin theme:
diff --git a/traffic_portal/v1/.bowerrc b/traffic_portal/v1/.bowerrc
deleted file mode 100644
index ba0accc..0000000
--- a/traffic_portal/v1/.bowerrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "directory": "app/bower_components"
-}
diff --git a/traffic_portal/v1/.gitignore b/traffic_portal/v1/.gitignore
deleted file mode 100644
index a6d8ee5..0000000
--- a/traffic_portal/v1/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-.tmp
-.sass-cache
-app/bower_components
-app/dist
-app/src/scripts/config.js
-node_modules
-rpm/rpmbuild
-rpm/*.rpm
-server/log/access.log
diff --git a/traffic_portal/v1/.jshintrc b/traffic_portal/v1/.jshintrc
deleted file mode 100644
index 6b2ddc7..0000000
--- a/traffic_portal/v1/.jshintrc
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "browser": true,
-    "esnext": true,
-    "bitwise": true,
-    "camelcase": true,
-    "curly": true,
-    "eqeqeq": true,
-    "immed": true,
-    "indent": 2,
-    "latedef": true,
-    "newcap": true,
-    "noarg": true,
-    "quotmark": "single",
-    "regexp": true,
-    "undef": true,
-    "unused": true,
-    "strict": true,
-    "trailing": true,
-    "smarttabs": true,
-    "globals": {
-        "angular": false
-    }
-}
diff --git a/traffic_portal/v1/Gruntfile.js b/traffic_portal/v1/Gruntfile.js
deleted file mode 100755
index f86d919..0000000
--- a/traffic_portal/v1/Gruntfile.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-'use strict';
-
-module.exports = function (grunt) {
-    var os = require("os");
-    var globalConfig = require('./grunt/globalConfig');
-
-    // load time grunt - helps with optimizing build times
-    require('time-grunt')(grunt);
-
-    // load grunt task configurations
-    require('load-grunt-config')(grunt);
-
-    // default task - runs in dev mode
-    grunt.registerTask('default', ['dev']);
-
-    // dev task - when you type 'grunt dev' <-- builds unminified app and starts dev node.js server and watches for source file changes
-    grunt.registerTask('dev', [
-        'build-dev',
-        'express:dev',
-        'watch'
-    ]);
-
-    // dist task - when you type 'grunt dist' <-- builds minified app for distribution and generates node dependencies all wrapped up nicely in a /dist folder
-    grunt.registerTask('dist', [
-        'build',
-        'install-dependencies'
-    ]);
-
-    // build tasks
-    grunt.registerTask('build', [
-        'ngconstant:prod',
-        'clean',
-        'copy:dist',
-        'build-css',
-        'build-js',
-        'build-shared-libs'
-    ]);
-
-    grunt.registerTask('build-dev', [
-        'ngconstant:dev',
-        'clean',
-        'copy:dev',
-        'build-css-dev',
-        'build-js-dev',
-        'build-shared-libs-dev'
-    ]);
-
-    // css
-    grunt.registerTask('build-css', [
-        'compass:prod'
-    ]);
-
-    grunt.registerTask('build-css-dev', [
-        'compass:dev'
-    ]);
-
-    // js (custom)
-    grunt.registerTask('build-js', [
-        'html2js',
-        'browserify2:app-prod',
-        'browserify2:app-config'
-    ]);
-
-    grunt.registerTask('build-js-dev', [
-        'html2js',
-        'browserify2:app-dev',
-        'browserify2:app-config'
-    ]);
-
-    // js (libraries)
-    grunt.registerTask('build-shared-libs', [
-        'browserify2:shared-libs-prod'
-    ]);
-
-    grunt.registerTask('build-shared-libs-dev', [
-        'browserify2:shared-libs-dev'
-    ]);
-
-};
\ No newline at end of file
diff --git a/traffic_portal/v1/README.md b/traffic_portal/v1/README.md
deleted file mode 100644
index 92a0fa9..0000000
--- a/traffic_portal/v1/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Traffic Portal
-
-An AngularJS client served from a lightweight Node.js web server designed to consume the Traffic Ops 1.x API.
-
-Installation instructions found in traffic_portal/build directory.
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/AppController.js b/traffic_portal/v1/app/src/AppController.js
deleted file mode 100644
index b9e87d7..0000000
--- a/traffic_portal/v1/app/src/AppController.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var AppController = function() {};
-
-AppController.$inject = [];
-module.exports = AppController;
diff --git a/traffic_portal/v1/app/src/app.js b/traffic_portal/v1/app/src/app.js
deleted file mode 100755
index 9d7ac4a..0000000
--- a/traffic_portal/v1/app/src/app.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-'use strict';
-require('app-templates');
-
-var App = function($urlRouterProvider) {
-    $urlRouterProvider.otherwise('/');
-};
-
-App.$inject = ['$urlRouterProvider'];
-
-var trafficPortal = angular.module('trafficPortal', [
-        'config',
-        'ngAnimate',
-        'ngResource',
-        'ngSanitize',
-        'ngRoute',
-        'ui.router',
-        'ui.bootstrap',
-        'ui.bootstrap.datetimepicker',
-        'app.templates',
-        'angular-loading-bar',
-
-        // public modules
-        require('./modules/public').name,
-        require('./modules/public/home').name,
-        require('./modules/public/home/landing').name,
-        require('./modules/public/about').name,
-
-        // private modules
-        require('./modules/private').name,
-
-        // collateral
-        require('./modules/private/collateral').name,
-
-        // dashboard
-        require('./modules/private/dashboard').name,
-        require('./modules/private/dashboard/overview').name,
-
-        // delivery service
-        require('./modules/private/deliveryService').name,
-        require('./modules/private/deliveryService/new').name,
-        require('./modules/private/deliveryService/view').name,
-        require('./modules/private/deliveryService/view/overview').name,
-        require('./modules/private/deliveryService/view/overview/detail').name,
-
-        // delivery service charts
-        require('./modules/private/deliveryService/view/charts').name,
-        require('./modules/private/deliveryService/view/charts/bandwidthPerSecond').name,
-        require('./modules/private/deliveryService/view/charts/httpStatus').name,
-        require('./modules/private/deliveryService/view/charts/transactionsPerSecond').name,
-
-        // user
-        require('./modules/private/user').name,
-        require('./modules/private/user/edit').name,
-        require('./modules/private/user/register').name,
-        require('./modules/private/user/reset').name,
-
-        // common modules
-        require('./common/modules/cacheGroups').name,
-        require('./common/modules/chart/bandwidthPerSecond').name,
-        require('./common/modules/chart/capacity').name,
-        require('./common/modules/chart/dates').name,
-        require('./common/modules/chart/httpStatus').name,
-        require('./common/modules/chart/routing').name,
-        require('./common/modules/chart/transactionsPerSecond').name,
-        require('./common/modules/dates').name,
-        require('./common/modules/deliveryService/config/edit').name,
-        require('./common/modules/dialog/confirm').name,
-        require('./common/modules/dialog/reset').name,
-        require('./common/modules/footer').name,
-        require('./common/modules/header').name,
-        require('./common/modules/message').name,
-        require('./common/modules/release/version').name,
-        require('./common/modules/tools/purge').name,
-
-        require('./common/models').name,
-        require('./common/api').name,
-
-        //directives
-        require('./common/directives/enter').name,
-        require('./common/directives/formattedDate').name,
-        require('./common/directives/match').name,
-        require('./common/directives/rcSubmit').name,
-        require('./common/directives/rcVerifySet').name,
-        require('./common/directives/selectOnClick').name,
-
-        // services
-        require('./common/service/application').name,
-        require('./common/service/utils').name,
-        require('./common/service/utils/date').name,
-
-        //filters
-        require('./common/filters').name
-
-    ], App)
-
-        .controller('AppController', require('./AppController'))
-
-        .config(function($stateProvider, $logProvider, $controllerProvider) {
-            $controllerProvider.allowGlobals();
-            $logProvider.debugEnabled(true);
-            $stateProvider
-                .state('trafficPortal', {
-                    url: '/',
-                    abstract: true,
-                    templateUrl: 'common/templates/master.tpl.html',
-                    controller: 'AppController',
-                    resolve: {
-                        properties: function(portalService, propertiesModel) {
-                            return portalService.getProperties()
-                                .then(function(result) {
-                                    propertiesModel.setProperties(result);
-                                });
-                        }
-                    }
-                });
-        })
-
-        .run(function(applicationService) {
-            applicationService.startup();
-        })
-    ;
-
-trafficPortal.factory('authInterceptor', function ($q, $location, $timeout, dateUtils, messageModel, userModel) {
-    return {
-        responseError: function (rejection) {
-            var url = $location.url(),
-                alerts = [];
-
-            try { alerts = rejection.data.alerts; }
-            catch(e) {}
-
-            // 401, 403, 404 and 5xx errors handled globally; all others handled in fault handler
-            if (rejection.status === 401) {
-                userModel.resetUser();
-                if (url == '/' || $location.search().redirect) {
-                    messageModel.setMessages(alerts, false);
-                } else {
-                    $timeout(function () {
-                        messageModel.setMessages(alerts, true);
-                        // forward the to the home page with ?redirect=page/they/were/trying/to/reach
-                        $location.url('/').search({ redirect: encodeURIComponent(url) });
-                    }, 200);
-                }
-            } else if (rejection.status === 403 || rejection.status === 404) {
-                $timeout(function () {
-                    messageModel.setMessages(alerts, false);
-                }, 200);
-            } else if (rejection.status.toString().match(/^5\d[01356789]$/)) {
-                // matches 5xx EXCEPT for 502's and 504's which indicate a timeout and will be handled by each service call accordingly
-                $timeout(function () {
-                    messageModel.setMessages([ { level: 'error', text: rejection.status.toString() + ': ' + rejection.statusText + ' (' + dateUtils.dateFormat(new Date(), "UTC:dd/mmm/yyyy:HH:MM:ss o") + ')'  } ], false);
-                }, 200);
-            }
-
-            return $q.reject(rejection);
-        }
-    };
-});
-
-trafficPortal.config(function ($httpProvider) {
-    $httpProvider.interceptors.push('authInterceptor');
-});
-
-
diff --git a/traffic_portal/v1/app/src/assets/css/custom.css b/traffic_portal/v1/app/src/assets/css/custom.css
deleted file mode 100644
index c0c95c3..0000000
--- a/traffic_portal/v1/app/src/assets/css/custom.css
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-
-/*
-    This file is a placeholder for custom styles for Traffic Portal. To customize styles, create your own custom.css and copy it
-    to /resources/assets/css/ on your web server replacing the old, blank one. This file should remain blank in source control.
-    If the default bootstrap styles are sufficient, do nothing.
-*/
diff --git a/traffic_portal/v1/app/src/assets/images/favicon.png b/traffic_portal/v1/app/src/assets/images/favicon.png
deleted file mode 100755
index da095e9..0000000
Binary files a/traffic_portal/v1/app/src/assets/images/favicon.png and /dev/null differ
diff --git a/traffic_portal/v1/app/src/assets/js/.keep b/traffic_portal/v1/app/src/assets/js/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/traffic_portal/v1/app/src/assets/other/collateral.txt b/traffic_portal/v1/app/src/assets/other/collateral.txt
deleted file mode 100644
index f402ca7..0000000
--- a/traffic_portal/v1/app/src/assets/other/collateral.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a document you want to share with your traffic portal users.
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/api/AuthService.js b/traffic_portal/v1/app/src/common/api/AuthService.js
deleted file mode 100644
index c3fea82..0000000
--- a/traffic_portal/v1/app/src/common/api/AuthService.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var AuthService = function($http, $state, $location, $q, userModel, deliveryServicesModel, messageModel, ENV) {
-
-    this.login = function(username, password) {
-        userModel.resetUser();
-        deliveryServicesModel.resetDeliveryServices();
-        var promise = $http.post(
-                ENV.apiEndpoint['1.2'] + "user/login", { u: username, p: password })
-            .success(function(result) {
-                var redirect = decodeURIComponent($location.search().redirect);
-                if (redirect !== 'undefined') {
-                    $location.search('redirect', null); // remove the redirect query param
-                    $location.url(redirect);
-                } else {
-                    $location.url('/dashboard');
-                }
-                return result;
-            })
-            .error(function(fault) {
-                return fault;
-            });
-
-        return promise;
-    };
-
-    this.tokenLogin = function(token) {
-        userModel.resetUser();
-        deliveryServicesModel.resetDeliveryServices();
-        var deferred = $q.defer();
-        $http.post(
-                ENV.apiEndpoint['1.2'] + "user/login/token", { t: token })
-            .success(function(result) {
-                deferred.resolve(result);
-            })
-            .error(function(fault) {
-                deferred.reject(fault);
-            });
-
-        return deferred.promise;
-    };
-
-    this.logout = function() {
-        userModel.resetUser();
-        deliveryServicesModel.resetDeliveryServices();
-        var promise = $http.post(
-                ENV.apiEndpoint['1.2'] + "user/logout")
-            .success(function(result) {
-                if ($state.current.name == 'trafficPortal.public.home.landing') {
-                    messageModel.setMessages(result.alerts, false);
-                } else {
-                    messageModel.setMessages(result.alerts, true);
-                    $state.go('trafficPortal.public.home.landing');
-                }
-                return result;
-            })
-            .error(function(fault) {
-                return fault;
-            });
-
-        return promise;
-    };
-
-};
-
-AuthService.$inject = ['$http', '$state', '$location', '$q', 'userModel', 'deliveryServicesModel', 'messageModel', 'ENV'];
-module.exports = AuthService;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/api/DeliveryServiceService.js b/traffic_portal/v1/app/src/common/api/DeliveryServiceService.js
deleted file mode 100644
index e2f2976..0000000
--- a/traffic_portal/v1/app/src/common/api/DeliveryServiceService.js
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DeliveryServiceService = function($http, $q, deliveryServicesModel, messageModel, propertiesModel, ENV) {
-
-    var capacityRequest,
-        routingMethodsRequest,
-        cacheGroupHealthRequest;
-
-    var displayTimoutError = function(options) {
-        var msg = (angular.isDefined(options.message)) ? options.message : 'Request timeout';
-        if (options.status.toString().match(/^5\d[24]$/)) {
-            // 502 or 504
-            messageModel.setMessages([ { level: 'error', text: msg } ], false);
-        }
-    };
-
-    this.getDeliveryServices = function() {
-        var promise = $http.get(ENV.apiEndpoint['1.2'] + "deliveryservices.json")
-            .success(function(result) {
-                deliveryServicesModel.setDeliveryServices(result.response);
-                return result.response;
-            })
-            .error(function(fault) {
-            });
-
-        return promise;
-    };
-
-    this.getDeliveryService = function(deliveryServiceId) {
-        var deferred = $q.defer();
-        $http.get(ENV.apiEndpoint['1.2'] + "deliveryservices/" + deliveryServiceId + ".json")
-            .success(function(result) {
-                deferred.resolve(result.response[0]);
-            })
-            .error(function(fault) {
-                deferred.resolve(null);
-            });
-
-        return deferred.promise;
-    };
-
-    this.getState = function(deliveryServiceId, ignoreLoadingBar) {
-        var deferred = $q.defer();
-        $http.get(ENV.apiEndpoint['1.2'] + "deliveryservices/" + deliveryServiceId + "/state.json", { ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                deferred.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                displayTimoutError({ status: status });
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-    this.getCapacity = function(deliveryServiceId, ignoreLoadingBar, showTimeoutError) {
-        if (capacityRequest) {
-            capacityRequest.reject();
-        }
-        capacityRequest = $q.defer();
-
-        $http.get(ENV.apiEndpoint['1.2'] + "deliveryservices/" + deliveryServiceId + "/capacity.json",
-            { timeout: capacityRequest.promise, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                capacityRequest.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showTimeoutError) displayTimoutError({ status: status });
-                capacityRequest.reject();
-            });
-
-        return capacityRequest.promise;
-    };
-
-
-    this.getRoutingMethods = function(deliveryServiceId, ignoreLoadingBar, showTimeoutError) {
-        if (routingMethodsRequest) {
-            routingMethodsRequest.reject();
-        }
-        routingMethodsRequest = $q.defer();
-
-        $http.get(ENV.apiEndpoint['1.2'] + "deliveryservices/" + deliveryServiceId + "/routing.json",
-            { timeout: routingMethodsRequest.promise, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                routingMethodsRequest.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showTimeoutError) displayTimoutError({ status: status });
-                routingMethodsRequest.reject();
-            });
-
-        return routingMethodsRequest.promise;
-    };
-
-    this.getCacheGroupHealth = function(deliveryServiceId, ignoreLoadingBar, showTimeoutError) {
-        if (cacheGroupHealthRequest) {
-            cacheGroupHealthRequest.reject();
-        }
-        cacheGroupHealthRequest = $q.defer();
-
-        $http.get(ENV.apiEndpoint['1.2'] + "deliveryservices/" + deliveryServiceId + "/health.json",
-            { timeout: cacheGroupHealthRequest.promise, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                cacheGroupHealthRequest.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showTimeoutError) displayTimoutError({ status: status });
-                cacheGroupHealthRequest.reject();
-            });
-
-        return cacheGroupHealthRequest.promise;
-    };
-
-    this.getPurgeJobs = function(deliveryServiceId, ignoreLoadingBar) {
-        var deferred = $q.defer();
-        $http.get(ENV.apiEndpoint['1.2'] + "user/current/jobs.json?dsId=" + deliveryServiceId + "&keyword=PURGE", { ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                deferred.resolve(result.response);
-            })
-            .error(function(fault) {
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-    this.getServers = function(deliveryServiceId, ignoreLoadingBar) {
-        var deferred = $q.defer();
-        $http.get(ENV.apiEndpoint['1.2'] + "servers.json?orderby=type&dsId=" + deliveryServiceId, { ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                deferred.resolve(result.response);
-            })
-            .error(function(fault) {
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-    this.createDSRequest = function(dsData) {
-        var deferred = $q.defer();
-        $http.post(ENV.apiEndpoint['1.2'] + "deliveryservices/request", { emailTo: propertiesModel.properties.deliveryService.request.email, details: dsData } )
-            .success(function(result) {
-                if (angular.isDefined(result.alerts)) {
-                    messageModel.setMessages(result.alerts, false);
-                }
-                deferred.resolve(result);
-            })
-            .error(function(fault) {
-                if (angular.isDefined(fault.alerts)) {
-                    messageModel.setMessages(fault.alerts, false);
-                }
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-};
-
-DeliveryServiceService.$inject = ['$http', '$q', 'deliveryServicesModel', 'messageModel', 'propertiesModel', 'ENV'];
-module.exports = DeliveryServiceService;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/api/HealthService.js b/traffic_portal/v1/app/src/common/api/HealthService.js
deleted file mode 100644
index a7948cd..0000000
--- a/traffic_portal/v1/app/src/common/api/HealthService.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var HealthService = function($http, $q, ENV) {
-
-    var displayTimoutError = function(options) {
-        var msg = (angular.isDefined(options.message)) ? options.message : 'Request timeout. Failed to load cache groups.';
-        if (options.status.toString().match(/^5\d[24]$/)) {
-            // 502 or 504
-            messageModel.setMessages([ { level: 'error', text: msg } ], false);
-        }
-    };
-
-    this.getCacheGroupHealth = function(entityId, ignoreLoadingBar, showTimeoutError) {
-        var deferred = $q.defer();
-        $http.get(ENV.apiEndpoint['1.2'] + "cdns/health.json", { ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                deferred.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showTimeoutError) displayTimoutError({ status: status });
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-};
-
-HealthService.$inject = ['$http', '$q', 'ENV'];
-module.exports = HealthService;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/api/PortalService.js b/traffic_portal/v1/app/src/common/api/PortalService.js
deleted file mode 100644
index baadf8e..0000000
--- a/traffic_portal/v1/app/src/common/api/PortalService.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var PortalService = function($http, $q) {
-
-    this.getReleaseVersionInfo = function() {
-        var deferred = $q.defer();
-        $http.get('traffic_portal_release.json')
-            .success(function(result) {
-                deferred.resolve(result);
-            });
-
-        return deferred.promise;
-    };
-
-    this.getProperties = function() {
-        var deferred = $q.defer();
-        $http.get('traffic_portal_properties.json')
-            .success(function(result) {
-                deferred.resolve(result.properties);
-            });
-
-        return deferred.promise;
-    };
-
-};
-
-PortalService.$inject = ['$http', '$q'];
-module.exports = PortalService;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/api/StatsService.js b/traffic_portal/v1/app/src/common/api/StatsService.js
deleted file mode 100644
index 98ab370..0000000
--- a/traffic_portal/v1/app/src/common/api/StatsService.js
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var StatsService = function($http, $q, messageModel, ENV) {
-
-    var edgeBandwidthRequest,
-        edgeBandwidthSummaryRequest;
-
-    var edgeTransactionsRequest,
-        edgeTransactionsSummaryRequest;
-
-    var retentionPeriodInDays; // used as an influxdb override, leave null if no override
-
-    var displayTimoutError = function(options) {
-        var msg = (angular.isDefined(options.message)) ? options.message : 'Request timeout. Please narrow your chart window.';
-        if (options.status.toString().match(/^5\d[24]$/)) {
-            // 502 or 504
-            messageModel.setMessages([ { level: 'error', text: msg } ], false);
-        }
-    };
-
-    this.getEdgeBandwidthBatch = function(deliveryService, start, end, interval, exclude, ignoreLoadingBar, showError) {
-        var deferred = $q.defer();
-
-        var url = ENV.apiEndpoint['1.2'] + "deliveryservice_stats.json",
-            params = { deliveryServiceName: deliveryService.xmlId, metricType: 'kbps', serverType: 'edge', startDate: start.seconds(00).format(), endDate: end.seconds(00).format(), interval: interval, exclude: exclude, retentionPeriodInDays: retentionPeriodInDays };
-
-        $http.get(url, { params: params, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                deferred.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showError) displayTimoutError({ status: status });
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-    this.getEdgeBandwidth = function(deliveryService, start, end, interval, exclude, ignoreLoadingBar, showError) {
-        if (edgeBandwidthRequest) {
-            edgeBandwidthRequest.reject();
-        }
-        edgeBandwidthRequest = $q.defer();
-
-        var url = ENV.apiEndpoint['1.2'] + "deliveryservice_stats.json",
-            params = { deliveryServiceName: deliveryService.xmlId, metricType: 'kbps', serverType: 'edge', startDate: start.seconds(00).format(), endDate: end.seconds(00).format(), interval: interval, exclude: exclude, retentionPeriodInDays: retentionPeriodInDays};
-
-        $http.get(url, { params: params, timeout: edgeBandwidthRequest.promise, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                edgeBandwidthRequest.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showError) displayTimoutError({ status: status });
-                edgeBandwidthRequest.reject();
-            });
-
-        return edgeBandwidthRequest.promise;
-    };
-
-    this.getEdgeBandwidthSummary = function(deliveryService, start, end, interval, exclude, ignoreLoadingBar, showError) {
-        if (edgeBandwidthSummaryRequest) {
-            edgeBandwidthSummaryRequest.reject();
-        }
-        edgeBandwidthSummaryRequest = $q.defer();
-
-        var url = ENV.apiEndpoint['1.2'] + "deliveryservice_stats.json",
-            params = { deliveryServiceName: deliveryService.xmlId, metricType: 'kbps', serverType: 'edge', startDate: start.seconds(00).format(), endDate: end.seconds(00).format(), interval: interval, exclude: exclude, retentionPeriodInDays: retentionPeriodInDays };
-
-        $http.get(url, { params: params, timeout: edgeBandwidthSummaryRequest.promise, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                edgeBandwidthSummaryRequest.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showError) displayTimoutError({ status: status });
-                edgeBandwidthSummaryRequest.reject();
-            });
-
-        return edgeBandwidthSummaryRequest.promise;
-    };
-
-    this.getEdgeTransactions = function(deliveryService, start, end, interval, exclude, ignoreLoadingBar, showError) {
-        if (edgeTransactionsRequest) {
-            edgeTransactionsRequest.reject();
-        }
-        edgeTransactionsRequest = $q.defer();
-
-        var url = ENV.apiEndpoint['1.2'] + "deliveryservice_stats.json",
-            params = { deliveryServiceName: deliveryService.xmlId, metricType: 'tps_total', serverType: 'edge', startDate: start.seconds(00).format(), endDate: end.seconds(00).format(), interval: interval, exclude: exclude, retentionPeriodInDays: retentionPeriodInDays };
-
-        $http.get(url, { params: params, timeout: edgeTransactionsRequest.promise, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                edgeTransactionsRequest.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showError) displayTimoutError({ status: status });
-                edgeTransactionsRequest.reject();
-            });
-
-        return edgeTransactionsRequest.promise;
-    };
-
-    this.getEdgeTransactionsSummary = function(deliveryService, start, end, interval, ignoreLoadingBar, showError) {
-        if (edgeTransactionsSummaryRequest) {
-            edgeTransactionsSummaryRequest.reject();
-        }
-        edgeTransactionsSummaryRequest = $q.defer();
-
-        var url = ENV.apiEndpoint['1.2'] + "deliveryservice_stats.json",
-            params = { deliveryServiceName: deliveryService.xmlId, metricType: 'tps_total', serverType: 'edge', startDate: start.seconds(00).format(), endDate: end.seconds(00).format(), interval: interval, exclude: 'series', retentionPeriodInDays: retentionPeriodInDays };
-
-        $http.get(url, { params: params, timeout: edgeTransactionsSummaryRequest.promise, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                edgeTransactionsSummaryRequest.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showError) displayTimoutError({ status: status });
-                edgeTransactionsSummaryRequest.reject();
-            });
-
-        return edgeTransactionsSummaryRequest.promise;
-    };
-
-    this.getEdgeTransactionsByStatusGroup = function(deliveryService, httpStatus, start, end, interval, exclude, ignoreLoadingBar, showError) {
-        var request = $q.defer();
-
-        var url = ENV.apiEndpoint['1.2'] + "deliveryservice_stats.json",
-            params = { deliveryServiceName: deliveryService.xmlId, metricType: 'tps_' + httpStatus, serverType: 'edge', startDate: start.seconds(00).format(), endDate: end.seconds(00).format(), interval: interval, exclude: exclude, retentionPeriodInDays: retentionPeriodInDays };
-
-        $http.get(url, { params: params, ignoreLoadingBar: ignoreLoadingBar })
-            .success(function(result) {
-                request.resolve(result.response);
-            })
-            .error(function(fault, status) {
-                if (showError) displayTimoutError({ status: status });
-                request.reject();
-            });
-
-        return request.promise;
-    };
-
-};
-
-StatsService.$inject = ['$http', '$q', 'messageModel', 'ENV'];
-module.exports = StatsService;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/api/UserService.js b/traffic_portal/v1/app/src/common/api/UserService.js
deleted file mode 100755
index e393dfa..0000000
--- a/traffic_portal/v1/app/src/common/api/UserService.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var UserService = function($http, $state, $q, $location, authService, userModel, messageModel, ENV) {
-
-    var service = this;
-
-    this.getCurrentUser = function() {
-        var token = $location.search().token,
-            deferred = $q.defer();
-
-        if (angular.isDefined(token)) {
-            $location.search('token', null); // remove the token query param
-            authService.tokenLogin(token)
-                .then(
-                    function(response) {
-                        service.getCurrentUser();
-                    }
-                );
-        } else {
-            $http.get(ENV.apiEndpoint['1.2'] + "user/current.json")
-                .success(function(result) {
-                    userModel.setUser(result.response);
-                    deferred.resolve(result.response);
-                })
-                .error(function(fault) {
-                    deferred.reject(fault);
-                });
-
-            return deferred.promise;
-        }
-    };
-
-    this.updateCurrentUser = function(userData) {
-        var deferred = $q.defer();
-        var user = _.omit(userData, 'loaded'); // let's pull the loaded key off of there
-        $http.post(ENV.apiEndpoint['1.2'] + "user/current/update", { user: user })
-            .success(function(result) {
-                userModel.setUser(userData);
-                messageModel.setMessages(result.alerts, false);
-                deferred.resolve(result);
-            })
-            .error(function(fault) {
-                if (angular.isDefined(fault.alerts)) {
-                    messageModel.setMessages(fault.alerts, false);
-                }
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-    this.resetPassword = function(email) {
-        var deferred = $q.defer();
-        $http.post(
-                ENV.apiEndpoint['1.2'] + "user/reset_password", { email: email })
-            .success(function(result) {
-                messageModel.setMessages(result.alerts, false);
-                deferred.resolve(result);
-            })
-            .error(function(fault) {
-                if (angular.isDefined(fault.alerts)) {
-                    messageModel.setMessages(fault.alerts, false);
-                }
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-    this.createUserPurgeJob = function(jobParams) {
-        var deferred = $q.defer();
-        $http.post(ENV.apiEndpoint['1.2'] + "user/current/jobs", jobParams)
-            .success(function(result) {
-                messageModel.setMessages(result.alerts, false);
-                deferred.resolve(result);
-            })
-            .error(function(fault) {
-                if (angular.isDefined(fault.alerts)) {
-                    messageModel.setMessages(fault.alerts, false);
-                }
-                deferred.reject();
-            });
-
-        return deferred.promise;
-    };
-
-};
-
-UserService.$inject = ['$http', '$state', '$q', '$location', 'authService', 'userModel', 'messageModel', 'ENV'];
-module.exports = UserService;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/api/index.js b/traffic_portal/v1/app/src/common/api/index.js
deleted file mode 100755
index 8d8effe..0000000
--- a/traffic_portal/v1/app/src/common/api/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.api', [])
-    .service('authService', require('./AuthService'))
-    .service('deliveryServiceService', require('./DeliveryServiceService'))
-    .service('healthService', require('./HealthService'))
-    .service('portalService', require('./PortalService'))
-    .service('statsService', require('./StatsService'))
-    .service('userService', require('./UserService'))
-;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/directives/enter/EnterDirective.js b/traffic_portal/v1/app/src/common/directives/enter/EnterDirective.js
deleted file mode 100644
index a2b49e3..0000000
--- a/traffic_portal/v1/app/src/common/directives/enter/EnterDirective.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var EnterDirective = function() {
-    return function (scope, element, attrs) {
-        element.bind("keydown keypress", function (event) {
-            if(event.which === 13) {
-                scope.$apply(function (){
-                    scope.$eval(attrs.enter);
-                });
-                event.preventDefault();
-            }
-        });
-    };
-};
-
-module.exports = EnterDirective;
diff --git a/traffic_portal/v1/app/src/common/directives/enter/index.js b/traffic_portal/v1/app/src/common/directives/enter/index.js
deleted file mode 100644
index d141390..0000000
--- a/traffic_portal/v1/app/src/common/directives/enter/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.directives.enter',[])
-    .directive('enter', require('./EnterDirective'))
-;
diff --git a/traffic_portal/v1/app/src/common/directives/formattedDate/FormattedDateDirective.js b/traffic_portal/v1/app/src/common/directives/formattedDate/FormattedDateDirective.js
deleted file mode 100644
index 0d77baa..0000000
--- a/traffic_portal/v1/app/src/common/directives/formattedDate/FormattedDateDirective.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var FormattedDateDirective = function(dateUtils) {
-    return {
-        link: function (scope, element, attrs, ctrl) {
-            ctrl.$formatters.unshift(function (modelValue) {
-                return dateUtils.dateFormat(modelValue, "mmm d yyyy h:MM tt (Z)")
-            });
-
-            ctrl.$parsers.unshift(function (viewValue) {
-                return dateUtils.dateFormat(modelValue, "mmm d yyyy h:MM tt (Z)")
-            });
-        },
-        restrict: 'A',
-        require: 'ngModel'
-    }
-};
-
-module.exports = FormattedDateDirective;
diff --git a/traffic_portal/v1/app/src/common/directives/formattedDate/index.js b/traffic_portal/v1/app/src/common/directives/formattedDate/index.js
deleted file mode 100644
index d2c25ac..0000000
--- a/traffic_portal/v1/app/src/common/directives/formattedDate/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.directives.formattedDate',[])
-    .directive('formattedDate', require('./FormattedDateDirective'))
-;
diff --git a/traffic_portal/v1/app/src/common/directives/match/MatchDirective.js b/traffic_portal/v1/app/src/common/directives/match/MatchDirective.js
deleted file mode 100644
index 5b4aac7..0000000
--- a/traffic_portal/v1/app/src/common/directives/match/MatchDirective.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var MatchDirective = function() {
-    return {
-        require: 'ngModel',
-        link: function (scope, elem, attrs, ctrl) {
-            scope.$watch('[' + attrs.ngModel + ', ' + attrs.match + ']', function(value) {
-                var a = value[0] || '';
-                var b = value[1] || '';
-                ctrl.$setValidity('match', a === b);
-            }, true);
-        }
-    }
-};
-
-module.exports = MatchDirective;
diff --git a/traffic_portal/v1/app/src/common/directives/match/index.js b/traffic_portal/v1/app/src/common/directives/match/index.js
deleted file mode 100644
index 2abd130..0000000
--- a/traffic_portal/v1/app/src/common/directives/match/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.directives.match',[])
-    .directive('match', require('./MatchDirective'))
-;
diff --git a/traffic_portal/v1/app/src/common/directives/rcSubmit/RCSubmitDirective.js b/traffic_portal/v1/app/src/common/directives/rcSubmit/RCSubmitDirective.js
deleted file mode 100644
index be42077..0000000
--- a/traffic_portal/v1/app/src/common/directives/rcSubmit/RCSubmitDirective.js
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var rcSubmitDirective = {
-    'rcSubmit': ['$parse', function ($parse) {
-        return {
-            restrict: 'A',
-            require: ['rcSubmit', '?form'],
-            controller: ['$scope', function ($scope) {
-
-                var formController = null;
-                var attemptHandlers = [];
-
-                this.attempted = false;
-
-                this.onAttempt = function(handler) {
-                    attemptHandlers.push(handler);
-                };
-
-                this.setAttempted = function() {
-                    this.attempted = true;
-
-                    angular.forEach(attemptHandlers, function (handler) {
-                        handler();
-                    });
-                };
-
-                this.setFormController = function(controller) {
-                    formController = controller;
-                };
-
-                this.needsAttention = function (fieldModelController) {
-                    if (!formController) return false;
-
-                    if (fieldModelController) {
-                        return fieldModelController.$invalid &&
-                            (fieldModelController.$dirty || this.attempted);
-                    } else {
-                        return formController && formController.$invalid &&
-                            (formController.$dirty || this.attempted);
-                    }
-                };
-            }],
-            compile: function(cElement, cAttributes, transclude) {
-                return {
-                    pre: function(scope, formElement, attributes, controllers) {
-
-                        var submitController = controllers[0];
-                        var formController = (controllers.length > 1) ? controllers[1] : null;
-
-                        submitController.setFormController(formController);
-
-                        scope.rc = scope.rc || {};
-                        scope.rc[attributes.name] = submitController;
-                    },
-                    post: function(scope, formElement, attributes, controllers) {
-
-                        var submitController = controllers[0];
-                        var formController = (controllers.length > 1) ? controllers[1] : null;
-                        var fn = $parse(attributes.rcSubmit);
-
-                        formElement.bind('submit', function () {
-                            submitController.setAttempted();
-                            if (!scope.$$phase) scope.$apply();
-
-                            if (!formController.$valid) return false;
-
-                            scope.$apply(function() {
-                                fn(scope, {$event:event});
-                            });
-                        });
-                    }
-                };
-            }
-        };
-    }]
-};
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/directives/rcSubmit/index.js b/traffic_portal/v1/app/src/common/directives/rcSubmit/index.js
deleted file mode 100644
index a5ca41c..0000000
--- a/traffic_portal/v1/app/src/common/directives/rcSubmit/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.directives.rcSubmit',[])
-    .directive('rcSubmit', require('./RCSubmitDirective'));
diff --git a/traffic_portal/v1/app/src/common/directives/rcVerifySet/RCVerifySetDirective.js b/traffic_portal/v1/app/src/common/directives/rcVerifySet/RCVerifySetDirective.js
deleted file mode 100644
index ae9f86a..0000000
--- a/traffic_portal/v1/app/src/common/directives/rcVerifySet/RCVerifySetDirective.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var rcVerifySetDirective = {
-    'rcVerifySet': function () {
-        return {
-            restrict: 'A',
-            require: ['^rcSubmit', 'ngModel'],
-            link: function (scope, element, attributes, controllers) {
-                var submitController = controllers[0];
-                var modelController = controllers[1];
-
-                submitController.onAttempt(function() {
-                    modelController.$setViewValue(element.val());
-                });
-            }
-        };
-    }
-};
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/directives/rcVerifySet/index.js b/traffic_portal/v1/app/src/common/directives/rcVerifySet/index.js
deleted file mode 100644
index d9131f1..0000000
--- a/traffic_portal/v1/app/src/common/directives/rcVerifySet/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.directives.rcVerifySet',[])
-    .directive('rcVerifySet', require('./RCVerifySetDirective'));
diff --git a/traffic_portal/v1/app/src/common/directives/selectOnClick/SelectOnClickDirective.js b/traffic_portal/v1/app/src/common/directives/selectOnClick/SelectOnClickDirective.js
deleted file mode 100644
index fdd154b..0000000
--- a/traffic_portal/v1/app/src/common/directives/selectOnClick/SelectOnClickDirective.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var SelectOnClickDirective = function() {
-    return {
-        restrict: 'A',
-        link: function (scope, element, attrs) {
-            element.on('click', function () {
-                this.select();
-            });
-        }
-    };
-};
-
-module.exports = SelectOnClickDirective;
diff --git a/traffic_portal/v1/app/src/common/directives/selectOnClick/index.js b/traffic_portal/v1/app/src/common/directives/selectOnClick/index.js
deleted file mode 100644
index ad45830..0000000
--- a/traffic_portal/v1/app/src/common/directives/selectOnClick/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.directives.selectOnClick',[])
-    .directive('selectOnClick', require('./SelectOnClickDirective'));
diff --git a/traffic_portal/v1/app/src/common/filters/DateRangeFilter.js b/traffic_portal/v1/app/src/common/filters/DateRangeFilter.js
deleted file mode 100644
index b5f9d1c..0000000
--- a/traffic_portal/v1/app/src/common/filters/DateRangeFilter.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DateRangeFilter = function() {
-    return function(items, dateRange) {
-        if (_.isUndefined(dateRange)) return items;
-        var filteredItems = _.filter(items, function(item) {
-            return (
-                ( moment(item.date).isAfter(dateRange.start, 'day') || moment(item.date).isSame(dateRange.start, 'day') ) &&
-                ( moment(item.date).isBefore(dateRange.end, 'day') || moment(item.date).isSame(dateRange.end, 'day') )
-            );
-        });
-        return filteredItems;
-    };
-};
-
-DateRangeFilter.$inject = [];
-module.exports = DateRangeFilter;
diff --git a/traffic_portal/v1/app/src/common/filters/OffsetFilter.js b/traffic_portal/v1/app/src/common/filters/OffsetFilter.js
deleted file mode 100644
index 0e0e9c0..0000000
--- a/traffic_portal/v1/app/src/common/filters/OffsetFilter.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var OffsetFilter = function() {
-    return function(input, start) {
-        if($.isArray(input)) {
-            start = parseInt(start, 10);
-            return input.slice(start);
-        }
-    };
-};
-
-OffsetFilter.$inject = [];
-module.exports = OffsetFilter;
diff --git a/traffic_portal/v1/app/src/common/filters/PartitionFilter.js b/traffic_portal/v1/app/src/common/filters/PartitionFilter.js
deleted file mode 100644
index d3f03af..0000000
--- a/traffic_portal/v1/app/src/common/filters/PartitionFilter.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var PartitionFilter = function() {
-    var cache = {};
-    return function(arr, size) {
-        if (!arr) { return; }
-        var newArr = [];
-        for (var i=0; i<arr.length; i+=size) {
-            newArr.push(arr.slice(i, i+size));
-        }
-        var arrString = JSON.stringify(arr);
-        var fromCache = cache[arrString+size];
-        if (JSON.stringify(fromCache) === JSON.stringify(newArr)) {
-            return fromCache;
-        }
-        cache[arrString+size] = newArr;
-        return newArr;
-    };
-};
-
-PartitionFilter.$inject = [];
-module.exports = PartitionFilter;
diff --git a/traffic_portal/v1/app/src/common/filters/PercentFilter.js b/traffic_portal/v1/app/src/common/filters/PercentFilter.js
deleted file mode 100644
index 3f871e3..0000000
--- a/traffic_portal/v1/app/src/common/filters/PercentFilter.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var PercentFilter = function() {
-    return function(input) {
-        input = parseFloat(input);
-        input *= 100;
-        if(input % 1 === 0) {
-            input = input.toFixed(0);
-        }
-        else {
-            input = input.toFixed(2);
-        }
-        return input + '%';
-    };
-};
-
-PercentFilter.$inject = [];
-module.exports = PercentFilter;
diff --git a/traffic_portal/v1/app/src/common/filters/UnitsFilter.js b/traffic_portal/v1/app/src/common/filters/UnitsFilter.js
deleted file mode 100644
index eff8a8d..0000000
--- a/traffic_portal/v1/app/src/common/filters/UnitsFilter.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var UnitsFilter = function(numberUtils) {
-    return function(kilobits, prettify) {
-        var friendlyUnit = numberUtils.shrink(kilobits);
-        return (prettify) ? numberUtils.addCommas(friendlyUnit[0]) + ' ' + friendlyUnit[1] : friendlyUnit[0];
-    };
-};
-
-UnitsFilter.$inject = ['numberUtils'];
-module.exports = UnitsFilter;
diff --git a/traffic_portal/v1/app/src/common/filters/index.js b/traffic_portal/v1/app/src/common/filters/index.js
deleted file mode 100755
index 0422370..0000000
--- a/traffic_portal/v1/app/src/common/filters/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.filters', [])
-    //filters
-    .filter('dateRangeFilter', require('./DateRangeFilter'))
-    .filter('offsetFilter', require('./OffsetFilter'))
-    .filter('partitionFilter', require('./PartitionFilter'))
-    .filter('percentFilter', require('./PercentFilter'))
-    .filter('unitsFilter', require('./UnitsFilter'))
-;
diff --git a/traffic_portal/v1/app/src/common/models/AuthModel.js b/traffic_portal/v1/app/src/common/models/AuthModel.js
deleted file mode 100644
index ac61e9a..0000000
--- a/traffic_portal/v1/app/src/common/models/AuthModel.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var AuthModel = function() {};
-
-AuthModel.$inject = [];
-module.exports = AuthModel;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/models/ChartModel.js b/traffic_portal/v1/app/src/common/models/ChartModel.js
deleted file mode 100644
index 6a7c74f..0000000
--- a/traffic_portal/v1/app/src/common/models/ChartModel.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartModel = function($rootScope, $location, $interval, messageModel) {
-
-    var chart,
-        model = this;
-
-    var autoRefreshInterval;
-
-    var increment = 1,
-        unit = 'm';
-
-    var createAutoRefreshInterval = function() {
-        killAutoRefreshInterval();
-        autoRefreshInterval = $interval(function() { rollDates() }, (increment*60*1000)); // every X minutes
-    };
-
-    var killAutoRefreshInterval = function() {
-        if (angular.isDefined(autoRefreshInterval)) {
-            $interval.cancel(autoRefreshInterval);
-            autoRefreshInterval = undefined;
-        }
-    };
-
-    var rollDates = function() {
-        var locationStart = $location.search().start,
-            locationEnd = $location.search().end;
-
-        model.chart.start = moment(model.chart.start).add(increment, unit);
-        model.chart.end = moment(model.chart.end).add(increment, unit);
-
-        if (locationStart) {
-            $location.search('start', model.chart.start.format());
-        }
-
-        if (locationEnd) {
-            $location.search('end', model.chart.end.format());
-        }
-
-        $rootScope.$broadcast('chartModel::dateRoll', { start: model.chart.start, end: model.chart.end });
-    };
-
-    this.resetChart = function() {
-        var start = $location.search().start,
-            end = $location.search().end;
-
-        chart = {};
-        chart.start = moment().subtract(1, 'd');
-        chart.end = moment();
-        chart.autoRefresh = true;
-
-        if (angular.isDefined(start) && angular.isDefined(end)) {
-            if (moment(start).isValid() && moment(end).isValid()) {
-                chart.start = moment(start);
-                chart.end =  moment(end);
-                chart.autoRefresh = false;
-            } else {
-                messageModel.setMessages([ { level: 'error', text: 'Invalid date format detected. Reverting to default.' } ], true);
-            }
-        }
-
-        if (chart.autoRefresh) {
-            createAutoRefreshInterval();
-        } else {
-            killAutoRefreshInterval();
-        }
-
-        var rangeParams = model.calculateRange(chart.start, chart.end);
-        chart.range = chart.end.diff(chart.start, rangeParams.interval) + rangeParams.abbrev;
-        if (!rangeParams.exact) {
-            chart.range = '~' + chart.range;
-        }
-
-        this.chart = chart;
-    };
-
-    this.changeDates = function(start, end) {
-        $location.search('start', start.format());
-        $location.search('end', end.format());
-        $rootScope.$broadcast('chartModel::dateChange', { start: start, end: end });
-    };
-
-    this.calculateRange = function(start, end) {
-        // if greater than 1d, use day, if greater than 1hr, use hr, else minute
-        var rangeParams = {};
-        if (end.diff(start, 'days', true) >= 1) {
-            rangeParams = { interval: 'days', abbrev: 'd', exact: (end.diff(start, 'days', true) % 1) == 0 };
-        } else if (end.diff(start, 'hours', true) >= 1) {
-            rangeParams = { interval: 'hours', abbrev: 'h', exact: (end.diff(start, 'hours', true) % 1) == 0 };
-        } else {
-            rangeParams = { interval: 'minutes', abbrev: 'm', exact: (end.diff(start, 'minutes', true) % 1) == 0 };
-        }
-        return rangeParams;
-    };
-
-    $rootScope.$watch(
-        function() { return model.chart.autoRefresh; },
-        function(newValue, oldValue) {
-            if (newValue !== oldValue) {
-                if (newValue) {
-                    createAutoRefreshInterval();
-                } else {
-                    killAutoRefreshInterval();
-                }
-            }
-        }
-    );
-
-    $rootScope.$watch('online', function(newStatus) {
-        if (newStatus === false) {
-            model.chart.autoRefresh = false;
-        }
-    });
-
-    var init = function () {
-        model.resetChart();
-    };
-    init();
-
-};
-
-ChartModel.$inject = ['$rootScope', '$location', '$interval', 'messageModel'];
-module.exports = ChartModel;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/models/DeliveryServicesModel.js b/traffic_portal/v1/app/src/common/models/DeliveryServicesModel.js
deleted file mode 100644
index 260541f..0000000
--- a/traffic_portal/v1/app/src/common/models/DeliveryServicesModel.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DeliveryServicesModel = function() {
-
-    var model = this;
-
-    var deliveryServices = [];
-    var loaded = false;
-
-    this.deliveryServices = deliveryServices;
-    this.loaded = loaded;
-
-    this.getDeliveryService = function(dsId) {
-        return _.find(model.deliveryServices, function(ds){ return parseInt(ds.id) == parseInt(dsId) });
-    };
-
-    this.setDeliveryServices = function(deliveryServicesData) {
-        this.deliveryServices = deliveryServicesData;
-        this.loaded = true;
-    };
-
-    this.resetDeliveryServices = function() {
-        this.deliveryServices = [];
-        this.loaded = false;
-    };
-
-};
-
-DeliveryServicesModel.$inject = [];
-module.exports = DeliveryServicesModel;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/models/MessageModel.js b/traffic_portal/v1/app/src/common/models/MessageModel.js
deleted file mode 100644
index ca0d007..0000000
--- a/traffic_portal/v1/app/src/common/models/MessageModel.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var MessageModel = function($rootScope) {
-
-    var model = this;
-    var queue = [];
-
-    var messages = {};
-    messages.loaded = false;
-    messages.content = [];
-
-    this.messages = messages;
-
-    this.setMessages = function(messagesArray, delay) {
-        // delay should be true if a redirect follows...
-        if (!angular.isArray(messagesArray)) return;
-        var messages = {};
-        messages.loaded = true;
-        messages.content = messagesArray;
-        if (delay) {
-            queue[0] = messages; // queue up messages to display after a location change
-        } else {
-            model.messages = messages; // show the messages asap
-            queue = []; // clear the queue as messages will be shown immediately
-        }
-    };
-
-    this.resetMessages = function() {
-        messages = {};
-        messages.loaded = false;
-        messages.content = [];
-
-        this.messages = messages;
-    };
-
-    this.removeMessage = function(message) {
-        model.messages.content = _.without(model.messages.content, message);
-    };
-
-    $rootScope.$on("$locationChangeStart", function() {
-        model.resetMessages();
-    });
-
-    $rootScope.$on("$locationChangeSuccess", function() {
-        model.messages = queue.shift() || {};
-    });
-
-};
-
-MessageModel.$inject = ['$rootScope'];
-module.exports = MessageModel;
diff --git a/traffic_portal/v1/app/src/common/models/PropertiesModel.js b/traffic_portal/v1/app/src/common/models/PropertiesModel.js
deleted file mode 100644
index 32c8a73..0000000
--- a/traffic_portal/v1/app/src/common/models/PropertiesModel.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var PropertiesModel = function() {
-
-    this.properties = {};
-    this.loaded = false;
-
-    this.setProperties = function(properties) {
-        this.properties = properties;
-        this.loaded = true;
-    };
-
-};
-
-PropertiesModel.$inject = [];
-module.exports = PropertiesModel;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/models/UserModel.js b/traffic_portal/v1/app/src/common/models/UserModel.js
deleted file mode 100755
index 07f39c2..0000000
--- a/traffic_portal/v1/app/src/common/models/UserModel.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var UserModel = function($rootScope, messageModel) {
-
-    var user = {};
-    user.loaded = false;
-    this.user = user;
-
-    this.setUser = function(userData) {
-        user.loaded = true;
-        user = angular.extend(user, userData);
-        if (user.newUser) {
-            user.username = ''; // new users were given a temp username that needs to be ditched
-        }
-        if (!user.localUser) {
-            messageModel.setMessages([ { level: 'success', text: 'Logged in as read-only user.' } ], false);
-        }
-        $rootScope.$broadcast('userModel::userUpdated', user);
-    };
-
-    this.resetUser = function() {
-        user = {};
-        user.loaded = false;
-        this.user = user;
-        $rootScope.$broadcast('userModel::userUpdated', user);
-    };
-
-};
-
-UserModel.$inject = ['$rootScope', 'messageModel'];
-module.exports = UserModel;
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/models/index.js b/traffic_portal/v1/app/src/common/models/index.js
deleted file mode 100755
index 873c311..0000000
--- a/traffic_portal/v1/app/src/common/models/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.models', [])
-    .service('authModel', require('./AuthModel'))
-    .service('chartModel', require('./ChartModel'))
-    .service('deliveryServicesModel', require('./DeliveryServicesModel'))
-    .service('messageModel', require('./MessageModel'))
-    .service('propertiesModel', require('./PropertiesModel'))
-    .service('userModel', require('./UserModel'));
diff --git a/traffic_portal/v1/app/src/common/modules/cacheGroups/CacheGroupsController.js b/traffic_portal/v1/app/src/common/modules/cacheGroups/CacheGroupsController.js
deleted file mode 100644
index 93e94fa..0000000
--- a/traffic_portal/v1/app/src/common/modules/cacheGroups/CacheGroupsController.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var CacheGroupsController = function(entityId, service, showDownload, $scope, $rootScope, $interval, jsonUtils, messageModel) {
-
-    var locationsInterval;
-
-    var getLocations = function(showTimeoutError) {
-        if (!$rootScope.online) return;
-
-        var ignoreLoadingBar = true;
-        service.getCacheGroupHealth(entityId, ignoreLoadingBar, showTimeoutError)
-            .then(
-            function(response) {
-                $scope.locationHealth = response;
-            },
-            function(fault) {
-                // do nothing
-            }).finally(function() {
-                $scope.loaded = true;
-            });
-    };
-
-    $scope.loaded = false;
-
-    $scope.showDownload = showDownload;
-
-    $scope.locationHealth = {
-        totalOnline: 0,
-        totalOffline: 0,
-        locations: []
-    };
-
-    // pagination
-    $scope.currentLocationPage = 1;
-    $scope.locationsPerPage = 10;
-
-    $scope.onlinePercent = function(location) {
-        return location.online / (location.online + location.offline);
-    };
-
-    $scope.downloadCaches = function() {
-        service.getServers(entityId, false)
-            .then(
-                function(response) {
-                    jsonUtils.convertToCSV(response, 'Caches', ['hostName', 'domainName', 'type', 'cachegroup', 'ipAddress', 'ip6Address']);
-                },
-                function(fault) {
-                    messageModel.setMessages([ { level: 'error', text: 'Failed to download cache servers.' } ], false);
-                }
-            );
-    };
-
-    $scope.$on("$destroy", function() {
-        if (angular.isDefined(locationsInterval)) {
-            $interval.cancel(locationsInterval);
-            locationsInterval = undefined;
-        }
-    });
-
-    var init = function () {
-        getLocations(true);
-        locationsInterval = $interval(function() { getLocations(false) }, 60 * 1000);
-    };
-    init();
-};
-
-CacheGroupsController.$inject = ['entityId', 'service', 'showDownload', '$scope', '$rootScope', '$interval', 'jsonUtils', 'messageModel'];
-module.exports = CacheGroupsController;
diff --git a/traffic_portal/v1/app/src/common/modules/cacheGroups/_cacheGroups.scss b/traffic_portal/v1/app/src/common/modules/cacheGroups/_cacheGroups.scss
deleted file mode 100644
index 01c8d51..0000000
--- a/traffic_portal/v1/app/src/common/modules/cacheGroups/_cacheGroups.scss
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#cache-groups-outer-container {
-
-  #cacheGroupsOverallHealth {
-
-    position: relative;
-
-    .download-caches-file {
-      position: absolute;
-      top: 10px;
-      right: 20px;
-    }
-
-  }
-
-  #cacheGroupsContainer {
-    max-height: 452px;
-    margin-bottom: 0;
-
-    .list-group-item {
-      background-color: transparent;
-    }
-
-    .cache-group-health {
-      height: 45px;
-
-      .cache-groups-table {
-        margin-top: -10px;
-        border-style: none;
-
-        td {
-          border-top: none !important;
-          padding: 12px 8px !important;
-        }
-
-      }
-
-    }
-
-  }
-
-  .cache-groups-pagination {
-    margin: 0 0 10px 0;
-    float: left;
-  }
-
-  .cache-group-search-form {
-    float: right;
-    width: 250px;
-    margin-bottom: 10px;
-  }
-
-}
-
-#cacheGroupsLoadingContainer {
-  height: 555px;
-  background-color: transparent;
-}
diff --git a/traffic_portal/v1/app/src/common/modules/cacheGroups/cacheGroups.tpl.html b/traffic_portal/v1/app/src/common/modules/cacheGroups/cacheGroups.tpl.html
deleted file mode 100644
index 0db1915..0000000
--- a/traffic_portal/v1/app/src/common/modules/cacheGroups/cacheGroups.tpl.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="cache-groups-outer-container" ng-show="loaded">
-    <div id="cacheGroupsOverallHealth">
-        <h4 class="cache-groups-online">Cache Groups <small>{{locationHealth.totalOnline/(locationHealth.totalOnline + locationHealth.totalOffline) | percentFilter}} online</small></h4>
-        <i class="download-caches-file fa fa-download fa-lg" title="Download Cache Servers" ng-click="downloadCaches()" ng-show="showDownload"></i>
-    </div>
-    <div id="cacheGroupsContainer">
-        <div class="alert alert-info" ng-show="(locationHealth.cachegroups | filter:search:strict).length == 0">
-            No matching cache groups
-        </div>
-        <div class="list-group">
-            <a class="cache-group-health list-group-item" ng-repeat="location in locationHealth.cachegroups | orderBy:[onlinePercent, 'name'] | filter:search:strict | offsetFilter:(currentLocationPage-1)*locationsPerPage | limitTo:locationsPerPage">
-                <div class="row">
-                    <table class="cache-groups-table table">
-                        <tbody>
-                        <tr>
-                            <td class="col-lg-4 col-md-4 col-sm-4">{{location.name}}</td>
-                            <td class="col-lg-4 col-md-4 col-sm-4">{{location.online/(location.online + location.offline) | percentFilter}} Online</td>
-                            <td class="col-lg-4 col-md-4 col-sm-4">{{location.online}} Servers Online | {{location.offline}} Servers Offline</td>
-                        </tr>
-                        </tbody>
-                    </table>
-                </div>
-            </a>
-        </div>
-    </div>
-    <div>
-        <div ng-show="(locationHealth.cachegroups | filter:search:strict).length > 0">
-            <uib-pagination class="cache-groups-pagination pagination-md" boundary-links="true" max-size="2" total-items="(locationHealth.cachegroups | filter:search:strict).length" items-per-page="locationsPerPage" ng-model="currentLocationPage" previous-text="&lsaquo;" next-text="&rsaquo;" first-text="&laquo;" last-text="&raquo;"></uib-pagination>
-        </div>
-        <div class="input-group cache-group-search-form">
-            <input type="text" class="filter-input form-control" placeholder="Filter cache groups..." ng-model="search.name">
-            <span class="filter-input-group-btn input-group-btn">
-                <button class="btn btn-default" type="button"><i class="fa fa-search"></i></button>
-            </span>
-        </div>
-    </div>
-</div>
-<div id="cacheGroupsLoadingContainer" class="jumbotron loading-text" ng-show="!loaded">Loading cache groups...</div>
diff --git a/traffic_portal/v1/app/src/common/modules/cacheGroups/index.js b/traffic_portal/v1/app/src/common/modules/cacheGroups/index.js
deleted file mode 100644
index 7c15e75..0000000
--- a/traffic_portal/v1/app/src/common/modules/cacheGroups/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.cacheGroups', [])
-    .controller('CacheGroupsController', require('./CacheGroupsController'));
diff --git a/traffic_portal/v1/app/src/common/modules/chart/_chart.scss b/traffic_portal/v1/app/src/common/modules/chart/_chart.scss
deleted file mode 100644
index 31e8284..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/_chart.scss
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-.metrics {
-  .header {
-    padding: 10px;
-    margin-top: 20px;
-    margin-bottom: 0px;
-  }
-  .summary-hr {
-    margin-top: 5px;
-    margin-bottom: 5px;
-  }
-}
-
-.show-summary-header {
-  height: 10px;
-}
-
-.show-summary {
-  float: right;
-}
-
-.hide-summary {
-  position: absolute;
-  top: 35px;
-  right: 25px;
-}
-
-.summary-metrics {
-  font-size: 13px;
-  padding: 10px;
-
-  table {
-    margin-bottom: 0px;
-  }
-
-  .total {
-    text-transform: uppercase;
-  }
-
-}
-
-.nav > li > a:hover, .nav > li > a:focus {
-  text-decoration: underline;
-  background-color: transparent;
-}
-
-.nav-pills > li.header {
-  text-align: center;
-  color: #fff;
-  background-color: #428bca;
-  padding: 22px;
-  font-size: 16px;
-}
-
-.nav-pills > li > a {
-  border-radius: 0px;
-}
-
-.nav-stacked > li {
-  margin-top: 0px !important;
-  margin-left: 0;
-  border-bottom:1px solid #A8A8A8;
-  border-left:1px solid #A8A8A8;
-  border-right:1px solid #A8A8A8;
-  &:first-child {
-    border-top:1px solid #A8A8A8;
-    border-bottom:2px solid #A8A8A8;
-  }
-}
-
-.selected-chart {
-  border-right:4px solid #428bca;
-}
diff --git a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/ChartBandwidthPerSecondController.js b/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/ChartBandwidthPerSecondController.js
deleted file mode 100644
index f5221a9..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/ChartBandwidthPerSecondController.js
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartBandwidthPerSecondController = function(entity, showSummary, $rootScope, $scope, $uibModal, $q, $timeout, $filter, dateUtils, numberUtils, messageModel, propertiesModel, statsService) {
-
-    $scope.chartName = propertiesModel.properties.charts.bandwidthPerSecond.name;
-
-    var chartDatesChanged = false,
-        chartStart,
-        chartEnd;
-
-    var summaryStart,
-        summaryEnd;
-
-    var chartRangeTimer;
-
-    var loadBandwidth = function(start, end) {
-        if (!entity || !chartDatesChanged) return;
-        chartDatesChanged = false;
-        $scope.bandwidthChartDates = {
-            start: start,
-            end: end
-        };
-        getBandwidth(start, end);
-        $scope.refreshBpsSummaryMetrics(0);
-    };
-
-    var getBandwidth = function(start, end) {
-
-        var exclude = '',
-            ignoreLoadingBar = true,
-            showError = true,
-            promises = [];
-
-        // edge bandwidth
-        promises.push(statsService.getEdgeBandwidth(entity, start, end, $scope.bandwidthChartInterval, exclude, ignoreLoadingBar, showError));
-
-        $q.all(promises)
-            .then(
-                function(responses) {
-                    // set chart data
-                    var edgeBandwidthChartData = buildEdgeBandwidthChartData(responses[0], start, false);
-
-                    $timeout(function () {
-                        buildBandwidthChart(edgeBandwidthChartData);
-                    }, 100);
-                },
-                function(fault) {
-                    buildBandwidthChart([]); // build an empty chart
-                }).finally(function() {
-                    $scope.bandwidthLoaded = true;
-                });
-    };
-
-    var buildEdgeBandwidthChartData = function(result, start, incremental) {
-        var normalizedChartData = [],
-            summary = result.summary,
-            series = result.series;
-
-        if (angular.isDefined(series)) {
-            if (!incremental && angular.isDefined(summary)) {
-                $scope.unitSize = numberUtils.shrink(summary.average)[1];
-            }
-            _.each(series.values, function(seriesItem) {
-                if (moment(seriesItem[0]).isSame(start) || moment(seriesItem[0]).isAfter(start)) {
-                    if (_.isNumber(seriesItem[1]) || !incremental) {
-                        normalizedChartData.push([ moment(seriesItem[0]).valueOf(), numberUtils.convertTo(seriesItem[1], $scope.unitSize) ]); // converts data to appropriate unit
-                    }
-                }
-            });
-        }
-
-        return normalizedChartData;
-    };
-
-    var buildBandwidthChart = function(edgeBandwidthChartData) {
-
-        var options = {
-            xaxis: {
-                mode: "time",
-                timezone: "browser",
-                twelveHourClock: true
-            },
-            yaxes: [
-                {
-                    position: "left",
-                    axisLabel: $scope.unitSize + "ps",
-                    axisLabelUseCanvas: true,
-                    axisLabelFontSizePixels: 12,
-                    axisLabelFontFamily: 'Verdana, Arial',
-                    axisLabelPadding: 3
-                }
-            ],
-            grid: { hoverable: true },
-            tooltip: {
-                show: true,
-                content: function(label, xval, yval, flotItem){
-                    var tooltipString = dateUtils.dateFormat(xval, "ddd mmm d yyyy h:MM:ss tt (Z)") + '<br>';
-                    tooltipString += '<span>' + label + ': ' + $filter('number')(yval, 2) + ' ' + $scope.unitSize + 'ps</span><br>'
-                    return tooltipString;
-                }
-            }
-        };
-
-        $.plot($("#bps-chart"), [ { label: "Edge", data: edgeBandwidthChartData } ], options);
-
-    };
-
-    var updateChartDates = function(start, end) {
-        $scope.dateRangeText = dateUtils.dateFormat(start.toDate(), "ddd mmm d yyyy h:MM tt (Z)") + ' to ' + dateUtils.dateFormat(end.toDate(), "ddd mmm d yyyy h:MM tt (Z)");
-    };
-
-    var getSummaryMetrics = function(start, end) {
-
-        var exclude = 'series',
-            ignoreLoadingBar = true,
-            showError = false,
-            promises = [];
-
-        // edge summary
-        promises.push(statsService.getEdgeBandwidthSummary(entity, start, end, $scope.bandwidthChartInterval, exclude, ignoreLoadingBar, showError));
-
-        $q.all(promises)
-            .then(
-                function(responses) {
-                    var edgeSummary = responses[0].summary;
-                    if (angular.isDefined(edgeSummary)) {
-                        $scope.bpsEdgeSummary = edgeSummary;
-                    } else {
-                        $scope.resetEdgeSummary();
-                    }
-                },
-                function(fault) {
-                    $scope.resetEdgeSummary();
-                }).finally(function() {
-                    $scope.updatingBpsSummaryMetrics = false;
-                });
-    };
-
-    var onDateChange = function(args) {
-        chartDatesChanged = true;
-        chartStart = args.start;
-        chartEnd = args.end;
-        summaryStart = args.start;
-        summaryEnd = args.end;
-        updateChartDates(chartStart, chartEnd);
-        loadBandwidth(chartStart, chartEnd);
-    };
-
-    $scope.showSummary = showSummary;
-
-    $scope.updatingBpsSummaryMetrics = false;
-
-    $scope.bandwidthLoaded = false;
-
-    $scope.bandwidthChartInterval = '60s';
-
-    $scope.unitSize = 'Kb';
-
-    $scope.ratio = numberUtils.ratio;
-
-    $scope.resetEdgeSummary = function() {
-        $timeout(function(){
-            $scope.bpsEdgeSummary = {
-                max: 0,
-                min: 0,
-                totalBytes: 0,
-                average: 0,
-                fifthPercentile: 0,
-                ninetyFifthPercentile: 0,
-                ninetyEighthPercentile: 0
-            };
-        });
-    };
-    $scope.resetEdgeSummary();
-
-    $scope.refreshBpsSummaryMetrics = function(delay) {
-        if (!$scope.showSummary) return; // don't bother. summary hidden...
-
-        $timeout(function() { $scope.updatingBpsSummaryMetrics = true; });
-        if (chartRangeTimer) {
-            $timeout.cancel(chartRangeTimer);
-        }
-        chartRangeTimer = $timeout(function () {
-            getSummaryMetrics(summaryStart, summaryEnd);
-        }, delay);
-    };
-
-    $scope.hideSummaryMetrics = function() {
-        $scope.showSummary = false;
-        $scope.resetEdgeSummary();
-    };
-
-    $scope.showSummaryMetrics = function() {
-        $scope.showSummary = true;
-        $scope.refreshBpsSummaryMetrics(0);
-    };
-
-    $scope.$on('chartModel::dateChange', function(event, args) {
-        onDateChange(args);
-    });
-
-    $scope.$on('chartModel::dateRoll', function(event, args) {
-        onDateChange(args);
-    });
-
-};
-
-ChartBandwidthPerSecondController.$inject = ['entity', 'showSummary', '$rootScope', '$scope', '$uibModal', '$q', '$timeout', '$filter', 'dateUtils', 'numberUtils', 'messageModel', 'propertiesModel', 'statsService'];
-module.exports = ChartBandwidthPerSecondController;
diff --git a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/_chart.bandwidthPerSecond.scss b/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/_chart.bandwidthPerSecond.scss
deleted file mode 100644
index 6eddf96..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/_chart.bandwidthPerSecond.scss
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#bpsChartContainer {
-  position: relative;
-  text-align: center;
-  background-color: transparent;
-  padding: 30px 60px;
-
-  #bps-loading, #bps-chart {
-    height: 400px;
-    min-width: 310px;
-  }
-
-  #bps-loading {
-    padding-top: 40px;
-  }
-
-  #bps-metrics {
-    .header {
-      margin-bottom: 0;
-    }
-  }
-
-}
-
diff --git a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/chart.bandwidthPerSecond.tpl.html b/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/chart.bandwidthPerSecond.tpl.html
deleted file mode 100644
index 9848a81..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/chart.bandwidthPerSecond.tpl.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="chart-container">
-    <div id="bpsChartContainer">
-        <h6>{{chartName}} ({{unitSize}}ps)</h6>
-        <div id="bps-loading" ng-show="!bandwidthLoaded">
-            <div class="loading-text">Loading bandwidth...</div>
-        </div>
-        <div id="bps-chart" ng-show="bandwidthLoaded"></div>
-    </div>
-    <h6 ng-show="!showSummary" class="show-summary-header"><small class="show-summary">[ <a ng-click="showSummaryMetrics()">show summary metrics</a> ]</small></h6>
-    <div id="bps-metrics" ng-show="showSummary" class="row metrics">
-        <div class="col-sm-12 col-md-12">
-            <h6 class="header">
-                <div>{{chartName}} Summary Metrics
-                    <small ng-show="updatingBpsSummaryMetrics">[ calculating <i class="fa fa-spin fa-spinner fa-fw"></i> ]</small>
-                    <small ng-show="!updatingBpsSummaryMetrics" class="summary-refresh">[ <a ng-click="refreshBpsSummaryMetrics(0)">refresh</a> ]</small>
-                    <small class="hide-summary">[ <a ng-click="hideSummaryMetrics()">hide summary metrics</a> ]</small>
-                </div>
-                <hr class="summary-hr">
-                <div><small>{{dateRangeText}}</small></div>
-            </h6>
-            <div class="summary-metrics">
-                <table class="table table-condensed">
-                    <thead>
-                    <tr>
-                        <th>Server Type</th>
-                        <th>Delivered</th>
-                        <th>95th percentile</th>
-                        <th>Max</th>
-                        <th>Min</th>
-                        <th>Avg</th>
-                        <th>Peak-to-Avg</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr>
-                        <td>Edge</td>
-                        <td class="total">{{bpsEdgeSummary.totalBytes | unitsFilter:true}}</td>
-                        <td>{{bpsEdgeSummary.ninetyFifthPercentile | unitsFilter:true}}ps</td>
-                        <td>{{bpsEdgeSummary.max | unitsFilter:true}}ps</td>
-                        <td>{{bpsEdgeSummary.min | unitsFilter:true}}ps</td>
-                        <td>{{bpsEdgeSummary.average | unitsFilter:true}}ps</td>
-                        <td>{{ratio(bpsEdgeSummary.max, bpsEdgeSummary.average)}}</td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-    </div>
-</div>
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/index.js b/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/index.js
deleted file mode 100644
index 2ced45d..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/bandwidthPerSecond/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.chart.bandwidthPerSecond', [])
-    .controller('ChartBandwidthPerSecondController', require('./ChartBandwidthPerSecondController'));
diff --git a/traffic_portal/v1/app/src/common/modules/chart/capacity/ChartCapacityController.js b/traffic_portal/v1/app/src/common/modules/chart/capacity/ChartCapacityController.js
deleted file mode 100644
index deb664f..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/capacity/ChartCapacityController.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartCapacityController = function(entityId, service, $rootScope, $scope, $interval, $filter) {
-
-    var capacityInterval,
-        capacityLoaded = false;
-
-    var getCapacity = function(showTimeoutError) {
-        if (!$rootScope.online) return;
-
-        var ignoreLoadingBar = true;
-        service.getCapacity(entityId, ignoreLoadingBar, showTimeoutError)
-            .then(
-            function(response) {
-                capacityLoaded = true;
-                var maintenancePercent = Math.round(response.maintenancePercent * 100) / 100,
-                    unavailablePercent = Math.round(response.unavailablePercent * 100) / 100,
-                    availablePercent = Math.round(response.availablePercent * 100) / 100,
-                    utilizedPercent = Math.round(response.utilizedPercent * 100) / 100;
-
-                var data = [];
-
-                if (maintenancePercent > 0) {
-                    data.push({
-                        label: "Maintenance",
-                        color: '#cccccc',
-                        data: [ [ maintenancePercent, 1 ] ]
-                    });
-                }
-                if (unavailablePercent > 0) {
-                    data.push({
-                        label: "Down",
-                        color: '#a94442',
-                        data: [ [ unavailablePercent, 1 ] ]
-                    });
-                }
-                if (availablePercent > 0) {
-                    data.push({
-                        label: "Available",
-                        color: '#91ca32',
-                        data: [ [ availablePercent, 1 ] ]
-                    });
-                }
-                if (utilizedPercent > 0) {
-                    data.push({
-                        label: "Utilized",
-                        color: '#357ebd',
-                        data: [ [ utilizedPercent, 1 ] ]
-                    });
-                }
-
-                buildCapacityChart(data);
-            });
-    };
-
-    var buildCapacityChart = function(data) {
-
-        var options = {
-            series: {
-                stack: true,
-                lines: {show: false, steps: false },
-                bars: {
-                    show: true,
-                    horizontal: true,
-                    barWidth: 0.9,
-                    align: 'center'
-                }
-            },
-            grid: {
-                borderWidth: 0,
-                hoverable: true
-            },
-            tooltip: {
-                show: true,
-                content: function(label, xval, yval, flotItem){
-                    return '<span>' + label + ': ' + $filter('number')(xval, 2) + '%</span><br>';
-                }
-            },
-            yaxis: {
-                ticks: [[ 1,'%' ]]
-            }
-        };
-
-        $.plot($("#capacity-chart"), data, options);
-    };
-
-    angular.element(document).ready(function () {
-        getCapacity(true);
-        capacityInterval = $interval(function() { getCapacity(false) }, 5 * 60 * 1000); // every 5 mins capacity will refresh
-    });
-
-    $scope.$on("$destroy", function() {
-        if (angular.isDefined(capacityInterval)) {
-            $interval.cancel(capacityInterval);
-            capacityInterval = undefined;
-        }
-    });
-
-};
-
-ChartCapacityController.$inject = ['entityId', 'service', '$rootScope', '$scope', '$interval', '$filter'];
-module.exports = ChartCapacityController;
diff --git a/traffic_portal/v1/app/src/common/modules/chart/capacity/_chart.capacity.scss b/traffic_portal/v1/app/src/common/modules/chart/capacity/_chart.capacity.scss
deleted file mode 100644
index 5fee086..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/capacity/_chart.capacity.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#capacityChartContainer {
-  text-align: center;
-}
-
-#capacity-chart {
-  height: 200px;
-  width: 100%;
-}
diff --git a/traffic_portal/v1/app/src/common/modules/chart/capacity/chart.capacity.tpl.html b/traffic_portal/v1/app/src/common/modules/chart/capacity/chart.capacity.tpl.html
deleted file mode 100644
index b5b1ca7..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/capacity/chart.capacity.tpl.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="capacityChartContainer">
-    <h6>Overall Capacity %</h6>
-    <div id="capacity-chart"></div>
-</div>
-
diff --git a/traffic_portal/v1/app/src/common/modules/chart/capacity/index.js b/traffic_portal/v1/app/src/common/modules/chart/capacity/index.js
deleted file mode 100644
index b60e0db..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/capacity/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.chart.capacity', [])
-    .controller('ChartCapacityController', require('./ChartCapacityController'));
diff --git a/traffic_portal/v1/app/src/common/modules/chart/dates/ChartDatesController.js b/traffic_portal/v1/app/src/common/modules/chart/dates/ChartDatesController.js
deleted file mode 100644
index f0bc83e..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/dates/ChartDatesController.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartDatesController = function(customLabel, showAutoRefreshBtn, $scope, $location, $timeout, chartModel, messageModel) {
-
-    var setRange = function() {
-        var rangeParams = chartModel.calculateRange($scope.chartData.start, $scope.chartData.end);
-        $scope.tempChartData.range = $scope.chartData.end.diff($scope.chartData.start, rangeParams.interval) + rangeParams.abbrev;
-        if (!rangeParams.exact) {
-            $scope.tempChartData.range = '~' + $scope.tempChartData.range;
-        }
-        $scope.chartData.range = $scope.tempChartData.range;
-    };
-
-    var createNowBtn = function() {
-        var $nowBtn = $('<button type="button" class="dates-now-btn btn btn-block action-btn">Now</button>');
-        $nowBtn.click(function () {
-            angular.element(document.getElementById('rangeInput')).scope().setEndToNow();
-        });
-        $nowBtn.appendTo($('.end-dropdown .datetimepicker'));
-    };
-
-    $scope.chartData = chartModel.chart;
-
-    $scope.tempChartData = {
-        range: $scope.chartData.range
-    };
-
-    $scope.customLabel = customLabel;
-
-    $scope.showAutoRefreshBtn = showAutoRefreshBtn;
-
-    $scope.closeStart = function() {
-        $scope.startDropdown = {
-            isopen: false
-        };
-    };
-    $scope.closeStart();
-
-    $scope.closeEnd = function() {
-        $scope.endDropdown = {
-            isopen: false
-        };
-    };
-    $scope.closeEnd();
-
-    $scope.setStart = function(newDate, oldDate) {
-        if (moment(newDate).isAfter()) {
-            $scope.chartData.start = moment(oldDate);
-            messageModel.setMessages([ { level: 'error', text: "Can't set start date to the future." } ], false);
-        } else {
-            $scope.chartData.start = moment(newDate);
-            setRange();
-        }
-    };
-
-    $scope.setEnd = function(newDate, oldDate) {
-        if (moment(newDate).isAfter()) {
-            $scope.chartData.end = moment(oldDate);
-            messageModel.setMessages([ { level: 'error', text: "Can't set end date to the future." } ], false);
-        } else {
-            $scope.chartData.end = moment(newDate);
-            setRange();
-        }
-    };
-
-    $scope.setEndToNow = function() {
-        $scope.chartData.end = moment();
-        setRange();
-    };
-
-    $scope.toggleAutoRefresh = function() {
-        $scope.chartData.autoRefresh = !$scope.chartData.autoRefresh;
-        if ($scope.chartData.autoRefresh) {
-            $scope.applyRange(); // applying the range moves it to current
-        }
-    };
-
-    $scope.revertRange = function() {
-        $scope.tempChartData.range = $scope.chartData.range;
-    };
-
-    $scope.applyRange = function() {
-
-        var regex = /(\d+)([h|d|w|m|M]$)/, // range must be in the format 1m, 1h, 2d, 3w, 4M
-            params = $scope.tempChartData.range.match(regex);
-
-        if (params && params.length == 3) {
-            $scope.chartData.start = moment().subtract(params[1], params[2]);
-            $scope.chartData.end = moment();
-            $scope.chartData.range = $scope.tempChartData.range;
-            $scope.changeDates($scope.chartData.start, $scope.chartData.end);
-            $scope.chartData.autoRefresh = true && $scope.showAutoRefreshBtn; // showAutoRefreshBtn trumps all. if no show, no autorefresh...EVER!
-        } else {
-            messageModel.setMessages([ { level: 'error', text: "Invalid date range. Valid increments are 'm' (minute), 'h' (hour), 'd' (day), 'w' (week) or 'M' (month). Example: '30m', '12h', '3d', '3w', '3M'" } ], false);
-        }
-
-        $timeout(function () {
-            $('#rangeInput').blur(); // need to blur input to hide popover and for some reason a delay helps
-        }, 500);
-
-    };
-
-    $scope.changeDates = function(start, end) {
-        if (!start.isValid() || !end.isValid()) {
-            messageModel.setMessages([ { level: 'error', text: 'Invalid date format detected. Please fix.' } ], false);
-        } else {
-            chartModel.changeDates(start, end);
-        }
-    };
-
-    angular.element(document).ready(function () {
-        $scope.changeDates(chartModel.chart.start, chartModel.chart.end);
-        createNowBtn();
-    });
-
-    var init = function () {
-        $scope.chartData.autoRefresh = $scope.showAutoRefreshBtn && $scope.chartData.autoRefresh;
-    };
-    init();
-
-};
-
-ChartDatesController.$inject = ['customLabel', 'showAutoRefreshBtn', '$scope', '$location', '$timeout', 'chartModel', 'messageModel'];
-module.exports = ChartDatesController;
diff --git a/traffic_portal/v1/app/src/common/modules/chart/dates/_chart.dates.scss b/traffic_portal/v1/app/src/common/modules/chart/dates/_chart.dates.scss
deleted file mode 100644
index 6bdf3f4..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/dates/_chart.dates.scss
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#chartDatesForm {
-  text-align: center;
-  padding: 10px 0px;
-  margin: 0;
-  border: 1px solid #A8A8A8;
-
-  .input-group-addon {
-    background-color: transparent;
-  }
-
-  .pause-btn, .play-btn, .apply-btn {
-    border-radius: 0 !important;
-  }
-
-  .apply-btn {
-    margin-left: -1px;
-  }
-
-  .chart-range-input {
-    width: 75px !important;
-    margin-left: -1px;
-    cursor:auto;
-  }
-
-  .date-text {
-    cursor: pointer !important;
-    width: 210px !important;
-  }
-
-  .input-group {
-    margin-bottom: 0;
-  }
-
-  .input-group-addon {
-    font-size: 12px;
-  }
-
-  .dates-btn:focus {
-    outline: none;
-  }
-
-  .start-dropdown, .end-dropdown {
-    display: inline-block;
-  }
-
-  .dates-now-btn {
-    width: 310px;
-    margin-left: 5px;
-  }
-
-}
diff --git a/traffic_portal/v1/app/src/common/modules/chart/dates/chart.dates.tpl.html b/traffic_portal/v1/app/src/common/modules/chart/dates/chart.dates.tpl.html
deleted file mode 100644
index e13d247..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/dates/chart.dates.tpl.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="chartDatesForm">
-    <form name="chartDatesForm" class="form-inline" role="form">
-        <div class="form-group">
-            <div class="start-dropdown" uib-dropdown is-open="startDropdown.isopen">
-                <button id="start-button" type="button" class="dates-btn btn btn-link" uib-dropdown-toggle>
-                    <div class="input-group">
-                        <span class="input-group-addon"><strong>From:</strong></span>
-                        <input type="text" class="form-control date-text" formatted-date data-ng-model="chartData.start" ng-disabled="true">
-                    </div>
-                </button>
-                <ul class="uib-dropdown-menu datetimepicker-dropdown-menu" role="menu" aria-labelledby="start-button">
-                    <datetimepicker data-ng-model="chartData.start" data-on-set-time="setStart(newDate, oldDate); closeStart()" data-datetimepicker-config="{ minuteStep: 1 }"/>
-                </ul>
-            </div>
-        </div>
-        <div class="form-group">
-            <div class="end-dropdown" uib-dropdown is-open="endDropdown.isopen">
-                <button id="end-button" type="button" class="dates-btn btn btn-link" uib-dropdown-toggle>
-                    <div class="input-group">
-                        <span class="input-group-addon"><strong>To:</strong></span>
-                        <input type="text" class="form-control date-text" formatted-date data-ng-model="chartData.end" ng-disabled="true">
-                    </div>
-                </button>
-                <ul class="uib-dropdown-menu datetimepicker-dropdown-menu" role="menu" aria-labelledby="end-button">
-                    <datetimepicker data-ng-model="chartData.end" data-on-set-time="setEnd(newDate, oldDate); closeEnd()" data-datetimepicker-config="{ minuteStep: 1 }"/>
-                </ul>
-            </div>
-        </div>
-        <div class="form-group">
-            <div class="input-group">
-                <span class="input-group-btn">
-                    <button id="applyBtn" class="apply-btn btn btn-default" type="button" ng-click="changeDates(chartData.start, chartData.end); chartData.autoRefresh = false;" uib-popover="Apply selected dates" popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true" popover-class="popover-class">Apply</button>
-                    <button id="pauseBtn" class="pause-btn btn btn-default" type="button" ng-show="showAutoRefreshBtn && chartData.autoRefresh" ng-click="toggleAutoRefresh();" uib-popover="Pause live update" popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true" popover-class="popover-class"><i class="fa fa-pause"></i></button>
-                    <button id="playBtn" class="play-btn btn btn-default" type="button" ng-show="showAutoRefreshBtn && !chartData.autoRefresh" ng-click="toggleAutoRefresh();" uib-popover="Start live update" popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true" popover-class="popover-class"><i class="fa fa-play"></i></button>
-                </span>
-                <input id="rangeInput" type="text" class="form-control chart-range-input" placeholder="Range" uib-popover="Override the date range in the format 1m, 2h, 3d, 4w or 5M and hitting enter." popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true" popover-class="popover-class" ng-model="tempChartData.range" enter="applyRange()" ng-blur="revertRange()" select-on-click>
-            </div>
-        </div>
-    </form>
-</div>
diff --git a/traffic_portal/v1/app/src/common/modules/chart/dates/index.js b/traffic_portal/v1/app/src/common/modules/chart/dates/index.js
deleted file mode 100644
index 63eec0a..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/dates/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.chart.dates', [])
-    .controller('ChartDatesController', require('./ChartDatesController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.chart.dates', {
-                reloadOnSearch: false
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/ChartHttpStatusController.js b/traffic_portal/v1/app/src/common/modules/chart/httpStatus/ChartHttpStatusController.js
deleted file mode 100644
index 60c8a62..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/ChartHttpStatusController.js
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartHttpStatusController = function(entity, $window, $rootScope, $scope, $uibModal, $q, $timeout, $filter, propertiesModel, dateUtils, statsService) {
-
-    $scope.chartName = propertiesModel.properties.charts.httpStatus.name;
-
-    var chartDatesChanged = false,
-        chartStart,
-        chartEnd;
-
-    var loadAggregateHttpStatusData = function(start, end) {
-        if (!entity || !chartDatesChanged) return;
-        chartDatesChanged = false;
-        getAggregateHttpStatusData(start, end);
-    };
-
-    var getAggregateHttpStatusData = function(start, end) {
-
-        var exclude = 'summary',
-            ignoreLoadingBar = false,
-            showError = false,
-            promises = [];
-
-        promises.push(statsService.getEdgeTransactionsByStatusGroup(entity, '2xx', start, end, $scope.httpStatusChartInterval, exclude, ignoreLoadingBar, showError));
-        promises.push(statsService.getEdgeTransactionsByStatusGroup(entity, '3xx', start, end, $scope.httpStatusChartInterval, exclude, ignoreLoadingBar, showError));
-        promises.push(statsService.getEdgeTransactionsByStatusGroup(entity, '4xx', start, end, $scope.httpStatusChartInterval, exclude, ignoreLoadingBar, showError));
-        promises.push(statsService.getEdgeTransactionsByStatusGroup(entity, '5xx', start, end, $scope.httpStatusChartInterval, exclude, ignoreLoadingBar, showError));
-
-        $q.all(promises)
-            .then(
-            function(responses) {
-                var status2xxChartData = buildHttpStatusChartData(responses[0], start, false),
-                    status3xxChartData = buildHttpStatusChartData(responses[1], start, false),
-                    status4xxChartData = buildHttpStatusChartData(responses[2], start, false),
-                    status5xxChartData = buildHttpStatusChartData(responses[3], start, false);
-                $timeout(function () {
-                    buildHttpChart(status2xxChartData, status3xxChartData, status4xxChartData, status5xxChartData);
-                }, 100);
-            },
-            function(fault) {
-                buildHttpChart([], [], [], []);
-            }).finally(function() {
-                $scope.httpStatusDataLoaded = true;
-            });
-    };
-
-    var updateChartDates = function(start, end) {
-        $scope.dateRangeText = dateUtils.dateFormat(start.toDate(), "ddd mmm d yyyy h:MM tt (Z)") + ' to ' + dateUtils.dateFormat(end.toDate(), "ddd mmm d yyyy h:MM tt (Z)");
-    };
-
-    var buildHttpStatusChartData = function(result, start, incremental) {
-        var normalizedChartData = [],
-            series = result.series;
-
-        if (angular.isDefined(series)) {
-            _.each(series.values, function(seriesItem) {
-                if (moment(seriesItem[0]).isSame(start) || moment(seriesItem[0]).isAfter(start)) {
-                    if (_.isNumber(seriesItem[1]) || !incremental) {
-                        normalizedChartData.push([ moment(seriesItem[0]).valueOf(), seriesItem[1] ]);
-                    }
-                }
-            });
-        }
-
-        return normalizedChartData;
-    };
-
-    var buildHttpChart = function(status2xxChartData, status3xxChartData, status4xxChartData, status5xxChartData) {
-
-        var options = {
-            xaxis: {
-                mode: "time",
-                timezone: "browser",
-                twelveHourClock: true
-            },
-            yaxes: [
-                {
-                    position: "left",
-                    axisLabel: "Success (2xx and 3xx)",
-                    axisLabelUseCanvas: true,
-                    axisLabelFontSizePixels: 12,
-                    axisLabelFontFamily: 'Verdana, Arial',
-                    axisLabelPadding: 3
-                },
-                {
-                    position: "right",
-                    axisLabel: "Client Error (4xx)",
-                    axisLabelUseCanvas: true,
-                    axisLabelFontSizePixels: 12,
-                    axisLabelFontFamily: 'Verdana, Arial',
-                    axisLabelPadding: 3
-                },
-                {
-                    position: "right",
-                    axisLabel: "Server Error (5xx)",
-                    axisLabelUseCanvas: true,
-                    axisLabelFontSizePixels: 12,
-                    axisLabelFontFamily: 'Verdana, Arial',
-                    axisLabelPadding: 3
-                }
-            ],
-            grid: {
-                hoverable: true,
-                axisMargin: 20
-            },
-            tooltip: {
-                show: true,
-                content: function(label, xval, yval, flotItem){
-                    var tooltipString = dateUtils.dateFormat(xval, "ddd mmm d yyyy h:MM:ss tt (Z)") + '<br>';
-                    tooltipString += '<span>' + label + ': ' + $filter('number')(yval, 2) + ' TPS</span><br>'
-                    return tooltipString;
-                }
-            }
-        };
-
-        var series = [
-            { label: "2xx", yaxis: 1, color: "#91ca32", data: status2xxChartData },
-            { label: "3xx", yaxis: 1, color: "#5897fb", data: status3xxChartData },
-            { label: "4xx", yaxis: 2, color: "#6859a3", data: status4xxChartData },
-            { label: "5xx", yaxis: 3, color: "#a94442", data: status5xxChartData }
-        ];
-
-        $.plot($("#http-chart"), series, options);
-
-    };
-
-    var onDateChange = function(args) {
-        chartDatesChanged = true;
-        chartStart = args.start;
-        chartEnd = args.end;
-        updateChartDates(chartStart, chartEnd);
-        loadAggregateHttpStatusData(chartStart, chartEnd);
-    };
-
-    $scope.httpStatusDataLoaded = false;
-
-    $scope.httpStatusChartInterval = '60s';
-
-    $scope.resetStatusCodes = function() {
-        $timeout(function(){
-            $scope.http2xxCodes = [];
-            $scope.http3xxCodes = [];
-            $scope.http4xxCodes = [];
-            $scope.http5xxCodes = [];
-        });
-    };
-    $scope.resetStatusCodes();
-
-    $scope.$on('chartModel::dateChange', function(event, args) {
-        onDateChange(args);
-    });
-
-    $scope.$on('chartModel::dateRoll', function(event, args) {
-        onDateChange(args);
-    });
-
-};
-
-ChartHttpStatusController.$inject = ['entity', '$window', '$rootScope', '$scope', '$uibModal', '$q', '$timeout', '$filter', 'propertiesModel', 'dateUtils', 'statsService'];
-module.exports = ChartHttpStatusController;
diff --git a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/_chart.httpStatus.scss b/traffic_portal/v1/app/src/common/modules/chart/httpStatus/_chart.httpStatus.scss
deleted file mode 100644
index b4ed1c3..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/_chart.httpStatus.scss
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#httpChartContainer {
-  position: relative;
-  text-align: center;
-  background-color: transparent;
-  padding: 30px 60px;
-
-  #http-loading, #http-chart {
-    height: 400px;
-    width: 100%;
-  }
-
-  #http-loading {
-    padding-top: 50px;
-  }
-
-}
-
-#httpSparklineContainer {
-
-  .http-sparkline-row {
-    margin-bottom: 20px;
-    &:first-child {
-      margin-top: 10px;
-    }
-  }
-
-  .http-sparkline-header-row {
-    margin-top: 10px;
-    margin-bottom: 10px;
-  }
-
-  .success-col, .client-error-col, .server-error-col {
-    margin-top: 10px;
-  }
-
-  .http-sparkline-row, .http-sparkline-header-row {
-    margin-left: 0;
-    margin-right: 0;
-    border: 1px solid #A8A8A8;
-
-    .header, .column-header {
-      padding: 10px;
-      margin-top: 0;
-    }
-
-    .column-header {
-      margin: 0;
-    }
-
-    .sparkline {
-      height: 50px;
-      width: 260px;
-      text-align: center;
-    }
-
-    .sparkline-loading-text {
-      padding-top: 15px;
-      color: #999;
-      font-size: 12px;
-      font-weight: bold;
-      display: inline-block;
-    }
-
-    .metrics {
-      padding: 10px;
-
-      .metric-label {
-        font-size: 12px;
-        font-weight: bold;
-      }
-
-      .total-percent {
-        color: #999;
-        font-size: 12px;
-        font-weight: bold;
-      }
-
-    }
-
-  }
-
-}
diff --git a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/chart.httpStatus.tpl.html b/traffic_portal/v1/app/src/common/modules/chart/httpStatus/chart.httpStatus.tpl.html
deleted file mode 100644
index 40a79b2..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/chart.httpStatus.tpl.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="chart-container">
-    <div id="httpChartContainer">
-        <h6>{{chartName}}</h6>
-        <div id="http-loading" ng-show="!httpStatusDataLoaded">
-            <div class="loading-text">Loading http statuses...</div>
-        </div>
-        <div id="http-chart" ng-show="httpStatusDataLoaded"></div>
-    </div>
-</div>
-
diff --git a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/index.js b/traffic_portal/v1/app/src/common/modules/chart/httpStatus/index.js
deleted file mode 100644
index a05339a..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/httpStatus/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.chart.httpStatus', [])
-    .controller('ChartHttpStatusController', require('./ChartHttpStatusController'));
diff --git a/traffic_portal/v1/app/src/common/modules/chart/routing/ChartRoutingController.js b/traffic_portal/v1/app/src/common/modules/chart/routing/ChartRoutingController.js
deleted file mode 100644
index 7f10dfc..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/routing/ChartRoutingController.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartRoutingController = function(entityId, service, $rootScope, $scope, $interval, $filter) {
-
-    var routingInterval,
-        routingLoaded = false;
-
-    var getRoutingMethods = function(showTimoutError) {
-        if (!$rootScope.online) return;
-
-        var ignoreLoadingBar = true;
-        service.getRoutingMethods(entityId, ignoreLoadingBar, showTimoutError)
-            .then(
-            function(response) {
-                routingLoaded = true;
-                var staticRoute = Math.round(response.staticRoute * 100) / 100,
-                    dsr = Math.round(response.dsr * 100) / 100,
-                    err = Math.round(response.err * 100) / 100,
-                    miss = Math.round(response.miss * 100) / 100,
-                    geo = Math.round(response.geo * 100) / 100,
-                    fed = Math.round(response.fed * 100) / 100,
-                    cz = Math.round(response.cz * 100) / 100;
-
-                var data = [];
-
-                if (staticRoute > 0) {
-                    data.push({
-                        label: "Static",
-                        color: '#cccccc',
-                        data: [ [ staticRoute, 1 ] ]
-                    });
-                }
-                if (dsr > 0) {
-                    data.push({
-                        label: "DSR",
-                        color: '#3c763d',
-                        data: [ [ dsr, 1 ] ]
-                    });
-                }
-                if (err > 0) {
-                    data.push({
-                        label: "Error",
-                        color: '#FF0000',
-                        data: [ [ err, 1 ] ]
-                    });
-                }
-                if (miss > 0) {
-                    data.push({
-                        label: "Miss",
-                        color: '#a94442',
-                        data: [ [ miss, 1 ] ]
-                    });
-                }
-                if (geo > 0) {
-                    data.push({
-                        label: "3rd Party",
-                        color: '#263C53',
-                        data: [ [ geo, 1 ] ]
-                    });
-                }
-                if (cz > 0) {
-                    data.push({
-                        label: "Native",
-                        color: '#357EBD',
-                        data: [ [ cz, 1 ] ]
-                    });
-                }
-                if (fed > 0) {
-                    data.push({
-                        label: "Federated",
-                        color: '#8a00e6',
-                        data: [ [ fed, 1 ] ]
-                    });
-                }
-
-                buildRoutingChart(data);
-            });
-    };
-
-    var buildRoutingChart = function(data) {
-
-        var options = {
-            series: {
-                stack: true,
-                lines: {show: false, steps: false },
-                bars: {
-                    show: true,
-                    horizontal: true,
-                    barWidth: 0.9,
-                    align: 'center'
-                }
-            },
-            grid: {
-                borderWidth: 0,
-                hoverable: true
-            },
-            tooltip: {
-                show: true,
-                content: function(label, xval, yval, flotItem){
-                    return '<span>' + label + ': ' + $filter('number')(xval, 2) + '%</span><br>';
-                }
-            },
-            yaxis: {
-                ticks: [[ 1,'%' ]]
-            }
-        };
-
-        $.plot($("#routing-chart"), data, options);
-    };
-
-    angular.element(document).ready(function () {
-        getRoutingMethods(true);
-        routingInterval = $interval(function() { getRoutingMethods(false) }, 5 * 60 * 1000); // every 5 mins routing will refresh
-    });
-
-    $scope.$on("$destroy", function() {
-        if (angular.isDefined(routingInterval)) {
-            $interval.cancel(routingInterval);
-            routingInterval = undefined;
-        }
-    });
-
-};
-
-ChartRoutingController.$inject = ['entityId', 'service', '$rootScope', '$scope', '$interval', '$filter'];
-module.exports = ChartRoutingController;
diff --git a/traffic_portal/v1/app/src/common/modules/chart/routing/_chart.routing.scss b/traffic_portal/v1/app/src/common/modules/chart/routing/_chart.routing.scss
deleted file mode 100644
index 84eb5dd..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/routing/_chart.routing.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#routingChartContainer {
-  text-align: center;
-}
-
-#routing-chart {
-  height: 200px;
-  width: 100%;
-}
diff --git a/traffic_portal/v1/app/src/common/modules/chart/routing/chart.routing.tpl.html b/traffic_portal/v1/app/src/common/modules/chart/routing/chart.routing.tpl.html
deleted file mode 100644
index 9be074e..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/routing/chart.routing.tpl.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="routingChartContainer">
-    <h6>Routing Methods %</h6>
-    <div id="routing-chart"></div>
-</div>
-
diff --git a/traffic_portal/v1/app/src/common/modules/chart/routing/index.js b/traffic_portal/v1/app/src/common/modules/chart/routing/index.js
deleted file mode 100644
index d3782c5..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/routing/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.chart.routing', [])
-    .controller('ChartRoutingController', require('./ChartRoutingController'));
diff --git a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/ChartTransactionsPerSecondController.js b/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/ChartTransactionsPerSecondController.js
deleted file mode 100644
index d1b3c47..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/ChartTransactionsPerSecondController.js
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartTransactionsPerSecondController = function(entity, showSummary, $rootScope, $scope, $uibModal, $q, $timeout, $filter, propertiesModel, dateUtils, statsService) {
-
-    $scope.chartName = propertiesModel.properties.charts.transactionsPerSecond.name;
-
-    var chartDatesChanged = false,
-        chartStart,
-        chartEnd;
-
-    var summaryStart,
-        summaryEnd;
-
-    var chartRangeTimer;
-
-    var loadTransactions = function(start, end) {
-        if (!entity || !chartDatesChanged) return;
-        chartDatesChanged = false;
-        $scope.transactionChartDates = {
-            start: start,
-            end: end
-        };
-        getTransactions(start, end);
-        $scope.refreshTpsSummaryMetrics(0);
-    };
-
-    var getTransactions = function(start, end) {
-        var exclude = '',
-            ignoreLoadingBar = true,
-            showError = true,
-            promises = [];
-
-        // edge transactions
-        promises.push(statsService.getEdgeTransactions(entity, start, end, $scope.transactionsChartInterval, exclude, ignoreLoadingBar, showError));
-
-        $q.all(promises)
-            .then(
-            function(responses) {
-                // set chart data
-                var edgeTransactionsChartData = buildTransactionsChartData(responses[0], start, false);
-                $timeout(function () {
-                    buildTransactionsChart(edgeTransactionsChartData);
-                }, 100);
-            },
-            function(fault) {
-                buildTransactionsChart([]); // build an empty chart
-            }).finally(function() {
-                $scope.transactionsLoaded = true;
-            });
-    };
-
-    var buildTransactionsChartData = function(result, start, incremental) {
-        var normalizedChartData = [],
-            series = result.series;
-
-        if (angular.isDefined(series)) {
-            _.each(series.values, function(seriesItem) {
-                if (moment(seriesItem[0]).isSame(start) || moment(seriesItem[0]).isAfter(start)) {
-                    if (_.isNumber(seriesItem[1]) || !incremental) {
-                        normalizedChartData.push([ moment(seriesItem[0]).valueOf(), seriesItem[1] ]);
-                    }
-                }
-            });
-        }
-
-        return normalizedChartData;
-    };
-
-    var buildTransactionsChart = function(edgeTransactionsChartData) {
-
-        var options = {
-            xaxis: {
-                mode: "time",
-                timezone: "browser",
-                twelveHourClock: true
-            },
-            yaxes: [
-                {
-                    position: "left",
-                    axisLabel: "TPS",
-                    axisLabelUseCanvas: true,
-                    axisLabelFontSizePixels: 12,
-                    axisLabelFontFamily: 'Verdana, Arial',
-                    axisLabelPadding: 3
-                }
-            ],
-            grid: { hoverable: true },
-            tooltip: {
-                show: true,
-                content: function(label, xval, yval, flotItem){
-                    var tooltipString = dateUtils.dateFormat(xval, "ddd mmm d yyyy h:MM:ss tt (Z)") + '<br>';
-                    tooltipString += '<span>' + label + ': ' + $filter('number')(yval, 2) + ' TPS</span><br>'
-                    return tooltipString;
-                }
-            }
-        };
-
-        $.plot($("#tps-chart"), [ { label: "Edge", data: edgeTransactionsChartData } ], options);
-
-    };
-
-    var updateChartDates = function(start, end) {
-        $scope.dateRangeText = dateUtils.dateFormat(start.toDate(), "ddd mmm d yyyy h:MM tt (Z)") + ' to ' + dateUtils.dateFormat(end.toDate(), "ddd mmm d yyyy h:MM tt (Z)");
-    };
-
-    var getSummaryMetrics = function(start, end) {
-
-        var exclude = 'series',
-            ignoreLoadingBar = true,
-            showError = false,
-            promises = [];
-
-        // edge summary
-        promises.push(statsService.getEdgeTransactionsSummary(entity, start, end, $scope.transactionsChartInterval, exclude, ignoreLoadingBar, showError));
-
-        $q.all(promises)
-            .then(
-            function(responses) {
-                var edgeSummary = responses[0].summary;
-                if (angular.isDefined(edgeSummary)) {
-                    $scope.tpsEdgeSummary = edgeSummary;
-                } else {
-                    $scope.resetEdgeSummary();
-                }
-            },
-            function(fault) {
-                $scope.resetEdgeSummary();
-            }).finally(function() {
-                $scope.updatingTpsSummaryMetrics = false;
-            });
-    };
-
-    var onDateChange = function(args) {
-        chartDatesChanged = true;
-        chartStart = args.start;
-        chartEnd = args.end;
-        summaryStart = args.start;
-        summaryEnd = args.end;
-        updateChartDates(chartStart, chartEnd);
-        loadTransactions(chartStart, chartEnd);
-    };
-
-    $scope.showSummary = showSummary;
-
-    $scope.updatingTpsSummaryMetrics = false;
-
-    $scope.transactionsLoaded = false;
-
-    $scope.transactionsChartInterval = '60s';
-
-    $scope.resetEdgeSummary = function() {
-        $timeout(function() {
-            $scope.tpsEdgeSummary = {
-                max: 0,
-                min: 0,
-                totalTransactions: 0,
-                average: 0,
-                fifthPercentile: 0,
-                ninetyFifthPercentile: 0,
-                ninetyEighthPercentile: 0
-            };
-        });
-    };
-    $scope.resetEdgeSummary();
-
-    $scope.refreshTpsSummaryMetrics = function(delay) {
-        if (!$scope.showSummary) return; // don't bother. summary hidden...
-
-        $timeout(function() { $scope.updatingTpsSummaryMetrics = true; });
-        if (chartRangeTimer) {
-            $timeout.cancel(chartRangeTimer);
-        }
-        chartRangeTimer = $timeout(function () {
-            getSummaryMetrics(summaryStart, summaryEnd);
-        }, delay);
-    };
-
-    $scope.hideSummaryMetrics = function() {
-        $scope.showSummary = false;
-        $scope.resetEdgeSummary();
-    };
-
-    $scope.showSummaryMetrics = function() {
-        $scope.showSummary = true;
-        $scope.refreshTpsSummaryMetrics(0);
-    };
-
-    $scope.$on('chartModel::dateChange', function(event, args) {
-        onDateChange(args);
-    });
-
-    $scope.$on('chartModel::dateRoll', function(event, args) {
-        onDateChange(args);
-    });
-
-};
-
-ChartTransactionsPerSecondController.$inject = ['entity', 'showSummary', '$rootScope', '$scope', '$uibModal', '$q', '$timeout', '$filter', 'propertiesModel', 'dateUtils', 'statsService'];
-module.exports = ChartTransactionsPerSecondController;
diff --git a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/_chart.transactionsPerSecond.scss b/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/_chart.transactionsPerSecond.scss
deleted file mode 100644
index 31a1ba4..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/_chart.transactionsPerSecond.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#tpsChartContainer {
-  position: relative;
-  text-align: center;
-  background-color: transparent;
-  padding: 30px 60px;
-
-  #tps-loading, #tps-chart {
-    height: 400px;
-    min-width: 310px;
-  }
-
-  #tps-loading {
-    padding-top: 40px;
-  }
-
-}
-
-#tps-metrics {
-  .header {
-    margin-bottom: 0;
-  }
-}
diff --git a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/chart.transactionsPerSecond.tpl.html b/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/chart.transactionsPerSecond.tpl.html
deleted file mode 100644
index f446009..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/chart.transactionsPerSecond.tpl.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="chart-container">
-    <div id="tpsChartContainer">
-        <h6>{{chartName}}</h6>
-        <div id="tps-loading" ng-show="!transactionsLoaded">
-            <div class="loading-text">Loading transactions...</div>
-        </div>
-        <div id="tps-chart" ng-show="transactionsLoaded"></div>
-    </div>
-    <h6 ng-show="!showSummary" class="show-summary-header"><small class="show-summary">[ <a ng-click="showSummaryMetrics()">show summary metrics</a> ]</small></h6>
-    <div id="tps-metrics" ng-show="showSummary" class="row metrics">
-        <div class="col-sm-12 col-md-12">
-            <h6 class="header">
-                <div>{{chartName}} Summary Metrics
-                    <small ng-show="updatingTpsSummaryMetrics">[ calculating <i class="fa fa-spin fa-spinner fa-fw"></i> ]</small>
-                    <small ng-show="!updatingTpsSummaryMetrics" class="summary-refresh">[ <a ng-click="refreshTpsSummaryMetrics(0)">refresh</a> ]</small>
-                    <small class="hide-summary">[ <a ng-click="hideSummaryMetrics()">hide summary metrics</a> ]</small>
-                </div>
-                <hr class="summary-hr">
-                <div><small>{{dateRangeText}}</small></div>
-            </h6>
-            <div class="summary-metrics">
-                <table class="table table-condensed">
-                    <thead>
-                    <tr>
-                        <th>Server Type</th>
-                        <th>Total Transactions</th>
-                        <th>95th percentile</th>
-                        <th>Max</th>
-                        <th>Min</th>
-                        <th>Avg</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr>
-                        <td>Edge</td>
-                        <td class="total">{{tpsEdgeSummary.totalTransactions | number:0}}</td>
-                        <td>{{tpsEdgeSummary.ninetyFifthPercentile | number:2}} TPS</td>
-                        <td>{{tpsEdgeSummary.max | number:2}} TPS</td>
-                        <td>{{tpsEdgeSummary.min | number:2}} TPS</td>
-                        <td>{{tpsEdgeSummary.average | number:2}} TPS</td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-    </div>
-</div>
diff --git a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/index.js b/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/index.js
deleted file mode 100644
index aedd14b..0000000
--- a/traffic_portal/v1/app/src/common/modules/chart/transactionsPerSecond/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.chart.transactionsPerSecond', [])
-    .controller('ChartTransactionsPerSecondController', require('./ChartTransactionsPerSecondController'));
diff --git a/traffic_portal/v1/app/src/common/modules/dates/DatesController.js b/traffic_portal/v1/app/src/common/modules/dates/DatesController.js
deleted file mode 100644
index 48d5243..0000000
--- a/traffic_portal/v1/app/src/common/modules/dates/DatesController.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DatesController = function(customLabel, dateRange, $rootScope, $scope) {
-
-    $scope.dateRange = dateRange;
-
-    $scope.customLabel = customLabel;
-
-    $scope.openStart = function($event) {
-        $event.preventDefault();
-        $event.stopPropagation();
-
-        $scope.startOpened = true;
-    };
-
-    $scope.openEnd = function($event) {
-        $event.preventDefault();
-        $event.stopPropagation();
-
-        $scope.endOpened = true;
-    };
-
-    $scope.dateOptions = {
-        formatYear: 'yy',
-        startingDay: 0,
-        showWeeks: false
-    };
-
-    $scope.changeDates = function(start, end) {
-        $rootScope.$broadcast('datesController::dateChange', { start: start, end: end });
-    };
-
-    angular.element(document).ready(function () {
-        $scope.changeDates(dateRange.start, dateRange.end);
-    });
-
-};
-
-DatesController.$inject = ['customLabel', 'dateRange', '$rootScope', '$scope'];
-module.exports = DatesController;
diff --git a/traffic_portal/v1/app/src/common/modules/dates/_dates.scss b/traffic_portal/v1/app/src/common/modules/dates/_dates.scss
deleted file mode 100644
index 83dd492..0000000
--- a/traffic_portal/v1/app/src/common/modules/dates/_dates.scss
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-.dates-form {
-  text-align: center;
-  padding: 20px;
-  margin: 0 0 20px 0;
-  background-color: #e4e4e4;
-
-  .form-inline {
-    margin-top: 5px;
-  }
-
-  .to-date {
-    margin-left: 20px;
-  }
-
-  .date-text {
-    width: 200px !important;
-  }
-
-  .input-group {
-    margin-bottom: 0;
-  }
-
-}
-
-@media print {
-  .dates-form {
-    display: none;
-  }
-}
-
diff --git a/traffic_portal/v1/app/src/common/modules/dates/dates.tpl.html b/traffic_portal/v1/app/src/common/modules/dates/dates.tpl.html
deleted file mode 100644
index 4c9a3d9..0000000
--- a/traffic_portal/v1/app/src/common/modules/dates/dates.tpl.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="row dates-form hidden-print">
-    <div class="col-sm-12 col-md-12">
-        <form class="form-inline" role="form">
-            <div class="form-group from-date">
-                <label for="startDate">{{customLabel}} from:</label>
-                <p class="input-group">
-                    <input id="startDate" type="text" class="form-control date-text" datepicker-popup="dd-MMMM-yyyy" show-button-bar="false" ng-model="dateRange.start" is-open="startOpened" max-date="dateRange.end" datepicker-options="dateOptions" ng-required="true" />
-                    <span class="input-group-btn">
-                        <button type="button" class="btn btn-default" ng-click="openStart($event)"><i class="fa fa-calendar"></i></button>
-                    </span>
-                </p>
-            </div>
-            <div class="form-group to-date">
-                <label for="endDate">to:</label>
-                <p class="input-group">
-                    <input id="endDate" type="text" class="form-control date-text" datepicker-popup="dd-MMMM-yyyy" show-button-bar="false" ng-model="dateRange.end" is-open="endOpened" min-date="dateRange.start" max-date="dateRange.max" datepicker-options="dateOptions" ng-required="true" />
-                    <span class="input-group-btn">
-                        <button type="button" class="btn btn-default" ng-click="openEnd($event)"><i class="fa fa-calendar"></i></button>
-                    </span>
-                </p>
-            </div>
-            <button type="submit" class="btn btn-default" ng-click="changeDates(dateRange.start, dateRange.end)">Apply</button>
-        </form>
-    </div>
-</div>
diff --git a/traffic_portal/v1/app/src/common/modules/dates/index.js b/traffic_portal/v1/app/src/common/modules/dates/index.js
deleted file mode 100644
index 47ae7a0..0000000
--- a/traffic_portal/v1/app/src/common/modules/dates/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.dates', [])
-    .controller('DatesController', require('./DatesController'))
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/DSConfigEditController.js b/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/DSConfigEditController.js
deleted file mode 100644
index f3d9860..0000000
--- a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/DSConfigEditController.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DSConfigEditController = function(deliveryService, $scope, $uibModalInstance) {
-
-    $scope.deliveryService = deliveryService;
-
-    $scope.close = function () {
-        $uibModalInstance.dismiss('close');
-    };
-
-    $scope.isHTTP = function(ds) {
-        return ds.type.indexOf('HTTP') !== -1;
-    };
-
-    $scope.edgeFQDNs = function(ds) {
-        var urlString = '';
-        if (_.isArray(ds.exampleURLs) && ds.exampleURLs.length > 0) {
-            for (var i = 0; i < ds.exampleURLs.length; i++) {
-                urlString += ds.exampleURLs[i] + '\n';
-            }
-        }
-        return urlString;
-    };
-
-    $scope.rangeRequestHandling = function(ds) {
-        var rrh = '';
-        if (ds.rangeRequestHandling == '0') {
-            rrh = 'Do not cache range requests';
-        } else if (ds.rangeRequestHandling == '1') {
-            rrh = 'Background fetch';
-        } else if (ds.rangeRequestHandling == '2') {
-            rrh = 'Cache range requests';
-        }
-        return rrh;
-    };
-
-};
-
-DSConfigEditController.$inject = ['deliveryService', '$scope', '$uibModalInstance'];
-module.exports = DSConfigEditController;
diff --git a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/_deliveryService.config.edit.scss b/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/_deliveryService.config.edit.scss
deleted file mode 100644
index 26796c4..0000000
--- a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/_deliveryService.config.edit.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#dsConfigForm {
-  padding: 0 20px;
-
-  .settings-row {
-    padding: 10px 0 0 0;
-    margin: 0 0 10px 0;
-
-    .settings-col {
-      text-align: center;
-    }
-
-  }
-
-}
-
-.ds-config-modal {
-  // not used yet but you can throw a class on a modal if needed
-}
-
diff --git a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/deliveryService.config.edit.tpl.html b/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/deliveryService.config.edit.tpl.html
deleted file mode 100644
index 0b92e5e..0000000
--- a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/deliveryService.config.edit.tpl.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="modal-header">
-    <button type="button" class="close" ng-click="close()"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
-    <h3 class="modal-title">{{deliveryService.displayName}} ({{deliveryService.id}} | {{deliveryService.xmlId}})</h3>
-</div>
-<div class="modal-body">
-    <form id="dsConfigForm" name="dsConfigForm" role="form" novalidate>
-        <div class="row settings-row">
-            <div class="settings-col col-sm-4 col-md-4">
-                <div class="form-group">
-                    <input type="checkbox" ng-disabled="true" ng-model="deliveryService.active">  <strong>Active</strong>
-                </div>
-            </div>
-            <div class="settings-col col-sm-4 col-md-4">
-                <div class="form-group">
-                    <input type="checkbox" ng-disabled="true" ng-model="deliveryService.ipv6RoutingEnabled">  <strong>IPv6 Routing Enabled</strong>
-                </div>
-            </div>
-            <div class="settings-col col-sm-4 col-md-4">
-                <div class="form-group">
-                    <input type="checkbox" ng-disabled="true" ng-model="deliveryService.signed">  <strong>Signed URLs</strong>
-                </div>
-            </div>
-        </div>
-        <hr>
-        <div class="row">
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group">
-                    <label class="control-label" for="orgServerFqdn">Origin FQDN:</label>
-                    <input id="orgServerFqdn" name="orgServerFqdn" type="text" class="form-control" ng-model="deliveryService.orgServerFqdn" readonly>
-                </div>
-                <div class="form-group">
-                    <label class="control-label" for="checkPath">Origin health check:</label>
-                    <input id="checkPath" name="checkPath" type="text" class="form-control" ng-model="deliveryService.checkPath" readonly>
-                </div>
-                <div class="form-group">
-                    <label class="control-label" for="edgeFQDNs">Edge FQDNs:</label>
-                    <textarea id="edgeFQDNs" name="edgeFQDNs" rows="4" cols="17" class="form-control" readonly>{{edgeFQDNs(deliveryService)}}</textarea>
-                </div>
-                <div class="form-group">
-                    <label class="control-label" for="edgeHeaderRewrite">Edge header rewrite rules:</label>
-                    <input id="edgeHeaderRewrite" name="edgeHeaderRewrite" type="text" class="form-control" ng-model="deliveryService.edgeHeaderRewrite" readonly>
-                </div>
-                <div class="form-group">
-                    <label class="control-label" for="midHeaderRewrite">Mid header rewrite rules:</label>
-                    <input id="midHeaderRewrite" name="midHeaderRewrite" type="text" class="form-control" ng-model="deliveryService.midHeaderRewrite" readonly>
-                </div>
-                <div class="form-group">
-                    <label class="control-label" for="regexRemap">Regex remap expression:</label>
-                    <input id="regexRemap" name="regexRemap" type="text" class="form-control" ng-model="deliveryService.regexRemap" readonly>
-                </div>
-            </div>
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group">
-                    <label class="control-label" for="type">Content Routing Type:</label>
-                    <input id="type" name="type" type="text" class="form-control" ng-model="deliveryService.type" readonly>
-                </div>
-                <div class="form-group" ng-show="isHTTP(deliveryService)">
-                    <label class="control-label" for="httpBypassFqdn">HTTP Bypass FQDN:</label>
-                    <input id="httpBypassFqdn" name="httpBypassFqdn" type="text" class="form-control" ng-model="deliveryService.httpBypassFqdn" readonly>
-                </div>
-                <div class="form-group" ng-show="!isHTTP(deliveryService)">
-                    <label class="control-label" for="dnsBypassIp">DNS Bypass IP:</label>
-                    <input id="dnsBypassIp" name="dnsBypassIp" type="text" class="form-control" ng-model="deliveryService.dnsBypassIp" readonly>
-                </div>
-                <div class="form-group" ng-show="!isHTTP(deliveryService)">
-                    <label class="control-label" for="dnsBypassIp6">DNS Bypass IPv6:</label>
-                    <input id="dnsBypassIp6" name="dnsBypassIp6" type="text" class="form-control" ng-model="deliveryService.dnsBypassIp6" readonly>
-                </div>
-                <div class="form-group" ng-show="!isHTTP(deliveryService)">
-                    <label class="control-label" for="dnsBypassTtl">DNS Bypass TTL:</label>
-                    <input id="dnsBypassTtl" name="dnsBypassTtl" type="text" class="form-control" ng-model="deliveryService.dnsBypassTtl" readonly>
-                </div>
-                <div class="form-group" style="margin-top: 20px;" ng-show="!isHTTP(deliveryService)">
-                    <label class="control-label" for="maxDnsAnswers">Max DNS Answers:</label>
-                    <input id="maxDnsAnswers" name="maxDnsAnswers" type="text" class="form-control" ng-model="deliveryService.maxDnsAnswers" readonly>
-                </div>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="globalMaxMbps">Global Max Mbps:</label>
-                            <input id="globalMaxMbps" name="globalMaxMbps" type="text" class="form-control" ng-model="deliveryService.globalMaxMbps" readonly>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="globalMaxMbps">Global Max Tps:</label>
-                            <input id="globalMaxTps" name="globalMaxTps" type="text" class="form-control" ng-model="deliveryService.globalMaxTps" readonly>
-                        </div>
-                    </div>
-                </div>
-                <div class="form-group">
-                    <label class="control-label" for="rangeRequestHandling">Range Request Handling:</label>
-                    <input id="rangeRequestHandling" name="rangeRequestHandling" type="text" class="form-control" value="{{rangeRequestHandling(deliveryService)}}" readonly>
-                </div>
-            </div>
-        </div>
-        <div class="row">
-            <div class="col-sm-12 col-md-12">
-                <div class="form-group">
-                    <label class="control-label" for="longDesc">Long Description:</label>
-                    <textarea id="longDesc" name="longDesc" rows="5" cols="17" class="form-control" ng-model="deliveryService.longDesc" readonly></textarea>
-                </div>
-            </div>
-        </div>
-    </form>
-</div>
-<div class="modal-footer">
-    <button class="btn action-btn" ng-click="close()">Close</button>
-</div>
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/index.js b/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/index.js
deleted file mode 100644
index b6f67f6..0000000
--- a/traffic_portal/v1/app/src/common/modules/deliveryService/config/edit/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.config.edit', [])
-    .controller('DSConfigEditController', require('./DSConfigEditController'));
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/confirm/DialogConfirmController.js b/traffic_portal/v1/app/src/common/modules/dialog/confirm/DialogConfirmController.js
deleted file mode 100644
index 09aef67..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/confirm/DialogConfirmController.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DialogConfirmController = function(params, $scope, $uibModalInstance) {
-
-    $scope.params = params;
-
-    $scope.yes = function() {
-        $uibModalInstance.close();
-    };
-
-    $scope.no = function () {
-        $uibModalInstance.dismiss('no');
-    };
-
-};
-
-DialogConfirmController.$inject = ['params', '$scope', '$uibModalInstance'];
-module.exports = DialogConfirmController;
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/confirm/_dialog.confirm.scss b/traffic_portal/v1/app/src/common/modules/dialog/confirm/_dialog.confirm.scss
deleted file mode 100644
index fff23b4..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/confirm/_dialog.confirm.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/confirm/dialog.confirm.tpl.html b/traffic_portal/v1/app/src/common/modules/dialog/confirm/dialog.confirm.tpl.html
deleted file mode 100644
index 8fad17f..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/confirm/dialog.confirm.tpl.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="modal-header">
-    <h4 class="modal-title">{{params.title}}</h4>
-</div>
-<div class="modal-body">
-    <p>{{params.message}}</p>
-</div>
-<div class="modal-footer">
-    <button class="btn action-btn" ng-click="no()">No</button>
-    <button class="btn btn-link" ng-click="yes()">Yes</button>
-</div>
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/confirm/index.js b/traffic_portal/v1/app/src/common/modules/dialog/confirm/index.js
deleted file mode 100644
index f824c8f..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/confirm/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.dialog.confirm', [])
-    .controller('DialogConfirmController', require('./DialogConfirmController'));
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/reset/DialogResetController.js b/traffic_portal/v1/app/src/common/modules/dialog/reset/DialogResetController.js
deleted file mode 100644
index 271345f..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/reset/DialogResetController.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DialogResetController = function($scope, $uibModalInstance, formUtils) {
-
-    $scope.userData = {
-        email: ""
-    };
-
-    $scope.reset = function (email) {
-        $uibModalInstance.close(email);
-    };
-
-    $scope.cancel = function () {
-        $uibModalInstance.dismiss('cancel');
-    };
-
-    $scope.hasError = formUtils.hasError;
-
-    $scope.hasPropertyError = formUtils.hasPropertyError;
-
-};
-
-DialogResetController.$inject = ['$scope', '$uibModalInstance', 'formUtils'];
-module.exports = DialogResetController;
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/reset/_dialog.reset.scss b/traffic_portal/v1/app/src/common/modules/dialog/reset/_dialog.reset.scss
deleted file mode 100644
index fff23b4..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/reset/_dialog.reset.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/reset/dialog.reset.tpl.html b/traffic_portal/v1/app/src/common/modules/dialog/reset/dialog.reset.tpl.html
deleted file mode 100644
index 852131d..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/reset/dialog.reset.tpl.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="modal-header">
-    <button type="button" class="close" ng-click="cancel()"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
-    <h5 class="modal-title">Reset User Password</h5>
-</div>
-<div class="modal-body">
-    <form name="resetPasswordForm" class="form-horizontal" role="form" novalidate>
-        <div class="form-group" ng-class="{'has-error': hasError(resetPasswordForm.email), 'has-feedback': hasError(resetPasswordForm.email)}">
-            <label for="email" class="col-sm-2 control-label">Email:</label>
-            <div class="col-sm-10">
-                <input id="email" name="email" type="email" class="form-control" placeholder="Enter your email" ng-model="userData.email" required>
-                <small class="input-error" ng-show="hasPropertyError(resetPasswordForm.email, 'required')">Required</small>
-                <small class="input-error" ng-show="hasPropertyError(resetPasswordForm.email, 'email')">Invalid email</small>
-                <span ng-show="hasError(resetPasswordForm.email)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-            </div>
-        </div>
-    </form>
-</div>
-<div class="modal-footer">
-    <button class="btn btn-link" ng-click="cancel()">Cancel</button>
-    <button class="btn action-btn" ng-disabled="resetPasswordForm.$pristine || resetPasswordForm.$invalid" ng-click="reset(userData.email)">Reset</button>
-</div>
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/dialog/reset/index.js b/traffic_portal/v1/app/src/common/modules/dialog/reset/index.js
deleted file mode 100644
index c14c8e7..0000000
--- a/traffic_portal/v1/app/src/common/modules/dialog/reset/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.dialog.reset', [])
-    .controller('DialogResetController', require('./DialogResetController'));
diff --git a/traffic_portal/v1/app/src/common/modules/footer/FooterController.js b/traffic_portal/v1/app/src/common/modules/footer/FooterController.js
deleted file mode 100644
index 0a55062..0000000
--- a/traffic_portal/v1/app/src/common/modules/footer/FooterController.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var FooterController = function($scope, propertiesModel) {
-
-    var chunk = function(array, n) {
-        var retval = [];
-        for (var i = 0, len = array.length; i < len; i += n) {
-            retval.push(array.slice(i, i + n));
-        }
-        return retval;
-    };
-
-    $scope.footerChunks = chunk(propertiesModel.properties.footer.links, 4);
-
-};
-
-FooterController.$inject = ['$scope', 'propertiesModel'];
-module.exports = FooterController;
diff --git a/traffic_portal/v1/app/src/common/modules/footer/footer.tpl.html b/traffic_portal/v1/app/src/common/modules/footer/footer.tpl.html
deleted file mode 100755
index dcf4458..0000000
--- a/traffic_portal/v1/app/src/common/modules/footer/footer.tpl.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="footer-bottom container">
-    <ul class="menu-list">
-        <li ng-repeat="footerChunk in footerChunks">
-            <ul>
-                <li ng-repeat="footerLink in footerChunk"><a href="{{footerLink.url}}" target="_blank">{{footerLink.text}}</a></li>
-            </ul>
-        </li>
-    </ul>
-</div>
diff --git a/traffic_portal/v1/app/src/common/modules/footer/index.js b/traffic_portal/v1/app/src/common/modules/footer/index.js
deleted file mode 100644
index 98e59e6..0000000
--- a/traffic_portal/v1/app/src/common/modules/footer/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.footer', [])
-    .controller('FooterController', require('./FooterController'));
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/header/HeaderController.js b/traffic_portal/v1/app/src/common/modules/header/HeaderController.js
deleted file mode 100755
index 1b82c26..0000000
--- a/traffic_portal/v1/app/src/common/modules/header/HeaderController.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var HeaderController = function($scope, $state, $window, $anchorScroll, $uibModal, authService, portalService, userModel, deliveryServicesModel, propertiesModel) {
-
-    $scope.isCollapsed = true;
-
-    $scope.user = angular.copy(userModel.user);
-
-    $scope.deliveryServices = deliveryServicesModel.deliveryServices;
-
-    $scope.properties = propertiesModel.properties;
-
-    $scope.isState = function(state) {
-        return $state.current.name.indexOf(state) !== -1;
-    };
-
-    $scope.showDS = function(dsId) {
-        $state.go('trafficPortal.private.deliveryService.view.overview.detail', { deliveryServiceId: dsId } );
-    };
-
-    $scope.releaseVersion = function() {
-        portalService.getReleaseVersionInfo()
-            .then(function(result) {
-                $uibModal.open({
-                    templateUrl: 'common/modules/release/version/release.version.tpl.html',
-                    controller: 'ReleaseVersionController',
-                    size: 'sm',
-                    resolve: {
-                        params: function () {
-                            return result;
-                        }
-                    }
-                });
-            });
-    };
-
-    $scope.about = function() {
-        if ($scope.properties.about.iframe) {
-            $scope.navigateToState('trafficPortal.public.about', false);
-        } else {
-            $window.open(
-                $scope.properties.about.url,
-                '_blank'
-            );
-        }
-    };
-
-    $scope.navigateToState = function(to, reload) {
-        $state.go(to, {}, { reload: reload });
-    };
-
-    $scope.logout = function() {
-        authService.logout();
-    };
-
-    var scrollToTop = function() {
-        $anchorScroll(); // hacky?
-    };
-
-    $scope.$on('userModel::userUpdated', function(event) {
-        $scope.user = angular.copy(userModel.user);
-    });
-
-    var init = function () {
-        scrollToTop();
-    };
-    init();
-};
-
-HeaderController.$inject = ['$scope', '$state', '$window', '$anchorScroll', '$uibModal', 'authService', 'portalService', 'userModel', 'deliveryServicesModel', 'propertiesModel'];
-module.exports = HeaderController;
diff --git a/traffic_portal/v1/app/src/common/modules/header/_header.scss b/traffic_portal/v1/app/src/common/modules/header/_header.scss
deleted file mode 100755
index 148e59f..0000000
--- a/traffic_portal/v1/app/src/common/modules/header/_header.scss
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#header {
-
-  .navbar-nav .navbar-dropdown {
-    padding-top: 8px;
-  }
-
-  .no-transition {
-    -webkit-transition: height 0.01s;
-    -moz-transition: height 0.01s;
-    -ms-transition: height 0.01s;
-    -o-transition: height 0.01s;
-    transition: height 0.01s;
-  }
-
-  .nav-divider {
-    margin-top: 0;
-    margin-bottom: 0;
-  }
-
-  .top-navbar {
-    margin-bottom: 5px;
-  }
-
-  .sub-navbar {
-    margin-top: 10px;
-    margin-bottom: 10px;
-  }
-
-  .divider {
-    height: 2px;
-  }
-
-}
-
-#scrollable-ds-nav-menu {
-  height: auto;
-  max-height: 300px;
-  max-width: 500px;
-  overflow-y: auto;
-
-  .ds-name-link {
-    overflow: hidden;
-    text-overflow: ellipsis;
-  }
-
-}
-
-#headerUsername {
-  max-width: 200px;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  display: inline-block;
-  margin-bottom: -5px;
-}
-
-@media (max-width: 991px) {
-  #header {
-    .nav-divider {
-      display: none;
-    }
-  }
-}
diff --git a/traffic_portal/v1/app/src/common/modules/header/header.tpl.html b/traffic_portal/v1/app/src/common/modules/header/header.tpl.html
deleted file mode 100755
index 0174b8e..0000000
--- a/traffic_portal/v1/app/src/common/modules/header/header.tpl.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="header" class="container">
-    <div class="navbar-header">
-        <button class="navbar-toggle" type="button" ng-click="isCollapsed = !isCollapsed">
-            <span class="sr-only">Toggle navigation</span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-        </button>
-        <span class="logo pull-left"></span>
-        <a class="navbar-brand" ui-sref="trafficPortal.public.home.landing">{{properties.name}}</a>
-    </div>
-    <div uib-collapse="isCollapsed" class="collapse navbar-collapse no-transition">
-        <ul class="nav navbar-nav navbar-right top-navbar">
-            <li class="navbar-dropdown navbar-dropdown-left dropdown">
-                <div class="btn-group" uib-dropdown is-open="helpMenu.isopen">
-                    <button id="helpMenu-button" type="button" class="btn btn-link" uib-dropdown-toggle>Help <i class="fa fa-angle-down fa-lg"></i></button>
-                    <ul class="uib-dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="helpMenu-button">
-                        <li ng-if="properties.about.show"><a ng-click="about()">About {{properties.name}}</a></li>
-                        <li><a ng-click="releaseVersion()">Release Information</a></li>
-                    </ul>
-                </div>
-            </li>
-            <li ng-show="!user.loaded && !isState('trafficPortal.public.home.landing')" class="navbar-btn">
-                <button type="button" class="btn btn-link" ng-click="navigateToState('trafficPortal.public.home.landing', false)">Login</button>
-            </li>
-            <li ng-show="user.loaded" class="navbar-dropdown navbar-dropdown-left dropdown">
-                <div class="btn-group" uib-dropdown is-open="userMenu.isopen">
-                    <button id="userMenu-button" type="button" class="btn btn-link" uib-dropdown-toggle>
-                        <span id="headerUsername" ng-show="!user.newUser">{{user.username}}</span><span ng-show="user.newUser">New User</span> <i class="fa fa-angle-down fa-lg"></i>
-                    </button>
-                    <ul class="uib-dropdown-menu" role="menu" aria-labelledby="userMenu-button">
-                        <li ng-show="user.localUser"><a ui-sref="trafficPortal.private.user.edit">Manage User Profile</a></li>
-                        <li><a ng-click="logout()">Sign Out</a></li>
-                    </ul>
-                </div>
-            </li>
-        </ul>
-    </div>
-    <hr ng-show="user.loaded" class="nav-divider">
-    <div uib-collapse="isCollapsed" class="collapse navbar-collapse no-transition">
-        <ul ng-show="user.loaded" class="nav navbar-nav sub-navbar navbar-left">
-            <li><button type="button" class="btn btn-link" ng-class="{'selected': isState('trafficPortal.private.dashboard.overview')}" ng-click="navigateToState('trafficPortal.private.dashboard.overview', false)">Dashboard</button></li>
-            <li class="sub-navbar-dropdown sub-navbar-dropdown-right dropdown">
-                <div class="btn-group" uib-dropdown is-open="dsMenu.isopen">
-                    <button id="dsMenu-button" type="button" class="btn btn-link" ng-class="{'selected': isState('trafficPortal.private.deliveryService')}" uib-dropdown-toggle>
-                        Delivery Services <i class="fa fa-angle-down fa-lg"></i>
-                    </button>
-                    <ul id="scrollable-ds-nav-menu" class="uib-dropdown-menu scrollable" role="menu" aria-labelledby="dsMenu-button">
-                        <li ng-if="properties.deliveryService.request.show"><a class="ds-name-link" title="New Delivery Service" ng-click="navigateToState('trafficPortal.private.deliveryService.new', true)"><i class="fa fa-plus fa-fw"></i> New Delivery Service</a> </li>
-                        <li ng-if="properties.deliveryService.request.show && deliveryServices.length > 0" class="divider"></li>
-                        <li ng-repeat="ds in deliveryServices | orderBy:'displayName'"><a class="ds-name-link" title="{{ds.displayName}} ({{ds.id}} | {{ds.xmlId}})" ng-click="showDS(ds.id)"><i class="fa fa-times fa-fw" title="Inactive" ng-show="!ds.active"></i><i class="fa fa-check fa-fw" title="Active" ng-show="ds.active"></i> {{ds.displayName}}</a></li>
-                    </ul>
-                </div>
-            </li>
-            <li><button type="button" class="btn btn-link" ng-class="{'selected': isState('trafficPortal.private.collateral')}" ng-click="navigateToState('trafficPortal.private.collateral', false)">Collateral</button></li>
-        </ul>
-    </div>
-</div>
diff --git a/traffic_portal/v1/app/src/common/modules/header/index.js b/traffic_portal/v1/app/src/common/modules/header/index.js
deleted file mode 100755
index 8a93e86..0000000
--- a/traffic_portal/v1/app/src/common/modules/header/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.header', [])
-    .controller('HeaderController', require('./HeaderController'));
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/message/MessageController.js b/traffic_portal/v1/app/src/common/modules/message/MessageController.js
deleted file mode 100644
index c253d8e..0000000
--- a/traffic_portal/v1/app/src/common/modules/message/MessageController.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var MessageController = function($rootScope, $scope, messageModel, chartModel) {
-
-    $scope.messageData = messageModel;
-
-    $scope.chartData = chartModel.chart;
-
-    $scope.dismissMessage = function(message) {
-        messageModel.removeMessage(message);
-    };
-
-    $scope.showConnectionLostMsg = function() {
-        $('#lostConnectionMsg').show();
-    };
-
-    $scope.hideConnectionLostMsg = function() {
-        $('#lostConnectionMsg').hide();
-    };
-
-    $rootScope.$watch('online', function(newStatus) {
-        if (newStatus === false && $scope.chartData.autoRefresh === true) {
-            $scope.showConnectionLostMsg();
-        }
-    });
-
-};
-
-MessageController.$inject = ['$rootScope', '$scope', 'messageModel', 'chartModel'];
-module.exports = MessageController;
diff --git a/traffic_portal/v1/app/src/common/modules/message/_message.scss b/traffic_portal/v1/app/src/common/modules/message/_message.scss
deleted file mode 100644
index 21978d4..0000000
--- a/traffic_portal/v1/app/src/common/modules/message/_message.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#messageContainer {
-  margin-top: 20px;
-  margin-bottom: 20px;
-  .alert {
-    margin-bottom: 0;
-  }
-}
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/message/index.js b/traffic_portal/v1/app/src/common/modules/message/index.js
deleted file mode 100644
index 6d10dd0..0000000
--- a/traffic_portal/v1/app/src/common/modules/message/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.message', [])
-    .controller('MessageController', require('./MessageController'));
diff --git a/traffic_portal/v1/app/src/common/modules/message/message.tpl.html b/traffic_portal/v1/app/src/common/modules/message/message.tpl.html
deleted file mode 100644
index 8f6d9c4..0000000
--- a/traffic_portal/v1/app/src/common/modules/message/message.tpl.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="messageContainer">
-    <div id="lostConnectionMsg" class="alert alert-dismissable alert-danger" style="display: none;">
-        <button type="button" class="close" data-dismiss="alert" aria-hidden="true" ng-click="hideConnectionLostMsg()">&times;</button>
-        Your internet connection was interrupted. Live chart updates have been turned off. Please restart if necessary.
-    </div>
-</div>
-<div ng-show="messageData.messages.loaded">
-    <div class="alert alert-dismissable alert-{{(message.level === 'error') ? 'danger' : message.level}}" ng-repeat="message in messageData.messages.content">
-        <button type="button" class="close" data-dismiss="alert" aria-hidden="true" ng-click="dismissMessage(message)">&times;</button>
-        <div ng-bind-html="message.text | linky:'_blank'"></div>
-    </div>
-</div>
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/modules/release/version/ReleaseVersionController.js b/traffic_portal/v1/app/src/common/modules/release/version/ReleaseVersionController.js
deleted file mode 100644
index a020157..0000000
--- a/traffic_portal/v1/app/src/common/modules/release/version/ReleaseVersionController.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ReleaseVersionController = function(params, $scope, $uibModalInstance) {
-
-    $scope.params = params;
-
-    $scope.dismiss = function () {
-        $uibModalInstance.dismiss('cancel');
-    };
-
-};
-
-ReleaseVersionController.$inject = ['params', '$scope', '$uibModalInstance'];
-module.exports = ReleaseVersionController;
diff --git a/traffic_portal/v1/app/src/common/modules/release/version/_release.version.scss b/traffic_portal/v1/app/src/common/modules/release/version/_release.version.scss
deleted file mode 100644
index fff23b4..0000000
--- a/traffic_portal/v1/app/src/common/modules/release/version/_release.version.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
diff --git a/traffic_portal/v1/app/src/common/modules/release/version/index.js b/traffic_portal/v1/app/src/common/modules/release/version/index.js
deleted file mode 100644
index 6e2598f..0000000
--- a/traffic_portal/v1/app/src/common/modules/release/version/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.release.version', [])
-    .controller('ReleaseVersionController', require('./ReleaseVersionController'));
diff --git a/traffic_portal/v1/app/src/common/modules/release/version/release.version.tpl.html b/traffic_portal/v1/app/src/common/modules/release/version/release.version.tpl.html
deleted file mode 100644
index ce8df6e..0000000
--- a/traffic_portal/v1/app/src/common/modules/release/version/release.version.tpl.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="modal-header">
-    <button type="button" class="close" ng-click="dismiss()"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
-    <h4 class="modal-title">Release Information</h4>
-</div>
-<div class="modal-body">
-    <p ng-repeat="(key, value) in params">{{key}}: {{value}}</p>
-</div>
diff --git a/traffic_portal/v1/app/src/common/modules/tools/purge/ToolsPurgeController.js b/traffic_portal/v1/app/src/common/modules/tools/purge/ToolsPurgeController.js
deleted file mode 100644
index 906754f..0000000
--- a/traffic_portal/v1/app/src/common/modules/tools/purge/ToolsPurgeController.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ToolsPurgeController = function($scope, $uibModal, $stateParams, messageModel, deliveryServicesModel, dateUtils, formUtils, deliveryServiceService, userService) {
-
-    var getPurgeJobs = function() {
-        $scope.loadingPurgeJobs = true;
-        deliveryServiceService.getPurgeJobs($scope.deliveryService.id, false)
-            .then(function(response) {
-                $scope.loadingPurgeJobs = false;
-                $scope.purgeJobs = response;
-            });
-    };
-
-    var createPurgeJob = function(jobParams) {
-        userService.createUserPurgeJob(jobParams)
-            .then(function(response) {
-                getPurgeJobs();
-            });
-    };
-
-    $scope.deliveryService = deliveryServicesModel.getDeliveryService($stateParams.deliveryServiceId);
-
-    $scope.dateFormat = dateUtils.dateFormat;
-
-    $scope.resetPurgeJobData = function() {
-        $scope.newPurgeJobData = {
-            dsId: $scope.deliveryService.id,
-            dsXmlId: $scope.deliveryService.xmlId,
-            regex: '',
-            ttl: 672,
-            startTime: moment().format('YYYY-MM-DD HH:mm:ss')
-        };
-    };
-    $scope.resetPurgeJobData();
-
-    $scope.confirmPurgeJobCreate = function(newPurgeJob) {
-        var params = {
-            title: 'Confirmation required',
-            message: 'Are you sure you want to invalidate content for ' + $scope.deliveryService.orgServerFqdn + newPurgeJob.regex
-        };
-        var modalInstance = $uibModal.open({
-            templateUrl: 'common/modules/dialog/confirm/dialog.confirm.tpl.html',
-            controller: 'DialogConfirmController',
-            size: 'md',
-            resolve: {
-                params: function () {
-                    return params;
-                }
-            }
-        });
-        modalInstance.result
-            .then(
-            function() {
-                createPurgeJob($scope.newPurgeJobData);
-                $scope.resetPurgeJobData();
-                $scope.purgeForm.$setPristine();
-            },
-            function () {
-            });
-    };
-
-    $scope.toDate = function(date) {
-        return moment(date).toDate(); // hack for https://issues.apache.org/jira/browse/TC-78
-    };
-
-    $scope.hasError = formUtils.hasError;
-
-    $scope.hasPropertyError = formUtils.hasPropertyError;
-
-    angular.element(document).ready(function () {
-        getPurgeJobs();
-    });
-
-};
-
-ToolsPurgeController.$inject = ['$scope', '$uibModal', '$stateParams', 'messageModel', 'deliveryServicesModel', 'dateUtils', 'formUtils', 'deliveryServiceService', 'userService'];
-module.exports = ToolsPurgeController;
diff --git a/traffic_portal/v1/app/src/common/modules/tools/purge/_tools.purge.scss b/traffic_portal/v1/app/src/common/modules/tools/purge/_tools.purge.scss
deleted file mode 100644
index c1b1c4e..0000000
--- a/traffic_portal/v1/app/src/common/modules/tools/purge/_tools.purge.scss
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#purgeFormContainer {
-  width: 450px;
-  margin: 10px;
-  cursor: default !important;
-
-  #purgeForm {
-    padding: 20px;
-  }
-
-  #purgeJobsLoading {
-    padding: 10px;
-  }
-}
-
-#purgeJobs {
-  margin-top: 10px;
-
-  .list-group {
-    margin-bottom:0px;
-
-    .list-group-item {
-
-      &:hover {
-        text-decoration: none;
-        background-color: rgb(255, 255, 255);
-      }
-
-      .purge-job-start {
-        font-size: 11px;
-        color: #999;
-      }
-
-    }
-
-  }
-
-}
diff --git a/traffic_portal/v1/app/src/common/modules/tools/purge/index.js b/traffic_portal/v1/app/src/common/modules/tools/purge/index.js
deleted file mode 100644
index d8792a1..0000000
--- a/traffic_portal/v1/app/src/common/modules/tools/purge/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.tools.purge', [])
-    .controller('ToolsPurgeController', require('./ToolsPurgeController'));
diff --git a/traffic_portal/v1/app/src/common/modules/tools/purge/tools.purge.tpl.html b/traffic_portal/v1/app/src/common/modules/tools/purge/tools.purge.tpl.html
deleted file mode 100644
index c6243f3..0000000
--- a/traffic_portal/v1/app/src/common/modules/tools/purge/tools.purge.tpl.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="purgeFormContainer" ng-click="$event.stopPropagation()">
-    <form id="purgeForm" name="purgeForm" role="form" ng-submit="confirmPurgeJobCreate(newPurgeJobData);" novalidate>
-        <div class="row">
-            <div class="col-sm-12 col-md-12">
-                <div class="form-group" ng-class="{'has-error': hasError(purgeForm.regex), 'has-feedback': hasError(purgeForm.regex)}">
-                    <label for="regex" class="control-label">Content pattern (regex) to match:</label>
-                    <input id="regex" name="regex" type="text" class="form-control" placeholder="eg. /path/to/content/.*\.jpg" ng-model="newPurgeJobData.regex" ng-pattern="/^\//" autofocus required>
-                    <small class="input-error" ng-show="hasPropertyError(purgeForm.regex, 'pattern')">Must Start with /</small>
-                    <small class="input-error" ng-show="hasPropertyError(purgeForm.regex, 'required')">Required</small>
-                    <span ng-show="hasError(purgeForm.regex)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-        <button class="btn btn-block action-btn" ng-disabled="purgeForm.$invalid">Invalidate Content</button>
-    </form>
-    <hr>
-    <h6 id="purgeJobsLoading">My purge jobs for {{deliveryService.displayName}} <i class="fa fa-spin fa-spinner fa-fw" ng-show="loadingPurgeJobs"></i></h6>
-    <div id="purgeJobs" ng-show="!loadingPurgeJobs">
-        <div class="list-group">
-            <li class="list-group-item" ng-repeat="purgeJob in purgeJobs">
-                <span>{{purgeJob.assetUrl}}</span>
-                <br>
-                <span class="purge-job-start">{{dateFormat(toDate(purgeJob.startTime), "mmm d yyyy h:MM TT (Z)")}}</span>
-            </li>
-        </div>
-        <div class="no-picks-alert alert alert-info" ng-show="purgeJobs.length == 0">
-            No purge jobs
-        </div>
-    </div>
-</div>
diff --git a/traffic_portal/v1/app/src/common/service/application/ApplicationService.js b/traffic_portal/v1/app/src/common/service/application/ApplicationService.js
deleted file mode 100644
index b152b63..0000000
--- a/traffic_portal/v1/app/src/common/service/application/ApplicationService.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ApplicationService = function($rootScope, $http, $window) {
-
-    /**
-     *  Application Startup Process
-     */
-    this.startup = function() {
-        registerOnlineListener();
-    };
-
-    var registerOnlineListener = function() {
-        $rootScope.online = $window.navigator.onLine;
-        $window.addEventListener("offline", function () {
-            $rootScope.$apply(function() {
-                $rootScope.online = false;
-            });
-        }, false);
-        $window.addEventListener("online", function () {
-            $rootScope.$apply(function() {
-                $rootScope.online = true;
-            });
-        }, false);
-    };
-
-    var init = function() {
-        $http.defaults.withCredentials = true;
-    };
-    init();
-
-};
-
-ApplicationService.$inject = ['$rootScope', '$http', '$window'];
-module.exports = ApplicationService;
diff --git a/traffic_portal/v1/app/src/common/service/application/index.js b/traffic_portal/v1/app/src/common/service/application/index.js
deleted file mode 100644
index 0943e96..0000000
--- a/traffic_portal/v1/app/src/common/service/application/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.application', [])
-    .service('applicationService', require('./ApplicationService'));
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/service/utils/ChartUtils.js b/traffic_portal/v1/app/src/common/service/utils/ChartUtils.js
deleted file mode 100644
index 51ad636..0000000
--- a/traffic_portal/v1/app/src/common/service/utils/ChartUtils.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var ChartUtils = function() {
-
-    this.formatData = function(dataPoints) {
-        if (!angular.isDefined(dataPoints)) { return [] };
-
-        var formattedData = [];
-
-        var dataPointsArray = dataPoints.split(',');
-        for (var i = 0; i < dataPointsArray.length; i++) {
-            dataPointsArray[i] = +dataPointsArray[i];
-        }
-        for (var j = 0; j < dataPointsArray.length; j+=2) {
-            formattedData.push(dataPointsArray.slice(j, j+2))
-        }
-        return formattedData;
-    };
-
-};
-
-ChartUtils.$inject = [];
-module.exports = ChartUtils;
diff --git a/traffic_portal/v1/app/src/common/service/utils/FormUtils.js b/traffic_portal/v1/app/src/common/service/utils/FormUtils.js
deleted file mode 100644
index 7c0e111..0000000
--- a/traffic_portal/v1/app/src/common/service/utils/FormUtils.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var FormUtils = function() {
-
-    this.hasError = function(input) {
-        return !input.$focused && input.$dirty && input.$invalid;
-    };
-
-    this.hasPropertyError = function(input, property) {
-        return !input.$focused && input.$dirty && input.$error[property];
-    };
-
-};
-
-FormUtils.$inject = [];
-module.exports = FormUtils;
diff --git a/traffic_portal/v1/app/src/common/service/utils/JSONUtils.js b/traffic_portal/v1/app/src/common/service/utils/JSONUtils.js
deleted file mode 100644
index 792c0d5..0000000
--- a/traffic_portal/v1/app/src/common/service/utils/JSONUtils.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var JSONUtils = function() {
-
-    this.convertToCSV = function(JSONData, reportTitle, includedKeys) {
-        // if JSONData is not an object then JSON.parse will parse the JSON string in an Object
-        var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
-
-        var CSV = '';
-        // set report title in first row or line
-        CSV += reportTitle + '\r\n\n';
-
-        // this loop will extract the labels from the first hash in the array
-        var keys = [];
-        for (var key in arrData[0]) {
-            if (!includedKeys || _.contains(includedKeys, key)) {
-                keys.push(key);
-            }
-        }
-        keys.sort(); // alphabetically
-
-        var row = "";
-        for (var i = 0; i < keys.length; i++) {
-            //Now convert each value to string and comma-separate
-            row += keys[i] + ',';
-        }
-        row = row.slice(0, -1);
-
-        //append Label row with line break
-        CSV += row + '\r\n';
-
-        // outer loop is to extract each row
-        for (var j = 0; j < arrData.length; j++) {
-            var row = "";
-
-            // inner loop to extract each column by name and convert it to a comma-separated string
-            for (var k = 0; k < keys.length; k++) {
-                row += '"' + arrData[j][keys[k]] + '",';
-            }
-
-            row.slice(0, row.length - 1);
-
-            // add a line break after each row
-            CSV += row + '\r\n';
-        }
-
-        if (CSV == '') {
-            alert("Invalid data");
-            return;
-        }
-
-        // generate a file name
-        var fileName = "";
-        // this will remove the blank-spaces from the title and replace it with an underscore
-        fileName += reportTitle.replace(/ /g,"_");
-
-        // initialize file format to csv
-        var uri = 'data:text/csv;charset=utf-8,' + escape(CSV);
-
-        // Now the little tricky part.
-        // you can use either>> window.open(uri);
-        // but this will not work in some browsers
-        // or you will not get the correct file extension
-
-        // this trick will generate a temp <a /> tag
-        var link = document.createElement("a");
-        link.href = uri;
-
-        // set the visibility hidden so it will not effect on your web-layout
-        link.style = "visibility:hidden";
-        link.download = fileName + ".csv";
-
-        // this part will append the anchor tag and remove it after automatic click
-        document.body.appendChild(link);
-        link.click();
-        document.body.removeChild(link);
-    };
-
-};
-
-JSONUtils.$inject = [];
-module.exports = JSONUtils;
diff --git a/traffic_portal/v1/app/src/common/service/utils/NumberUtils.js b/traffic_portal/v1/app/src/common/service/utils/NumberUtils.js
deleted file mode 100644
index e3502ef..0000000
--- a/traffic_portal/v1/app/src/common/service/utils/NumberUtils.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var NumberUtils = function($filter) {
-
-    var k = 1000,
-        sizes = ['B', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb'];
-
-    this.addCommas = function(nStr)
-    {
-        nStr += '';
-        x = nStr.split('.');
-        x1 = x[0];
-        x2 = x.length > 1 ? '.' + x[1] : '';
-        var rgx = /(\d+)(\d{3})/;
-        while (rgx.test(x1)) {
-            x1 = x1.replace(rgx, '$1' + ',' + '$2');
-        }
-        return x1 + x2;
-    };
-
-    /**
-     * This function takes big scary kilobit numbers and 'shrinks' them to a friendly version
-     * i.e. 10,000 kilobits is easier read as 10 megabits...
-     */
-    this.shrink = function(kilounits) {
-        if (!angular.isNumber(kilounits) || kilounits == 0) return [ 0, 'Kb' ];
-        var units = kilounits * 1000;
-        var i = Math.floor(Math.log(units) / Math.log(k));
-        if (i < 1) { i = 1 } // kilobits is the lowest we will go
-        if (i > 5) { i = 5 } // petabits is the highest we will go
-        return [ Math.round((units / Math.pow(k, i)) * 100) / 100, sizes[i] ];
-    };
-
-    this.convertTo = function(kilounits, size) {
-        if (!angular.isNumber(kilounits)) return null;
-        if (kilounits == 0) return 0;
-        var units = kilounits * 1000;
-        var i = sizes.indexOf(size);
-        if (i == -1) {
-            return 0;
-        }
-        return Math.round((units / Math.pow(k, i)) * 100) / 100;
-    };
-
-    this.average = function(arr)
-    {
-        if (!angular.isArray(arr) || arr.length == 0 ) return 0;
-        return _.reduce(arr, function(memo, num) {
-            return memo + num;
-        }, 0) / arr.length;
-    }
-
-    this.ratio = function(numerator, denominator)
-    {
-        if (numerator === 0 || denominator === 0) {
-            return 'N/A';
-        } else {
-            return $filter('number')(numerator/denominator, 2) + ':1';
-        }
-    }
-
-};
-
-NumberUtils.$inject = ['$filter'];
-module.exports = NumberUtils;
diff --git a/traffic_portal/v1/app/src/common/service/utils/date/DateUtils.js b/traffic_portal/v1/app/src/common/service/utils/date/DateUtils.js
deleted file mode 100644
index 14ad2d3..0000000
--- a/traffic_portal/v1/app/src/common/service/utils/date/DateUtils.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var DateUtils = function() {
-
-    this.dateFormat = function () {
-        // source: http://blog.stevenlevithan.com/archives/date-time-format
-        var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
-            timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
-            timezoneClip = /[^-+\dA-Z]/g,
-            pad = function (val, len) {
-                val = String(val);
-                len = len || 2;
-                while (val.length < len) val = "0" + val;
-                return val;
-            };
-
-        // Regexes and supporting functions are cached through closure
-        return function (date, mask, utc) {
-            var dF = this.dateFormat;
-
-            // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
-            if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
-                mask = date;
-                date = undefined;
-            }
-
-            // Passing date through Date applies Date.parse, if necessary
-            date = date ? new Date(date) : new Date;
-            if (isNaN(date)) throw SyntaxError("invalid date");
-
-            mask = String(dF.masks[mask] || mask || dF.masks["default"]);
-
-            // Allow setting the utc argument via the mask
-            if (mask.slice(0, 4) == "UTC:") {
-                mask = mask.slice(4);
-                utc = true;
-            }
-
-            var	_ = utc ? "getUTC" : "get",
-                d = date[_ + "Date"](),
-                D = date[_ + "Day"](),
-                m = date[_ + "Month"](),
-                y = date[_ + "FullYear"](),
-                H = date[_ + "Hours"](),
-                M = date[_ + "Minutes"](),
-                s = date[_ + "Seconds"](),
-                L = date[_ + "Milliseconds"](),
-                o = utc ? 0 : date.getTimezoneOffset(),
-                flags = {
-                    d:    d,
-                    dd:   pad(d),
-                    ddd:  dF.i18n.dayNames[D],
-                    dddd: dF.i18n.dayNames[D + 7],
-                    m:    m + 1,
-                    mm:   pad(m + 1),
-                    mmm:  dF.i18n.monthNames[m],
-                    mmmm: dF.i18n.monthNames[m + 12],
-                    yy:   String(y).slice(2),
-                    yyyy: y,
-                    h:    H % 12 || 12,
-                    hh:   pad(H % 12 || 12),
-                    H:    H,
-                    HH:   pad(H),
-                    M:    M,
-                    MM:   pad(M),
-                    s:    s,
-                    ss:   pad(s),
-                    l:    pad(L, 3),
-                    L:    pad(L > 99 ? Math.round(L / 10) : L),
-                    t:    H < 12 ? "a"  : "p",
-                    tt:   H < 12 ? "am" : "pm",
-                    T:    H < 12 ? "A"  : "P",
-                    TT:   H < 12 ? "AM" : "PM",
-                    Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
-                    o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
-                    S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
-                };
-
-            return mask.replace(token, function ($0) {
-                return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
-            });
-        };
-    }();
-
-    this.dateFormat.masks = {
-        "default":      "ddd mmm dd yyyy HH:MM:ss",
-        shortDate:      "m/d/yy",
-        mediumDate:     "mmm d, yyyy",
-        longDate:       "mmmm d, yyyy",
-        fullDate:       "dddd, mmmm d, yyyy",
-        shortTime:      "h:MM TT",
-        mediumTime:     "h:MM:ss TT",
-        longTime:       "h:MM:ss TT Z",
-        isoDate:        "yyyy-mm-dd",
-        isoTime:        "HH:MM:ss",
-        isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
-        isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
-    };
-
-    this.dateFormat.i18n = {
-        dayNames: [
-            "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
-            "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-        ],
-        monthNames: [
-            "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-            "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-        ]
-    };
-
-};
-
-DateUtils.$inject = [];
-module.exports = DateUtils;
diff --git a/traffic_portal/v1/app/src/common/service/utils/date/index.js b/traffic_portal/v1/app/src/common/service/utils/date/index.js
deleted file mode 100644
index b104c3d..0000000
--- a/traffic_portal/v1/app/src/common/service/utils/date/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.utils.date', [])
-    .service('dateUtils', require('./DateUtils'));
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/service/utils/index.js b/traffic_portal/v1/app/src/common/service/utils/index.js
deleted file mode 100644
index 581a3b1..0000000
--- a/traffic_portal/v1/app/src/common/service/utils/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.utils', [])
-    .service('chartUtils', require('./ChartUtils'))
-    .service('formUtils', require('./FormUtils'))
-    .service('jsonUtils', require('./JSONUtils'))
-    .service('numberUtils', require('./NumberUtils'));
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/common/templates/master.tpl.html b/traffic_portal/v1/app/src/common/templates/master.tpl.html
deleted file mode 100755
index 668b5e4..0000000
--- a/traffic_portal/v1/app/src/common/templates/master.tpl.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<!-- Header Nav -->
-<nav class="navbar navbar-inverse" ui-view="header"></nav>
-
-<div class="container">
-
-    <!-- Message -->
-    <div ui-view="message"></div>
-
-    <!-- Content -->
-    <div ui-view="content"></div>
-
-</div>
-
-<!-- Footer -->
-<footer id="footer" ui-view="footer"></footer>
diff --git a/traffic_portal/v1/app/src/index.html b/traffic_portal/v1/app/src/index.html
deleted file mode 100755
index c8c9987..0000000
--- a/traffic_portal/v1/app/src/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<!doctype html>
-<head>
-
-    <title>Traffic Portal</title>
-
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="description" content="">
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-
-    <link rel="shortcut icon" href="resources/assets/images/favicon.png" type="image/x-icon" />
-
-    <link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
-    <link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-datetimepicker/0.4.0/css/datetimepicker.css">
-
-    <link rel="stylesheet" media="all" href="resources/styles/loading.css">
-    <link rel="stylesheet" media="all" href="resources/styles/main.css">
-    <link rel="stylesheet" media="all" href="resources/assets/css/custom.css">
-
-</head>
-
-<body ng-app="trafficPortal" ng-controller="AppCtrl" ng-class="{'home': isHome()}">
-
-    <div class="app" ui-view></div>
-
-    <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
-
-    <script src="resources/assets/js/shared-libs.js"></script>
-
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-datetimepicker/0.4.0/js/datetimepicker.min.js"></script>
-
-    <script src="resources/assets/js/config.js"></script>
-    <script src="resources/assets/js/app.js"></script>
-
-    <script type="text/javascript">
-        function AppCtrl($scope, $state) {
-            $scope.isHome = function() {
-                return $state.current.name == 'trafficPortal.public.home.landing';
-            };
-        }
-    </script>
-
-</body>
-
-</html>
diff --git a/traffic_portal/v1/app/src/modules/private/collateral/CollateralController.js b/traffic_portal/v1/app/src/modules/private/collateral/CollateralController.js
deleted file mode 100644
index 1236e52..0000000
--- a/traffic_portal/v1/app/src/modules/private/collateral/CollateralController.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var CollateralController = function($scope, propertiesModel) {
-
-    $scope.collateralItems = propertiesModel.properties.collateral.items;
-
-};
-
-CollateralController.$inject = ['$scope', 'propertiesModel'];
-module.exports = CollateralController;
diff --git a/traffic_portal/v1/app/src/modules/private/collateral/_collateral.scss b/traffic_portal/v1/app/src/modules/private/collateral/_collateral.scss
deleted file mode 100644
index b2f81fc..0000000
--- a/traffic_portal/v1/app/src/modules/private/collateral/_collateral.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#productCollateralContainer {
-
-  .list-group-item {
-    background-color: transparent;
-
-    .action-btn {
-      float: right;
-    }
-
-  }
-
-}
diff --git a/traffic_portal/v1/app/src/modules/private/collateral/collateral.tpl.html b/traffic_portal/v1/app/src/modules/private/collateral/collateral.tpl.html
deleted file mode 100644
index 6d6a025..0000000
--- a/traffic_portal/v1/app/src/modules/private/collateral/collateral.tpl.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="productCollateralContainer">
-    <h3 class="title">Collateral</h3>
-    <div class="list-group">
-        <a class="list-group-item" ng-repeat="collateralItem in collateralItems" href="{{collateralItem.path}}" target="_blank">
-            <div class="row">
-                <div class="col-sm-4 col-md-4">{{collateralItem.name}}</div>
-                <div class="col-sm-6 col-md-6">{{collateralItem.description}}</div>
-                <div class="col-sm-2 col-md-2">
-                    <button type="button" class="action-btn btn">Download &nbsp;&nbsp;<i class="fa fa-chevron-circle-right fa-lg"></i></button>
-                </div>
-            </div>
-        </a>
-    </div>
-    <div class="alert alert-info" ng-show="collateral.length == 0">
-        No collateral
-    </div>
-</div>
diff --git a/traffic_portal/v1/app/src/modules/private/collateral/index.js b/traffic_portal/v1/app/src/modules/private/collateral/index.js
deleted file mode 100644
index 7fdf76e..0000000
--- a/traffic_portal/v1/app/src/modules/private/collateral/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.collateral', [])
-    .controller('CollateralController', require('./CollateralController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.collateral', {
-                url: 'collateral',
-                views: {
-                    privateContent: {
-                        templateUrl: 'modules/private/collateral/collateral.tpl.html',
-                        controller: 'CollateralController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/DashboardController.js b/traffic_portal/v1/app/src/modules/private/dashboard/DashboardController.js
deleted file mode 100644
index a09ba9d..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/DashboardController.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DashboardController = function($scope, $location, chartModel, deliveryServicesModel, propertiesModel, userModel) {
-
-    $scope.deliveryServices = deliveryServicesModel.deliveryServices;
-
-    $scope.properties = propertiesModel.properties;
-
-    $scope.user = angular.copy(userModel.user);
-
-    $scope.requestDS = function() {
-        $location.url('/delivery-service/new');
-    };
-
-    var init = function () {
-        chartModel.resetChart(); // set chart back to default parameters
-    };
-    init();
-};
-
-DashboardController.$inject = ['$scope', '$location', 'chartModel', 'deliveryServicesModel', 'propertiesModel', 'userModel'];
-module.exports = DashboardController;
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/_dashboard.scss b/traffic_portal/v1/app/src/modules/private/dashboard/_dashboard.scss
deleted file mode 100644
index 891e068..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/_dashboard.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#dashboardContainer {
-
-  .request-ds-btn {
-    float: right;
-    margin-left: 5px;
-    margin-top: 20px;
-  }
-
-  .ds-container {
-    clear: both;
-    border: 1px solid #A8A8A8;
-    padding: 20px 20px 0 20px;
-    margin-bottom: 20px;
-  }
-
-}
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/dashboard.tpl.html b/traffic_portal/v1/app/src/modules/private/dashboard/dashboard.tpl.html
deleted file mode 100644
index 62764f0..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/dashboard.tpl.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="dashboardContainer">
-    <h2>CDN Health</h2>
-    <div class="row">
-        <div class="locations-container col-lg-12 col-md-12 col-sm-12">
-            <div ui-view="cacheGroupsContent"></div>
-        </div>
-    </div>
-    <hr>
-    <div class="row">
-        <div class="col-lg-7 col-md-7 col-sm-7">
-            <h2>Assigned Delivery Services <small>[ {{deliveryServices.length}} ]</small></h2>
-        </div>
-        <div class="col-lg-5 col-md-5 col-sm-5">
-            <button ng-if="properties.deliveryService.request.show" type="button" class="request-ds-btn action-btn btn" ng-click="requestDS()"><i class="fa fa-plus fa-fw"></i> New Delivery Service</button>
-        </div>
-    </div>
-    <div class="ds-container col-lg-12 col-md-12 col-sm-12">
-        <div ui-view="deliveryServicesContent"></div>
-    </div>
-</div>
-
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/index.js b/traffic_portal/v1/app/src/modules/private/dashboard/index.js
deleted file mode 100644
index a997c20..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.private.dashboard', [])
-    .controller('DashboardController', require('./DashboardController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.dashboard', {
-                url: 'dashboard',
-                abstract: true,
-                views: {
-                    privateContent: {
-                        templateUrl: 'modules/private/dashboard/dashboard.tpl.html',
-                        controller: 'DashboardController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/DashboardDeliveryServicesController.js b/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/DashboardDeliveryServicesController.js
deleted file mode 100644
index 73debf6..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/DashboardDeliveryServicesController.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DashboardDeliveryServicesController = function($window, $rootScope, $scope, $location, $uibModal, $q, $interval, $filter, $anchorScroll, dateUtils, numberUtils, chartUtils, messageModel, chartModel, statsService) {
-
-    var bandwidthInterval;
-
-    var createDeliveryServiceSparkline = function(dsId, unitSize) {
-        var $sparkLine = $(".delivery-service-sparkline-" + dsId),
-            data = chartUtils.formatData($sparkLine.data('sparkline'));
-
-        var options = {
-            xaxis: {
-                mode: "time",
-                timezone: "browser",
-                ticks: false
-            },
-            yaxis: { ticks: false },
-            grid: {
-                borderWidth: 0,
-                hoverable: true
-            },
-            tooltip: {
-                show: true,
-                content: function(label, xval, yval, flotItem){
-                    return '<span>' + $filter('number')(yval, 2) + ' ' + unitSize + 'ps @ ' + dateUtils.dateFormat(xval, "h:MM:ss tt (Z)") + '</span>';
-                }
-            }
-        };
-
-        var series = [
-            {
-                data: data,
-                color: '#337ab7',
-                lines: {
-                    lineWidth: 0.8
-                },
-                shadowSize: 0
-            }
-        ];
-
-        // draw the sparkline
-        $.plot($sparkLine, series, options);
-    };
-
-    $scope.loadBandwidth = function(dsId, showLoading) {
-        if (!$rootScope.online) return;
-
-        var deliveryService = _.find($scope.deliveryServices, function(ds){ return ds.id === dsId }),
-            $sparkLine = $(".delivery-service-sparkline-" + dsId),
-            yesterday = moment().subtract(24, 'hours'),
-            now = moment(),
-            exclude = '';
-
-        if (showLoading) {
-            try {
-                $sparkLine.empty(); // remove the sparkline if it's there
-            } catch (err) {
-                // there was no sparkline evidently so no need to clear it
-            }
-
-            $sparkLine.html("<div>Loading...</div>");
-            $('.delivery-service-last-' + dsId).html("<div>Calculating...</div>");
-        }
-
-        statsService.getEdgeBandwidthBatch(deliveryService, yesterday, now, '60s', exclude, true, false)
-            .then(
-                function(response) {
-
-                    var sparklineData = [],
-                        originalValue = 0,
-                        convertedValue = 0,
-                        summary = response.summary,
-                        series = response.series;
-
-                    try {
-                        $scope.unitSize = numberUtils.shrink(summary.average)[1];
-                        _.each(series.values, function(seriesItem) {
-                            if (_.isNumber(seriesItem[1])) {
-                                originalValue = seriesItem[1];
-                                convertedValue = numberUtils.convertTo(seriesItem[1], $scope.unitSize);
-                                sparklineData.push(moment(seriesItem[0]).valueOf()); // time in milliseconds
-                                sparklineData.push(convertedValue); // value
-                            }
-                        });
-                    }
-                    catch (e) {
-                        // no bandwidth for delivery service
-                    }
-
-                    deliveryService.last = originalValue;
-                    var convertedLast = numberUtils.shrink(originalValue);
-                    $('.delivery-service-last-' + dsId).html($filter('number')(convertedLast[0], 2) + ' ' + convertedLast[1] + 'ps');
-                    $sparkLine.data('sparkline', sparklineData.join(','));
-                    createDeliveryServiceSparkline(dsId, $scope.unitSize);
-                },
-                function(fault) {
-                    $('.delivery-service-sparkline-' + dsId).html('Error');
-                    $('.delivery-service-last-' + dsId).html('Error');
-                });
-    };
-
-    $scope.search = {
-        query: ""
-    };
-
-    $scope.predicate = 'displayName';
-    $scope.reverse = false;
-
-    $scope.dsOptions = {
-        inactive: true
-    };
-
-    $scope.unitSize = 'Kb';
-
-    $scope.autoLoadLimit = 10;
-
-    $scope.navigateToDeliveryService = function(dsId) {
-        $location.url('/delivery-service/' + dsId).search({ start: moment(chartModel.chart.start).format(), end: moment(chartModel.chart.end).format() });
-    };
-
-    $scope.viewConfig = function(ds) {
-
-        var modalInstance = $uibModal.open({
-            templateUrl: 'common/modules/deliveryService/config/edit/deliveryService.config.edit.tpl.html',
-            controller: 'DSConfigEditController',
-            size: 'lg',
-            windowClass: 'ds-config-modal',
-            resolve: {
-                deliveryService: function (deliveryServiceService) {
-                    return deliveryServiceService.getDeliveryService(ds.id);
-                }
-            }
-        });
-
-        modalInstance.result.then(function() {
-        }, function () {
-            // do nothing
-        });
-    };
-
-    $scope.showInactive = function(show) {
-        $scope.dsOptions.inactive = show;
-    };
-
-    $scope.hideDeliveryService = function(ds) {
-        var query = $scope.search.query.toLowerCase(),
-            id = ds.id.toString(),
-            xmlId = ds.xmlId.toLowerCase(),
-            displayName = ds.displayName.toLowerCase(),
-            isSubstring = (id.indexOf(query) !== -1) || (xmlId.indexOf(query) !== -1) || (displayName.indexOf(query) !== -1);
-
-        return !isSubstring || ($scope.dsOptions.inactive == false && !ds.active);
-    };
-
-    angular.element(document).ready(function () {
-        // if you do not exceed # of delivery services allowed for autoload, we'll autoload bandwidth for each delivery service and refresh on a timer
-        if ($scope.deliveryServices.length <= $scope.autoLoadLimit) {
-            $scope.loadAllBandwidth();
-            bandwidthInterval = $interval($scope.loadAllBandwidth, (5*60*1000)); // new bandwidth data every 5 minutes
-        }
-    });
-
-    $scope.$on("$destroy", function() {
-        if (angular.isDefined(bandwidthInterval)) {
-            $interval.cancel(bandwidthInterval);
-            bandwidthInterval = undefined;
-        }
-    });
-
-};
-
-DashboardDeliveryServicesController.$inject = ['$window', '$rootScope', '$scope', '$location', '$uibModal', '$q', '$interval', '$filter', '$anchorScroll', 'dateUtils', 'numberUtils', 'chartUtils', 'messageModel', 'chartModel', 'statsService'];
-module.exports = DashboardDeliveryServicesController;
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/_dashboard.deliveryServices.scss b/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/_dashboard.deliveryServices.scss
deleted file mode 100644
index ea39454..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/_dashboard.deliveryServices.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#dashboardDSSearchForm {
-  margin-bottom: 10px;
-}
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/dashboard.deliveryServices.tpl.html b/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/dashboard.deliveryServices.tpl.html
deleted file mode 100644
index 9df6480..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/overview/deliveryServices/dashboard.deliveryServices.tpl.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="dashboardDSSearchForm" class="input-group">
-    <input type="text" class="filter-input form-control" placeholder="Filter delivery services..." ng-model="search.query">
-    <span class="filter-input-group-btn input-group-btn">
-        <button ng-show="dsOptions.inactive == true" ng-click="showInactive(false)" class="btn btn-default btn-last" type="button" uib-popover="Hide inactive delivery services" popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true" popover-class="popover-class">Hide Inactive</button>
-        <button ng-show="dsOptions.inactive == false" ng-click="showInactive(true)" class="btn btn-default btn-last" type="button" uib-popover="Show inactive delivery services" popover-trigger="mouseenter" popover-placement="bottom" popover-append-to-body="true" popover-class="popover-class">Show Inactive</button>
-    </span>
-</div>
-<table id="dashboardDSTable" class="table">
-    <thead>
-    <tr>
-        <th>ID</th>
-        <th><a ng-click="predicate = 'displayName'; reverse = !reverse">Delivery Service Name <i class="fa fa-caret-up fa-fw" ng-show="predicate == 'displayName' && !reverse"></i><i class="fa fa-caret-down fa-fw" ng-show="predicate == 'displayName' && reverse"></i></a></th>
-        <th>Bandwidth (24 hrs)</th>
-        <th><a ng-click="predicate = 'last'; reverse = !reverse">Last Bandwidth <i class="fa fa-caret-up fa-fw" ng-show="predicate == 'last' && !reverse"></i><i class="fa fa-caret-down fa-fw" ng-show="predicate == 'last' && reverse"></i></a></th>
-        <th>Actions</th>
-    </tr>
-    </thead>
-    <tbody>
-    <tr class="delivery-service-row" ng-class="{'active': !deliveryService.active}" ng-repeat="deliveryService in deliveryServices | orderBy:predicate:reverse" ng-hide="hideDeliveryService(deliveryService)">
-        <td><a class="link" ng-click="navigateToDeliveryService(deliveryService.id)"><span title="{{deliveryService.id}}">{{deliveryService.id}}</span></a></td>
-        <td><a class="link" ng-click="navigateToDeliveryService(deliveryService.id)"><span title="{{deliveryService.displayName}} ({{deliveryService.id}} | {{deliveryService.xmlId}})">{{deliveryService.displayName}}</span> <span ng-show="!deliveryService.active">[ inactive ]</span></a></td>
-        <td class="delivery-service-sparkline delivery-service-sparkline-{{deliveryService.id}} loading-text"><a class="link" title="Load Bandwidth" ng-click="loadBandwidth(deliveryService.id, true)">Load Bandwidth</a></td>
-        <td class="delivery-service-last-{{deliveryService.id}} loading-text" style="min-width:120px;"></td>
-        <td style="width:130px;">
-            <a class="link" title="Refresh Delivery Service Bandwidth" ng-click="loadBandwidth(deliveryService.id, true)"><i class="fa fa-refresh fa-fw"></i></a>
-            <a class="link" title="View Delivery Service Config" ng-click="viewConfig(deliveryService)"><i class="fa fa-cog fa-fw"></i></a>
-            <a class="link" title="View Delivery Service in New Window" target="_blank" ui-sref="trafficPortal.private.deliveryService.view.overview.detail({deliveryServiceId:deliveryService.id})"><i class="fa fa-external-link fa-fw"></i></a>
-        </td>
-    </tr>
-    </tbody>
-</table>
-<div class="alert alert-info" ng-show="deliveryServices.length == 0">
-    No delivery services configured for current user
-</div>
-
diff --git a/traffic_portal/v1/app/src/modules/private/dashboard/overview/index.js b/traffic_portal/v1/app/src/modules/private/dashboard/overview/index.js
deleted file mode 100644
index 27ade92..0000000
--- a/traffic_portal/v1/app/src/modules/private/dashboard/overview/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.private.dashboard.overview', [])
-    .controller('DashboardDeliveryServicesController', require('./deliveryServices/DashboardDeliveryServicesController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.dashboard.overview', {
-                url: '',
-                views: {
-                    cacheGroupsContent: {
-                        templateUrl: 'common/modules/cacheGroups/cacheGroups.tpl.html',
-                        controller: 'CacheGroupsController',
-                        resolve: {
-                            entityId: function() {
-                                return null;
-                            },
-                            service: function(healthService) {
-                                return healthService;
-                            },
-                            showDownload: function() {
-                                return false;
-                            }
-                        }
-                    },
-                    deliveryServicesContent: {
-                        templateUrl: 'modules/private/dashboard/overview/deliveryServices/dashboard.deliveryServices.tpl.html',
-                        controller: 'DashboardDeliveryServicesController'
-                    }
-                }
-            })
-        ;
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/DeliveryServiceController.js b/traffic_portal/v1/app/src/modules/private/deliveryService/DeliveryServiceController.js
deleted file mode 100644
index 47bc476..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/DeliveryServiceController.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DeliveryServiceController = function($scope, userModel) {
-
-    $scope.user = angular.copy(userModel.user);
-
-};
-
-DeliveryServiceController.$inject = ['$scope', 'userModel'];
-module.exports = DeliveryServiceController;
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/_deliveryService.scss b/traffic_portal/v1/app/src/modules/private/deliveryService/_deliveryService.scss
deleted file mode 100644
index fff23b4..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/_deliveryService.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/deliveryService.tpl.html b/traffic_portal/v1/app/src/modules/private/deliveryService/deliveryService.tpl.html
deleted file mode 100644
index b986f5c..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/deliveryService.tpl.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div ui-view="deliveryServiceContent"></div>
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/index.js
deleted file mode 100644
index 19c6ecf..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService', [])
-    .controller('DeliveryServiceController', require('./DeliveryServiceController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService', {
-                url: 'delivery-service',
-                abstract: true,
-                views: {
-                    privateContent: {
-                        templateUrl: 'modules/private/deliveryService/deliveryService.tpl.html',
-                        controller: 'DeliveryServiceController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/new/DeliveryServiceNewController.js b/traffic_portal/v1/app/src/modules/private/deliveryService/new/DeliveryServiceNewController.js
deleted file mode 100644
index 36e81ab..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/new/DeliveryServiceNewController.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DeliveryServiceNewController = function($scope, $location, $anchorScroll, formUtils, deliveryServiceService) {
-
-    $scope.templates = {
-        signedUrls: 'signedUrl.html',
-        queryStringHandling: 'queryStringHandling.html',
-        rangeRequestHandling: 'rangeRequestHandling.html',
-        headerRewriteEdge: 'headerRewriteEdge.html',
-        headerRewriteMid: 'headerRewriteMid.html',
-        headerRewriteRedirectRouter: 'headerRewriteRedirectRouter.html'
-    };
-
-    $scope.openTab = 'service-desc-tab';
-
-    $scope.booleans = [
-        { label: 'Yes', value: true },
-        { label: 'No', value: false }
-    ];
-
-    $scope.serviceDescStarted = true;
-    $scope.trafficStarted = false;
-    $scope.originStarted = false;
-    $scope.coreStarted = false;
-    $scope.serviceLimitStarted = false;
-    $scope.headerStarted = false;
-    $scope.notesStarted = false;
-    $scope.confirmStarted = false;
-
-    $scope.resetDSData = function() {
-        $scope.dsData = {
-            customer: '',
-            contentType: 'video-on-demand',
-            deliveryProtocol: 'http',
-            routingType: 'dns',
-            serviceDesc: '',
-            peakBPSEstimate: 'less-than-5-Gbps',
-            peakTPSEstimate: 'less-than-1000-TPS',
-            maxLibrarySizeEstimate: 'less-than-200-GB',
-            originURL: '',
-            hasOriginDynamicRemap: false,
-            originTestFile: '',
-            hasOriginACLWhitelist: false,
-            originHeaders: '',
-            otherOriginSecurity: '',
-            queryStringHandling: 'ignore-in-cache-key-and-pass-up',
-            rangeRequestHandling: 'range-requests-not-used',
-            hasSignedURLs: false,
-            hasNegativeCachingCustomization: false,
-            negativeCachingCustomizationNote: '',
-            serviceAliases: [ '' ],
-            rateLimitingGBPS: 0,
-            rateLimitingTPS: 0,
-            overflowService: '',
-            headerRewriteEdge: '',
-            headerRewriteMid: '',
-            headerRewriteRedirectRouter: '',
-            notes: ''
-        };
-    };
-    $scope.resetDSData();
-
-    $scope.onDeliveryProtocolChange = function() {
-        if ($scope.dsData.deliveryProtocol == 'http-to-https') {
-            $scope.dsData.routingType = 'http'; // routing type must be http for http-to-https protocol
-        }
-    };
-
-    $scope.onRoutingTypeChange = function() {
-        if ($scope.dsData.routingType == 'dns') {
-            $scope.dsData.headerRewriteRedirectRouter = ''; // not relevant for dns
-        }
-    };
-
-    $scope.onNegativeCachingCustomizationChange = function() {
-        if ($scope.dsData.hasNegativeCachingCustomization == false) {
-            $scope.dsData.negativeCachingCustomizationNote = ''; // note no relevant
-        }
-    };
-
-    $scope.onRateLimitingChange = function() {
-        if ($scope.dsData.rateLimitingGBPS <= 0 && $scope.dsData.rateLimitingTPS <= 0) {
-            $scope.dsData.overflowService = ''; // overflow service is irrelevant if no rate limits
-        }
-    };
-
-    $scope.navigateToDashboard = function() {
-        $location.url('/dashboard');
-    };
-
-    $scope.incomplete = function(forms) {
-        var incomplete = false;
-        if (!$scope.serviceDescStarted || !$scope.trafficStarted || !$scope.originStarted || !$scope.coreStarted || !$scope.serviceLimitStarted || !$scope.notesStarted || !$scope.confirmStarted) {
-            return true;
-        }
-        _.each(forms, function(form) {
-            if (form.$invalid) {
-                incomplete = true;
-            }
-        });
-        return incomplete;
-    };
-
-    $scope.jumpToTab = function(tab, startedFlag) {
-        $scope.openTab = tab;
-        $scope[startedFlag] = true;
-    };
-
-    $scope.submitRequest = function(dsData) {
-        deliveryServiceService.createDSRequest(dsData).finally(
-            function() { $anchorScroll(); } // scroll to top
-        );
-    };
-
-    $scope.addAlias = function() {
-        $scope.dsData.serviceAliases.push('');
-    };
-
-    $scope.removeAlias = function(index) {
-        if (index > 0) { // no removing the first one
-            $scope.dsData.serviceAliases.splice(index, 1);
-        }
-    };
-
-    $scope.hasError = formUtils.hasError;
-
-    $scope.hasPropertyError = formUtils.hasPropertyError;
-
-};
-
-DeliveryServiceNewController.$inject = ['$scope', '$location', '$anchorScroll', 'formUtils', 'deliveryServiceService'];
-module.exports = DeliveryServiceNewController;
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/new/_deliveryService.new.scss b/traffic_portal/v1/app/src/modules/private/deliveryService/new/_deliveryService.new.scss
deleted file mode 100644
index e1efd00..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/new/_deliveryService.new.scss
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#dsWizardContainer {
-  margin-bottom: 30px;
-
-  .row {
-    margin-right: 0;
-  }
-
-  .step-info {
-    float: right;
-    margin-top: 3px;
-  }
-
-  .not-allowed {
-    cursor: not-allowed !important;
-  }
-
-  .selected-step {
-    border-right:4px solid #428bca;
-  }
-
-  .alias-inputs {
-    width: 100%;
-
-    .input-group-btn {
-      padding-top: 25px;
-    }
-
-  }
-
-}
-
-#dsNewFormContainer {
-  position: relative;
-  text-align: left;
-  border: 1px solid #A8A8A8;
-  padding: 30px 60px;
-
-  .row {
-    margin-right: 0px;
-  }
-
-  .confirm-table {
-    .heading {
-      color: #16b6e0;
-    }
-  }
-
-}
-
-.ds-wizard-popover-small {
-  max-width: none;
-  width: 300px;
-}
-
-.ds-wizard-popover-big {
-  max-width: none;
-  width: 500px;
-}
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/new/deliveryService.new.tpl.html b/traffic_portal/v1/app/src/modules/private/deliveryService/new/deliveryService.new.tpl.html
deleted file mode 100644
index 9003ee3..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/new/deliveryService.new.tpl.html
+++ /dev/null
@@ -1,601 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="dsWizardContainer">
-    <div>
-        <ol class="breadcrumb">
-            <li><a ng-click="navigateToDashboard()">Dashboard</a></li>
-            <li class="active">New Delivery Service</li>
-        </ol>
-    </div>
-    <div class="row">
-        <div class="col-lg-3 col-md-12 col-sm-12">
-            <ul class="nav nav-pills nav-stacked">
-                <li class="header">New Delivery Service</li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'service-desc-tab'}" ng-click="jumpToTab('service-desc-tab', 'serviceDescStarted')">
-                        <i class="fa fa-check fa-fw" ng-show="serviceDescStarted && !serviceDescForm.$invalid"></i> Service Description
-                    </a>
-                </li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'traffic-tab'}" ng-click="jumpToTab('traffic-tab', 'trafficStarted')">
-                        <i class="fa fa-check fa-fw" ng-show="trafficStarted && !trafficForm.$invalid"></i> Traffic &amp; Library Estimates
-                    </a>
-                </li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'origin-tab'}" ng-click="jumpToTab('origin-tab', 'originStarted')">
-                        <i class="fa fa-check fa-fw" ng-show="originStarted && !originForm.$invalid"></i> Origin Server &amp; Security
-                    </a>
-                </li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'core-tab'}" ng-click="jumpToTab('core-tab', 'coreStarted')">
-                        <i class="fa fa-check fa-fw" ng-show="coreStarted && !coreForm.$invalid"></i> Core Features
-                    </a>
-                </li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'service-limits-tab'}" ng-click="jumpToTab('service-limits-tab', 'serviceLimitStarted')">
-                        <i class="fa fa-check fa-fw" ng-show="serviceLimitStarted && !serviceLimitForm.$invalid"></i> Service Limits
-                    </a>
-                </li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'header-tab'}" ng-click="jumpToTab('header-tab', 'headerStarted')">
-                        <i class="fa fa-check fa-fw" ng-show="headerStarted && !headerForm.$invalid"></i> Header Customization
-                    </a>
-                </li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'notes-tab'}" ng-click="jumpToTab('notes-tab', 'notesStarted')">
-                        <i class="fa fa-check fa-fw" ng-show="notesStarted && !notesForm.$invalid"></i> Additional Notes
-                    </a>
-                </li>
-                <li>
-                    <a ng-class="{'selected-step': openTab == 'confirm-tab'}" ng-click="jumpToTab('confirm-tab', 'confirmStarted')">
-                        Confirm &amp; Submit
-                    </a>
-                </li>
-            </ul>
-        </div>
-        <div id="dsNewFormContainer" class="col-lg-9 col-med-12 col-sm-12">
-            <form name="serviceDescForm" role="form" ng-show="openTab == 'service-desc-tab'" novalidate>
-                <legend>Service Description</legend>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="customer">Customer&nbsp;&nbsp;<i class="customer-tooltip field-info fa fa-info-circle" popover-title="Customer" uib-popover="Name of the customer to display on the service. We use this to help determine the service ids and relation to other services." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <input id="customer" name="customer" type="text" class="form-control" ng-model="dsData.customer" ng-maxlength="50" required>
-                            <small class="input-error" ng-show="hasPropertyError(serviceDescForm.customer, 'required')">[ Required ]</small>
-                            <small class="input-error" ng-show="hasPropertyError(serviceDescForm.customer, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="deliveryProtocol">Delivery Protocol&nbsp;&nbsp;<i class="delivery-protocol-tooltip field-info fa fa-info-circle" popover-title="Delivery Protocol" uib-popover="Services that use &quot;HTTP and HTTPS&quot; will be able to deliver both types of traffic. If you deliver HTTPS you will not be able to use a service alias with your service." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-pl [...]
-                            <select id="deliveryProtocol" name="deliveryProtocol" class="form-control" ng-change="onDeliveryProtocolChange()" ng-model="dsData.deliveryProtocol">
-                                <option value="http">HTTP</option>
-                                <option value="https-only">HTTPS</option>
-                                <option value="http-and-https">HTTP and HTTPS</option>
-                                <option value="http-to-https">HTTP to HTTPS</option>
-                            </select>
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="contentType">Content Type&nbsp;&nbsp;<i class="content-type-tooltip field-info fa fa-info-circle" popover-title="Content Type" uib-popover="This choice should reflect the primary content of the service. Services may deliver more than one type of content." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <select id="contentType" name="contentType" class="form-control" ng-model="dsData.contentType">
-                                <option value="video-on-demand">Video - On Demand</option>
-                                <option value="video-live">Video - Live</option>
-                                <option value="web-content-file-download">Web Content / File Download</option>
-                            </select>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="routingType">Routing Type&nbsp;&nbsp;<i class="routing-type-tooltip field-info fa fa-info-circle" popover-title="Routing Type" uib-popover="DNS is the standard routing type for most CDN services. HTTP Redirect is a specialty routing service that is primarily used for video and large file downloads where localization and latency are significant concerns." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popov [...]
-                            <select id="routingType" name="routingType" class="form-control" ng-disabled="dsData.deliveryProtocol == 'http-to-https'" ng-change="onRoutingTypeChange()" ng-model="dsData.routingType">
-                                <option value="dns">DNS</option>
-                                <option value="http">HTTP Redirect</option>
-                            </select>
-                            <small class="input-error" ng-show="dsData.deliveryProtocol == 'http-to-https'">HTTP required for HTTP to HTTPS delivery protocol</small>
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-sm-12 col-md-12">
-                        <div class="form-group">
-                            <label class="control-label" for="serviceDesc">Service Description&nbsp;&nbsp;<i class="service-desc-tooltip field-info fa fa-info-circle" popover-title="Service Description" uib-popover="This description will be used to help name your service and differentiate it from your other services." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <textarea id="serviceDesc" name="serviceDesc" rows="3" class="form-control" ng-model="dsData.serviceDesc" ng-maxlength="400" required></textarea>
-                            <small class="input-error" ng-show="hasPropertyError(serviceDescForm.serviceDesc, 'required')">[ Required ]</small>
-                            <small class="input-error" ng-show="hasPropertyError(serviceDescForm.serviceDesc, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                </div>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn action-btn" ng-disabled="serviceDescForm.$invalid" ng-click="jumpToTab('traffic-tab', 'trafficStarted')">Next</button>
-                </div>
-            </form>
-            <form name="trafficForm" role="form" ng-show="openTab == 'traffic-tab'" novalidate>
-                <legend>Traffic &amp; Library Estimates</legend>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="peakBpsEstimate">Peak Bandwidth Estimate&nbsp;&nbsp;<i class="peakBpsEstimate-tooltip field-info fa fa-info-circle" popover-title="Peak Bandwidth Estimate" uib-popover="Service size estimates help us manage cache efficiency and plan for capacity for new build services. Sizing should be estimated for short term expectations. We actively monitor service growth over time and adjust configuration settings as needed." popover-trigg [...]
-                            <select id="peakBpsEstimate" name="peakBpsEstimate" class="form-control" ng-model="dsData.peakBPSEstimate">
-                                <option value="less-than-5-Gbps">Less than 5 Gbps</option>
-                                <option value="5-to-50-Gbps">5 to 50 Gbps</option>
-                                <option value="gt-50-Gbps">Greater than 50 Gbps</option>
-                            </select>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="maxLibrarySizeEstimate">Max Library Size Estimate&nbsp;&nbsp;<i class="maxLibrarySizeEstimate-tooltip field-info fa fa-info-circle" popover-title="Max Library Size Estimate" uib-popover="Service size estimates help us manage cache efficiency and plan for capacity for new build services. Sizing should be estimated for short term expectations. We actively monitor service growth over time and adjust configuration settings as need [...]
-                            <select id="maxLibrarySizeEstimate" name="maxLibrarySizeEstimate" class="form-control" ng-model="dsData.maxLibrarySizeEstimate">
-                                <option value="less-than-200-GB">Less than 200 GB</option>
-                                <option value="200-GB-to-2-TB">200 GB to 2 TB</option>
-                                <option value="greater-than-2-TB">Greater than 2 TB</option>
-                            </select>
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="peakTpsEstimate">Peak Transactions/Second Estimate&nbsp;&nbsp;<i class="peakTpsEstimate-tooltip field-info fa fa-info-circle" popover-title="Peak Transactions/Second Estimate" uib-popover="Service size estimates help us manage cache efficiency and plan for capacity for new build services. Sizing should be estimated for short term expectations. We actively monitor service growth over time and adjust configuration settings as ne [...]
-                            <select id="peakTpsEstimate" name="peakTpsEstimate" class="form-control" ng-model="dsData.peakTPSEstimate">
-                                <option value="less-than-1000-TPS">Less than 1,000 TPS</option>
-                                <option value="1000-to-5000-TPS">1,000 to 5,000 TPS</option>
-                                <option value="greater-than-5000-TPS">Greater than 5,000 TPS</option>
-                            </select>
-                        </div>
-                    </div>
-                </div>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn btn-link" ng-click="jumpToTab('service-desc-tab', 'serviceDescStarted')">Back</button>
-                    <button type="button" class="btn action-btn" ng-disabled="trafficForm.$invalid" ng-click="jumpToTab('origin-tab', 'originStarted')">Next</button>
-                </div>
-            </form>
-            <form name="originForm" role="form" ng-show="openTab == 'origin-tab'" novalidate>
-                <fieldset>
-                    <div class="col-sm-6 col-md-6">
-                        <legend>Origin Server</legend>
-                        <div class="form-group">
-                            <label class="control-label" for="originUrl">Origin Server URL&nbsp;&nbsp;<i class="originUrl-tooltip field-info fa fa-info-circle" popover-title="Origin Server URL" uib-popover="The URL path to the origin server including http://" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <input id="originUrl" name="originUrl" type="text" placeholder="http://" class="form-control" ng-model="dsData.originURL" ng-maxlength="2000" ng-pattern="/^(https?:\/\/)/" required>
-                            <small class="input-error" ng-show="hasPropertyError(originForm.originUrl, 'required')">[ Required ]</small>
-                            <small class="input-error" ng-show="hasPropertyError(originForm.originUrl, 'pattern')">[ Must start with http:// or https:// ]</small>
-                            <small class="input-error" ng-show="hasPropertyError(originForm.originUrl, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                        <div class="form-group">
-                            <label class="control-label" for="originDynamicRemap">Origin Dynamic Remap&nbsp;&nbsp;<i class="originDynamicRemap-tooltip field-info fa fa-info-circle" popover-title="Origin Dynamic Remap" uib-popover="This is a feature which allows services to use multiple origin URLs for the same service. This is done by passing an origin URL value as a part of each request (ex query string). Most customers will not require this feature. If you select &quot;Yes&quot; for th [...]
-                            <select id="originDynamicRemap" name="originDynamicRemap" class="form-control" ng-model="dsData.hasOriginDynamicRemap" ng-options="boolean.value as boolean.label for boolean in booleans"></select>
-                        </div>
-                        <div class="form-group">
-                            <label class="control-label" for="originTestFile">Origin Test File&nbsp;&nbsp;<i class="originTestFile-tooltip field-info fa fa-info-circle" popover-title="Origin Test File" uib-popover="A URL path to a test file available on the origin server. This is used to verify that service is setup correctly. crossdomain.xml and clientaccesspolicy.xml are two examples of common files available on the origin." popover-trigger="mouseenter" popover-class="popover-class ds- [...]
-                            <input id="originTestFile" name="originTestFile" type="text" placeholder="http://" class="form-control" ng-model="dsData.originTestFile" ng-maxlength="2000" ng-pattern="/^(https?:\/\/)/" required>
-                            <small class="input-error" ng-show="hasPropertyError(originForm.originTestFile, 'required')">[ Required ]</small>
-                            <small class="input-error" ng-show="hasPropertyError(originForm.originTestFile, 'pattern')">[ Must start with http:// or https:// ]</small>
-                            <small class="input-error" ng-show="hasPropertyError(originForm.originTestFile, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <legend>Origin Security</legend>
-                        <div class="form-group">
-                            <label class="control-label" for="originAclWhitelist">ACL/Whitelist to Access Origin&nbsp;&nbsp;<i class="originAclWhitelist-tooltip field-info fa fa-info-circle" popover-title="ACL/Whitelist to Access Origin" uib-popover="Do you restrict access to your origin using an access control list (ACL or whitelist) of IPs?" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="left" popover-append-to-body="true"></i></label>
-                            <select id="originAclWhitelist" name="originAclWhitelist" class="form-control" ng-model="dsData.hasOriginACLWhitelist" ng-options="boolean.value as boolean.label for boolean in booleans"></select>
-                        </div>
-                        <div class="form-group">
-                            <label class="control-label" for="originHeaders">Header to Access Origin (optional)&nbsp;&nbsp;<i class="originHeaders-tooltip field-info fa fa-info-circle" popover-title="Header to Access Origin" uib-popover="Do you require a header to be passed in requests to your origin? If you do, please provide the value of this header." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="top" popover-append-to-body="true" [...]
-                            <input id="originHeaders" name="originHeaders" type="text" class="form-control" ng-model="dsData.originHeaders" ng-maxlength="500">
-                            <small class="input-error" ng-show="hasPropertyError(originForm.originHeaders, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                        <div class="form-group">
-                            <label class="control-label" for="otherOriginSecurity">Other Origin Security Measures (optional)&nbsp;&nbsp;<i class="otherOriginSecurity-tooltip field-info fa fa-info-circle" popover-title="Other Origin Security Measures" uib-popover="Do you have other origin security measures that need to be considered for access? Please describe." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="top" popover-append-to-bod [...]
-                            <input id="otherOriginSecurity" name="otherOriginSecurity" type="text" class="form-control" ng-model="dsData.otherOriginSecurity" ng-maxlength="500">
-                            <small class="input-error" ng-show="hasPropertyError(originForm.otherOriginSecurity, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                </fieldset>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn btn-link" ng-click="jumpToTab('traffic-tab', 'trafficStarted')">Back</button>
-                    <button type="button" class="btn action-btn" ng-disabled="originForm.$invalid" ng-click="jumpToTab('core-tab', 'coreStarted')">Next</button>
-                </div>
-            </form>
-            <form name="coreForm" role="form" ng-show="openTab == 'core-tab'" novalidate>
-                <legend>Core Features</legend>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="queryStringHandling">Query String Handling&nbsp;&nbsp;<i class="queryStringHandling-tooltip field-info fa fa-info-circle" popover-title="Query String Handling" uib-popover-template="templates.queryStringHandling" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-big" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <select id="queryStringHandling" name="queryStringHandling" class="form-control" ng-model="dsData.queryStringHandling">
-                                <option value="use-in-cache-key-and-pass-up">Use in Cache Key, and Pass Up</option>
-                                <option value="ignore-in-cache-key-and-pass-up">Ignore in Cache Key, and Pass Up</option>
-                                <option value="drop-at-edge">Drop at Edge</option>
-                            </select>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="signedURLs">Signed URLs / URL Tokenization&nbsp;&nbsp;<i class="signedURLs-tooltip field-info fa fa-info-circle" popover-title="Signed URLs / URL Tokenization" uib-popover-template="templates.signedUrls" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-popup-close-delay="1000" popover-placement="top" popover-append-to-body="true"></i></label>
-                            <select id="signedURLs" name="signedURLs" class="form-control" ng-model="dsData.hasSignedURLs" ng-options="boolean.value as boolean.label for boolean in booleans"></select>
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="rangeRequestHandling">Range Request Handling&nbsp;&nbsp;<i class="rangeRequestHandling-tooltip field-info fa fa-info-circle" popover-title="Range Request Handling" uib-popover-template="templates.rangeRequestHandling" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-big" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <select id="rangeRequestHandling" name="rangeRequestHandling" class="form-control" ng-model="dsData.rangeRequestHandling">
-                                <option value="range-requests-not-used">Range Requests Not Used</option>
-                                <option value="consistent-non-overlapping-range-requests-used">Consistent, Non-Overlapping Range Requests Used</option>
-                                <option value="variable-overlapping-range-requests-used">Variable, Overlapping Range Requests Used</option>
-                            </select>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="negativeCachingCustomization">Negative Caching Customization&nbsp;&nbsp;<i class="negativeCachingCustomization-tooltip field-info fa fa-info-circle" popover-title="Negative Caching Customization" uib-popover="For failed CDN responses like 404 or 502, the CDN will cache the response and reserve it for 1 second to prevent the customer origin from being overloaded with retries. This behavior can be customized but most customers k [...]
-                            <select id="negativeCachingCustomization" name="negativeCachingCustomization" class="form-control" ng-change="onNegativeCachingCustomizationChange()" ng-model="dsData.hasNegativeCachingCustomization" ng-options="boolean.value as boolean.label for boolean in booleans"></select>
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="row" ng-repeat="alias in dsData.serviceAliases track by $index">
-                            <div class="col-sm-12 col-md-12">
-                                <ng-form name="aliasForm">
-                                    <div class="form-group">
-                                        <div class="input-group alias-inputs">
-                                            <label class="control-label" for="serviceAlias">Service Alias #{{$index + 1}} (optional)&nbsp;&nbsp;<i class="serviceAlias-tooltip field-info fa fa-info-circle" popover-title="Service Alias" uib-popover="Do you have other service aliases which will be used for this service? We need to know these aliases so that we know where to direct these requests. You can add multiple aliases." popover-trigger="mouseenter" popover-class="popover-class ds-wiz [...]
-                                            <input id="serviceAlias" name="serviceAlias" type="text" placeholder="http://" class="form-control" ng-model="dsData.serviceAliases[$index]" ng-pattern="/^(https?:\/\/)/" ng-maxlength="2000">
-                                            <span class="form-input-group-btn input-group-btn">
-                                                <button id="removeBtn" name="removeBtn" class="btn btn-default" ng-show="$index > 0" ng-click="removeAlias($index)"><i class="fa fa-minus"></i></button>
-                                                <button id="addBtn" name="addBtn" class="btn btn-default" ng-show="$index == (dsData.serviceAliases.length - 1)" ng-click="addAlias()"><i class="fa fa-plus"></i></button>
-                                            </span>
-                                        </div>
-                                        <small class="input-error" ng-show="hasPropertyError(aliasForm.serviceAlias, 'pattern')">[ Must start with http:// or https:// ]</small>
-                                        <small class="input-error" ng-show="hasPropertyError(aliasForm.serviceAlias, 'maxlength')">[ Too Long ]</small>
-                                    </div>
-                                </ng-form>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group" ng-show="dsData.hasNegativeCachingCustomization == true">
-                            <label class="control-label" for="negativeCachingCustomizationNote">Negative Caching Instructions&nbsp;&nbsp;<i class="negativeCachingCustomizationNote-tooltip field-info fa fa-info-circle" popover-title="Negative Caching Instructions" uib-popover="Please enter any specific instructions you have regarding negative caching customization." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="top" popover-append-to [...]
-                            <textarea id="negativeCachingCustomizationNote" name="negativeCachingCustomizationNote" rows="3" class="form-control" ng-model="dsData.negativeCachingCustomizationNote" ng-required="dsData.hasNegativeCachingCustomization == true" ng-maxlength="400"></textarea>
-                            <small class="input-error" ng-show="hasPropertyError(coreForm.negativeCachingCustomizationNote, 'required')">[ Required ]</small>
-                            <small class="input-error" ng-show="hasPropertyError(coreForm.negativeCachingCustomizationNote, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                </div>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn btn-link" ng-click="jumpToTab('origin-tab', 'originStarted')">Back</button>
-                    <button type="button" class="btn action-btn" ng-disabled="coreForm.$invalid" ng-click="jumpToTab('service-limits-tab', 'serviceLimitStarted')">Next</button>
-                </div>
-            </form>
-            <form name="serviceLimitsForm" role="form" ng-show="openTab == 'service-limits-tab'" novalidate>
-                <legend>Service Limits</legend>
-                <div class="row">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="rateLimitingGbps">Rate Limiting - Bandwidth (Gbps) (optional)&nbsp;&nbsp;<i class="rateLimitingGbps-tooltip field-info fa fa-info-circle" popover-title="Rate Limiting - Bandwidth (Gbps)" uib-popover="If a service limit is selected, then you must provide an overflow point where the CDN will send the excess traffic. This overflow point is typically a another CDN service or a customer origin. The overflow can be provided as an FQ [...]
-                            <input id="rateLimitingGbps" name="rateLimitingGbps" type="number" class="form-control" min="0" ng-change="onRateLimitingChange()" ng-model="dsData.rateLimitingGBPS">
-                            <small class="input-error" ng-show="hasPropertyError(serviceLimitsForm.rateLimitingGbps, 'min')">[ Invalid ]</small>
-                        </div>
-                    </div>
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="rateLimitingTPS">Rate Limiting - Transactions/Second (optional)&nbsp;&nbsp;<i class="rateLimitingTPS-tooltip field-info fa fa-info-circle" popover-title="Rate Limiting - Transactions/Second" uib-popover="If a service limit is selected, then you must provide an overflow point where the CDN will send the excess traffic. This overflow point is typically a another CDN service or a customer origin. The overflow can be provided as a [...]
-                            <input id="rateLimitingTPS" name="rateLimitingTPS" type="number" class="form-control" min="0" ng-change="onRateLimitingChange()" ng-model="dsData.rateLimitingTPS">
-                            <small class="input-error" ng-show="hasPropertyError(serviceLimitsForm.rateLimitingTPS, 'min')">[ Invalid ]</small>
-                        </div>
-                    </div>
-                </div>
-                <div class="row" ng-show="dsData.rateLimitingGBPS > 0 || dsData.rateLimitingTPS > 0">
-                    <div class="col-sm-6 col-md-6">
-                        <div class="form-group">
-                            <label class="control-label" for="overflowService">Overflow Service (IP or URL)&nbsp;&nbsp;<i class="overflowService-tooltip field-info fa fa-info-circle" popover-title="Overflow Service (IP or URL)" uib-popover="This overflow point is typically a another CDN service or a customer origin. The overflow can be provided as an FQDN (http://customername.com) or as an IPv4 or IPv6 address (10.10.10.10). When the service exceeds the threshold set, the CDN will redire [...]
-                            <input id="overflowService" name="overflowService" type="text" class="form-control" ng-required="dsData.rateLimitingGBPS > 0 || dsData.rateLimitingTPS > 0" ng-model="dsData.overflowService">
-                        </div>
-                    </div>
-                </div>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn btn-link" ng-click="jumpToTab('core-tab', 'coreStarted')">Back</button>
-                    <button type="button" class="btn action-btn" ng-disabled="serviceLimitsForm.$invalid" ng-click="jumpToTab('header-tab', 'headerStarted')">Next</button>
-                </div>
-            </form>
-            <form name="headerForm" role="form" ng-show="openTab == 'header-tab'" novalidate>
-                <legend>Header Customization</legend>
-                <div class="row">
-                    <div class="col-sm-12 col-md-12">
-                        <div class="form-group">
-                            <label class="control-label" for="headerRewriteEdge">Header Rewrite - Edge Tier (optional)&nbsp;&nbsp;<i class="headerRewriteEdge-tooltip field-info fa fa-info-circle" popover-title="Header Rewrite - Edge Tier" uib-popover-template="templates.headerRewriteEdge" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-big" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <textarea id="headerRewriteEdge" name="headerRewriteEdge" rows="3" class="form-control" ng-model="dsData.headerRewriteEdge" ng-maxlength="400"></textarea>
-                            <small class="input-error" ng-show="hasPropertyError(headerForm.headerRewriteEdge, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-sm-12 col-md-12">
-                        <div class="form-group">
-                            <label class="control-label" for="headerRewriteMid">Header Rewrite - Mid Tier (optional)&nbsp;&nbsp;<i class="headerRewriteMid-tooltip field-info fa fa-info-circle" popover-title="Header Rewrite - Mid Tier" uib-popover-template="templates.headerRewriteMid" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-big" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <textarea id="headerRewriteMid" name="headerRewriteMid" rows="3" class="form-control" ng-model="dsData.headerRewriteMid" ng-maxlength="400"></textarea>
-                            <small class="input-error" ng-show="hasPropertyError(headerForm.headerRewriteMid, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                </div>
-                <div class="row" ng-show="dsData.routingType == 'http'">
-                    <div class="col-sm-12 col-md-12">
-                        <div class="form-group">
-                            <label class="control-label" for="headerRewriteRedirectRouter">Header Rewrite - Redirect Router (optional)&nbsp;&nbsp;<i class="headerRewriteRedirectRouter-tooltip field-info fa fa-info-circle" popover-title="Header Rewrite - Redirect Router" uib-popover-template="templates.headerRewriteRedirectRouter" popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-big" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <textarea id="headerRewriteRedirectRouter" name="headerRewriteRedirectRouter" rows="3" class="form-control" ng-model="dsData.headerRewriteRedirectRouter" ng-maxlength="400"></textarea>
-                            <small class="input-error" ng-show="hasPropertyError(headerForm.headerRewriteRedirectRouter, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                </div>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn btn-link" ng-click="jumpToTab('service-limits-tab', 'serviceLimitStarted')">Back</button>
-                    <button type="button" class="btn action-btn" ng-disabled="headerForm.$invalid" ng-click="jumpToTab('notes-tab', 'notesStarted')">Next</button>
-                </div>
-            </form>
-            <form name="notesForm" role="form" ng-show="openTab == 'notes-tab'" novalidate>
-                <legend>Additional Notes</legend>
-                <div class="row">
-                    <div class="col-sm-12 col-md-12">
-                        <div class="form-group">
-                            <label class="control-label" for="notes">Additional Notes&nbsp;&nbsp;<i class="notes-tooltip field-info fa fa-info-circle" popover-title="Additional Notes" uib-popover="Any additional instructions you would like to provide the delivery service provisioning team." popover-trigger="mouseenter" popover-class="popover-class ds-wizard-popover-small" popover-placement="right" popover-append-to-body="true"></i></label>
-                            <textarea id="notes" name="notes" rows="5" class="form-control" ng-model="dsData.notes" ng-maxlength="500"></textarea>
-                            <small class="input-error" ng-show="hasPropertyError(notesForm.notes, 'maxlength')">[ Too Long ]</small>
-                        </div>
-                    </div>
-                </div>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn btn-link" ng-click="jumpToTab('header-tab', 'headerStarted')">Back</button>
-                    <button type="button" class="btn action-btn" ng-disabled="notesForm.$invalid" ng-click="jumpToTab('confirm-tab', 'confirmStarted')">Next</button>
-                </div>
-            </form>
-            <div ng-show="openTab == 'confirm-tab'">
-                <h3>Confirm &amp; Submit</h3>
-                <table class="table confirm-table">
-                    <tbody>
-                        <tr><th colspan="2"><h4 class="heading">Service Description</h4></th></tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Customer:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.customer}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Content Type:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.contentType}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Delivery Protocol:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.deliveryProtocol}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Routing Type:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.routingType}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Service Description:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.serviceDesc}}</td>
-                        </tr>
-                        <tr><th colspan="2"><h4 class="heading">Traffic &amp; Library Estimates</h4></th></tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Peak Bandwidth Estimate:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.peakBPSEstimate}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Peak Transactions Per Second Estimate:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.peakTPSEstimate}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Max Library Size Estimate:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.maxLibrarySizeEstimate}}</td>
-                        </tr>
-                        <tr><th colspan="2"><h4 class="heading">Origin Server &amp; Security</h4></th></tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Origin Server URL:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.originURL}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Origin Dynamic Remap:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.hasOriginDynamicRemap}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Origin Test File:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.originTestFile}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">ACL/Whitelist to Access Origin:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.hasOriginACLWhitelist}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Header to Access Origin:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.otherOriginSecurity}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Other Origin Security Measures:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.originHeaders}}</td>
-                        </tr>
-                        <tr><th colspan="2"><h4 class="heading">Core Features</h4></th></tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Query String Handling:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.queryStringHandling}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Range Request Handling:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.rangeRequestHandling}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Signed URLs / URL Tokenization:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.hasSignedURLs}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Negative Caching Customization:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.hasNegativeCachingCustomization}}</td>
-                        </tr>
-                        <tr ng-show="dsData.hasNegativeCachingCustomization == true">
-                            <td class="col-sm-4 col-md-4 col-lg-4">Negative Caching Instructions:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.negativeCachingCustomizationNote}}</td>
-                        </tr>
-                        <tr ng-repeat="alias in dsData.serviceAliases track by $index">
-                            <td class="col-sm-4 col-md-4 col-lg-4">Service Alias #{{$index + 1}}:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.serviceAliases[$index]}}</td>
-                        </tr>
-                        <tr><th colspan="2"><h4 class="heading">Service Limits</h4></th></tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Rate Limiting - Bandwidth (Gbps):</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.rateLimitingGBPS}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Rate Limiting - Transactions/Second:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.rateLimitingTPS}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Overflow Service (IP or URL):</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.overflowService}}</td>
-                        </tr>
-                        <tr><th colspan="2"><h4 class="heading">Header Customization</h4></th></tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Header Rewrite - Edge Tier:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.headerRewriteEdge}}</td>
-                        </tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Header Rewrite - Mid Tier:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.headerRewriteMid}}</td>
-                        </tr>
-                        <tr ng-show="dsData.routingType.indexOf('http') != -1">
-                            <td class="col-sm-4 col-md-4 col-lg-4">Header Rewrite - Redirect Router:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.headerRewriteRedirectRouter}}</td>
-                        </tr>
-                        <tr><th colspan="2"><h4 class="heading">Additional Notes</h4></th></tr>
-                        <tr>
-                            <td class="col-sm-4 col-md-4 col-lg-4">Additional Notes:</td>
-                            <td class="col-sm-8 col-md-8 col-lg-8">{{dsData.notes}}</td>
-                        </tr>
-                    </tbody>
-                </table>
-                <hr>
-                <div class="pull-right">
-                    <button type="button" class="btn btn-link" ng-click="jumpToTab('notes-tab', 'notesStarted')">Back</button>
-                    <button type="button" class="btn action-btn" ng-disabled="incomplete([serviceDescForm, trafficForm, originForm, coreForm, serviceLimitsForm, headerForm, notesForm])" ng-click="submitRequest(dsData)">Submit Request &nbsp;&nbsp;<i class="fa fa-chevron-circle-right fa-lg"></i></button>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<!-- html for tooltips -->
-
-<script type="text/ng-template" id="signedUrl.html">
-    <div>
-        <p>If you select "yes" we will provide you with a script to use to sign your URLs as well as a set of 16 keys.</p>
-        <p><a href="/resources/assets/other/sign.pl" target="_blank">Perl URL Signing Script</a></p>
-        <p><a href="/resources/assets/other/sign_parameters.txt" target="_blank">Signing Script Parameters</a></p>
-    </div>
-</script>
-
-<script type="text/ng-template" id="queryStringHandling.html">
-    <div id="queryStringHandling-tooltip-content">
-        <p>When caching your content, we need to know how to handle query strings that come with the request in terms of how we cache each URL. For example if you pass a query string with a user id as a part of each request for the same file, we would need to either ignore this query string or drop it in order to cache the file properly.</p>
-        <ul>
-            <li>Use in Cache Key, and Pass Up: query string is used in cache key and passed up to the origin when fill requests are made.</li>
-            <li>Ignore in Cache Key, and Pass Up: query string is not used in cache key but it is still passed along to the origin when fill requests are made.</li>
-            <li>Drop at Edge: query string is not used in cache key and is not passed to origin when fill requests are made.</li>
-        </ul>
-    </div>
-</script>
-
-<script type="text/ng-template" id="rangeRequestHandling.html">
-    <div id="rangeRequestHandling-tooltip-content"><p>Range requests are not supported by default. One of two options must
-        be selected in order for the CDN to support range requests.</p>
-        <ul>
-            <li>Consistent, Non-Overlapping Ranges: If this is selected, each range request will be cached as a separate file.</li>
-            <li>Variable, Overlapping Ranges: If this is selected, the full object will be pulled into cache as a single file and the varying ranges will be served from the full copy.</li>
-        </ul>
-        <p>If you know you need range requests but you don’t know which type of requests are made the safer choice is Variable, Overlapping Ranges. This can always be changed later.</p>
-        <p>Consistent, Non-Overlapping Example: each client calls the same ranges (in any order) and these ranges do not overlap each other:</p>
-        <ul>
-            <li>Client 1 calls ranges: 0 to 1,000; 1,001 to 2,000; 2,001 to 2,650</li>
-            <li>Client 2 calls ranges: 2,001 to 2,650; 1,001 to 2000; 0 to 1,000</li>
-            <li>Client 3 calls ranges: 0 to 1,000; 1,001 to 2000</li>
-        </ul>
-        <p>Variable, Overlapping Example: each client is free to call whatever range they want, in any order, and these ranges may overlap each other:</p>
-        <ul>
-            <li>Client 1 calls ranges: 0 to 500; 501 to 1,000</li>
-            <li>Client 2 calls ranges: 0 to 1,000; 1,001 to 2,000</li>
-            <li>Client 3 calls ranges: 0 to 750; 751 to 1,500</li>
-        </ul>
-    </div>
-</script>
-
-<script type="text/ng-template" id="headerRewriteEdge.html">
-    <div id="headerRewriteEdge-tooltip-content">
-        <p>Headers can be added or altered at each layer of the CDN. You must tell
-            us four things: the action, the header name, the header value, and the direction to apply. The action will tell us
-            whether we are adding, removing, or replacing headers. The header name and header value will determine the full
-            header text. The direction will determine whether we add it before we respond to a request or before we make a
-            request further up the chain in the server hierarchy. Examples include:</p>
-        <ul>
-            <li>Action: Add</li>
-            <li>Header Name: X-CDN</li>
-            <li>Header Value: Foo</li>
-            <li>Direction: Edge Response to Client</li>
-        </ul>
-    </div>
-</script>
-
-<script type="text/ng-template" id="headerRewriteMid.html">
-    <div id="headerRewriteMid-tooltip-content"><p>Headers can be added or altered at each layer of the CDN. You must tell
-        us four things: the action, the header name, the header value, and the direction to apply. The action will tell us
-        whether we are adding, removing, or replacing headers. The header name and header value will determine the full
-        header text. The direction will determine whether we add it before we respond to a request or before we make a
-        request further up the chain in the server hierarchy. Examples include:</p>
-        <ul>
-            <li>Action: Modify (Replace)</li>
-            <li>Header Name: Host</li>
-            <li>Header Value: code_abc123</li>
-            <li>Direction: Mid Request to Origin</li>
-        </ul>
-    </div>
-</script>
-
-<script type="text/ng-template" id="headerRewriteRedirectRouter.html">
-    <div id="headerRewriteRedirectRouter-tooltip-content"><p>Headers can be added or altered at each layer of the CDN. You
-        must tell us four things: the action, the header name, the header value, and the direction to apply. The action will
-        tell us whether we are adding, removing, or replacing headers. The header name and header value will determine the
-        full header text. The direction will determine whether we add it before we respond to a request or before we make a
-        request further up the chain in the server hierarchy. Examples include:</p>
-
-        <p>The CCR Router is the first server to which the client will connect. The CCR Router will redirect the client to
-            the proper edge server based on the geo location of the client and the content requested.</p>
-        <ul>
-            <li>Action: Add</li>
-            <li>Header Name: Access-Control-Allow-Origin</li>
-            <li>Header Value: *</li>
-            <li>Direction: CCR Response to Client</li>
-        </ul>
-    </div>
-</script>
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/new/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/new/index.js
deleted file mode 100644
index fc7ab24..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/new/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.new', [])
-    .controller('DeliveryServiceNewController', require('./DeliveryServiceNewController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.new', {
-                url: '/new',
-                views: {
-                    deliveryServiceContent: {
-                        templateUrl: 'modules/private/deliveryService/new/deliveryService.new.tpl.html',
-                        controller: 'DeliveryServiceNewController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/DeliveryServiceViewController.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/DeliveryServiceViewController.js
deleted file mode 100644
index 1257613..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/DeliveryServiceViewController.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DeliveryServiceViewController = function($scope, deliveryService) {
-
-    $scope.deliveryService = deliveryService;
-
-};
-
-DeliveryServiceViewController.$inject = ['$scope', 'deliveryService'];
-module.exports = DeliveryServiceViewController;
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/_deliveryService.view.scss b/traffic_portal/v1/app/src/modules/private/deliveryService/view/_deliveryService.view.scss
deleted file mode 100644
index fff23b4..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/_deliveryService.view.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/DeliveryServiceViewChartsController.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/DeliveryServiceViewChartsController.js
deleted file mode 100644
index a7212bf..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/DeliveryServiceViewChartsController.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DeliveryServiceViewChartsController = function($scope, $location, $uibModal, $state, deliveryServicesModel, propertiesModel, chartModel) {
-
-    $scope.deliveryServices = deliveryServicesModel.deliveryServices;
-
-    $scope.properties = propertiesModel.properties;
-
-    $scope.bpsPopover = {
-        title: propertiesModel.properties.charts.bandwidthPerSecond.title,
-        content: propertiesModel.properties.charts.bandwidthPerSecond.description
-    };
-
-    $scope.tpsPopover = {
-        title: propertiesModel.properties.charts.transactionsPerSecond.title,
-        content: propertiesModel.properties.charts.transactionsPerSecond.description
-    };
-
-    $scope.httpPopover = {
-        title: propertiesModel.properties.charts.httpStatus.title,
-        content: propertiesModel.properties.charts.httpStatus.description
-    };
-
-    $scope.isState = function(state) {
-        return $state.current.name == state;
-    };
-
-    $scope.changeDS = function(dsId) {
-        $state.go($state.current.name, { deliveryServiceId: dsId }, { reload: true });
-    };
-
-    $scope.navigateToChart = function(dsId, type) {
-        $location.url('/delivery-service/' + dsId + '/chart/' + type).search({ start: moment(chartModel.chart.start).format(), end: moment(chartModel.chart.end).format() });
-    };
-
-    $scope.navigateToDeliveryService = function(dsId) {
-        $location.url('/delivery-service/' + dsId).search({ start: moment(chartModel.chart.start).format(), end: moment(chartModel.chart.end).format() });
-    };
-
-};
-
-DeliveryServiceViewChartsController.$inject = ['$scope', '$location', '$uibModal', '$state', 'deliveryServicesModel', 'propertiesModel', 'chartModel'];
-module.exports = DeliveryServiceViewChartsController;
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/_deliveryService.view.charts.scss b/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/_deliveryService.view.charts.scss
deleted file mode 100644
index ce980e2..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/_deliveryService.view.charts.scss
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#dsChartsContainer {
-
-  .ds-header {
-    position: relative;
-
-    .ds-name {
-      max-width: 500px;
-    }
-
-    .ds-name {
-      white-space: nowrap;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      display: inline-block;
-      margin-bottom: -5px;
-    }
-
-  }
-
-  .more-ds-btn {
-    position: absolute;
-    top: 8px;
-    right: 0;
-  }
-
-  .more-ds-menu {
-    height: auto;
-    max-height: 300px;
-    max-width: 500px;
-    overflow-y: auto;
-
-    .ds-name-link {
-      overflow: hidden;
-      text-overflow: ellipsis;
-    }
-
-  }
-
-  .schedule-button {
-    margin-top: 20px;
-    float: right;
-  }
-
-  .chart-column {
-    margin-bottom: 20px;
-  }
-
-  .chart-content .chart-container {
-    padding: 10px 20px 0 20px;
-  }
-
-  .chart-content > .chart-container {
-    border: 1px solid #A8A8A8;
-    margin-bottom: 30px;
-  }
-
-  .chart-info {
-    float: right;
-    margin-top: 3px;
-  }
-
-}
-
-@media (max-width: 1199px) {
-
-  #dsChartsContainer {
-
-    .ds-header {
-
-      .ds-name {
-        max-width: 400px;
-      }
-
-    }
-
-  }
-
-}
-
-@media (max-width: 991px) {
-
-  #dsChartsContainer {
-
-    .ds-header {
-
-      .ds-name {
-        max-width: 300px;
-      }
-
-    }
-
-  }
-
-}
-
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/bandwidthPerSecond/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/bandwidthPerSecond/index.js
deleted file mode 100644
index 07ab673..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/bandwidthPerSecond/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.view.chart.bandwidthPerSecond', [])
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.view.chart.bandwidthPerSecond', {
-                url: '/bandwidth-per-second',
-                views: {
-                    chartDatesContent: {
-                        templateUrl: 'common/modules/chart/dates/chart.dates.tpl.html',
-                        controller: 'ChartDatesController',
-                        resolve: {
-                            customLabel: function() {
-                                return 'Data';
-                            },
-                            showAutoRefreshBtn: function() {
-                                return true;
-                            }
-                        }
-                    },
-                    chartContent: {
-                        templateUrl: 'common/modules/chart/bandwidthPerSecond/chart.bandwidthPerSecond.tpl.html',
-                        controller: 'ChartBandwidthPerSecondController',
-                        resolve: {
-                            entity: function(user, $stateParams, deliveryServicesModel) {
-                                return deliveryServicesModel.getDeliveryService($stateParams.deliveryServiceId);
-                            },
-                            showSummary: function() {
-                                return true;
-                            }
-                        }
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/deliveryService.view.charts.tpl.html b/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/deliveryService.view.charts.tpl.html
deleted file mode 100644
index 2a8c0b4..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/deliveryService.view.charts.tpl.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="dsChartsContainer" ng-show="deliveryService">
-    <div class="ds-header">
-        <ol class="breadcrumb">
-            <li><a class="ds-name" ng-click="navigateToDeliveryService(deliveryService.id)" title="{{deliveryService.displayName}} ({{deliveryService.id}} | {{deliveryService.xmlId}})">{{deliveryService.displayName}}</a></li>
-            <li class="active">Charts</li>
-        </ol>
-        <div class="more-ds-btn btn-group" uib-dropdown is-open="dsDropdown.isopen">
-            <button id="moreDS-button" type="button" class="action-btn-dropdown btn" uib-dropdown-toggle>
-                Change Delivery Service <i class="fa fa-angle-down fa-lg"></i>
-            </button>
-            <ul class="action-btn-menu uib-dropdown-menu dropdown-menu-right more-ds-menu scrollable" role="menu" aria-labelledby="moreDS-button">
-                <li ng-repeat="ds in deliveryServices | orderBy:'displayName'" ng-show="ds.id != deliveryService.id"><a class="ds-name-link" title="{{ds.displayName}} ({{ds.id}} | {{ds.xmlId}})" ng-click="changeDS(ds.id)"><span ng-show="!ds.active" title="Inactive"><i class="fa fa-times fa-fw"></i></span><span ng-show="ds.active" title="Active"><i class="fa fa-check fa-fw"></i></span> {{ds.displayName}}</a></li>
-            </ul>
-        </div>
-    </div>
-    <div class="row">
-        <div class="col-lg-3 col-md-12 col-sm-12 column chart-column">
-            <ul class="nav nav-pills nav-stacked">
-                <li class="header">Delivery Service Charts</li>
-                <li ng-if="properties.charts.bandwidthPerSecond.show">
-                    <a ng-class="{'selected-chart': isState('trafficPortal.private.deliveryService.view.chart.bandwidthPerSecond')}" ng-click="navigateToChart(deliveryService.id, 'bandwidth-per-second')">
-                        <i ng-show="isState('trafficPortal.private.deliveryService.view.chart.bandwidthPerSecond')" class="fa fa-chevron-right fa-fw"></i> {{properties.charts.bandwidthPerSecond.name}}
-                        <i class="chart-info fa fa-info-circle fa-lg" uib-popover="{{bpsPopover.content}}" popover-title="{{bpsPopover.title}}" popover-trigger="mouseenter" popover-placement="right" popover-append-to-body="true" popover-class="popover-class"></i>
-                    </a>
-                </li>
-                <li ng-if="properties.charts.transactionsPerSecond.show">
-                    <a ng-class="{'selected-chart': isState('trafficPortal.private.deliveryService.view.chart.transactionsPerSecond')}" ng-click="navigateToChart(deliveryService.id, 'transactions-per-second')">
-                        <i ng-show="isState('trafficPortal.private.deliveryService.view.chart.transactionsPerSecond')" class="fa fa-chevron-right fa-fw"></i> {{properties.charts.transactionsPerSecond.name}}
-                        <i class="chart-info fa fa-info-circle fa-lg" uib-popover="{{tpsPopover.content}}" popover-title="{{tpsPopover.title}}" popover-trigger="mouseenter" popover-placement="right" popover-append-to-body="true" popover-class="popover-class"></i>
-                    </a>
-                </li>
-                <li ng-if="properties.charts.httpStatus.show">
-                    <a ng-class="{'selected-chart': isState('trafficPortal.private.deliveryService.view.chart.httpStatus')}" ng-click="navigateToChart(deliveryService.id, 'http-status-by-class')">
-                        <i ng-show="isState('trafficPortal.private.deliveryService.view.chart.httpStatus')" class="fa fa-chevron-right fa-fw"></i> {{properties.charts.httpStatus.name}}
-                        <i class="chart-info fa fa-info-circle fa-lg" uib-popover="{{httpPopover.content}}" popover-title="{{httpPopover.title}}" popover-trigger="mouseenter" popover-placement="right" popover-append-to-body="true" popover-class="popover-class"></i>
-                    </a>
-                </li>
-            </ul>
-        </div>
-        <div class="col-lg-9 col-med-12 col-sm-12">
-            <div ui-view="chartDatesContent"></div>
-            <div ui-view="chartContent" class="chart-content"></div>
-        </div>
-    </div>
-</div>
-
-
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/httpStatus/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/httpStatus/index.js
deleted file mode 100644
index 1618b0b..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/httpStatus/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.view.chart.httpStatus', [])
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.view.chart.httpStatus', {
-                url: '/http-status-by-class',
-                views: {
-                    chartDatesContent: {
-                        templateUrl: 'common/modules/chart/dates/chart.dates.tpl.html',
-                        controller: 'ChartDatesController',
-                        resolve: {
-                            customLabel: function() {
-                                return 'Data';
-                            },
-                            showAutoRefreshBtn: function() {
-                                return true;
-                            }
-                        }
-                    },
-                    chartContent: {
-                        templateUrl: 'common/modules/chart/httpStatus/chart.httpStatus.tpl.html',
-                        controller: 'ChartHttpStatusController',
-                        resolve: {
-                            entity: function(user, $stateParams, deliveryServicesModel) {
-                                return deliveryServicesModel.getDeliveryService($stateParams.deliveryServiceId);
-                            }
-                        }
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/index.js
deleted file mode 100644
index f0856ea..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.view.chart', [])
-    .controller('DeliveryServiceViewChartsController', require('./DeliveryServiceViewChartsController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.view.chart', {
-                url: '/chart',
-                abstract: true,
-                views: {
-                    deliveryServiceViewContent: {
-                        templateUrl: 'modules/private/deliveryService/view/charts/deliveryService.view.charts.tpl.html',
-                        controller: 'DeliveryServiceViewChartsController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/transactionsPerSecond/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/transactionsPerSecond/index.js
deleted file mode 100644
index 36be5f9..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/charts/transactionsPerSecond/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.view.chart.transactionsPerSecond', [])
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.view.chart.transactionsPerSecond', {
-                url: '/transactions-per-second',
-                views: {
-                    chartDatesContent: {
-                        templateUrl: 'common/modules/chart/dates/chart.dates.tpl.html',
-                        controller: 'ChartDatesController',
-                        resolve: {
-                            customLabel: function() {
-                                return 'Data';
-                            },
-                            showAutoRefreshBtn: function() {
-                                return true;
-                            }
-                        }
-                    },
-                    chartContent: {
-                        templateUrl: 'common/modules/chart/transactionsPerSecond/chart.transactionsPerSecond.tpl.html',
-                        controller: 'ChartTransactionsPerSecondController',
-                        resolve: {
-                            entity: function(user, $stateParams, deliveryServicesModel) {
-                                return deliveryServicesModel.getDeliveryService($stateParams.deliveryServiceId);
-                            },
-                            showSummary: function() {
-                                return true;
-                            }
-                        }
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/deliveryService.view.tpl.html b/traffic_portal/v1/app/src/modules/private/deliveryService/view/deliveryService.view.tpl.html
deleted file mode 100644
index 9a51f63..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/deliveryService.view.tpl.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div ui-view="deliveryServiceViewContent"></div>
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/index.js
deleted file mode 100644
index bb71dd4..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.view', [])
-    .controller('DeliveryServiceViewController', require('./DeliveryServiceViewController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.view', {
-                url: '/{deliveryServiceId}',
-                abstract: true,
-                views: {
-                    deliveryServiceContent: {
-                        templateUrl: 'modules/private/deliveryService/view/deliveryService.view.tpl.html',
-                        controller: 'DeliveryServiceViewController',
-                        resolve: {
-                            deliveryService: function(user, deliveryServicesModel, $stateParams) {
-                                return deliveryServicesModel.getDeliveryService($stateParams.deliveryServiceId);
-                            }
-                        }
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/DeliveryServiceViewOverviewController.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/DeliveryServiceViewOverviewController.js
deleted file mode 100644
index 9902340..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/DeliveryServiceViewOverviewController.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var DeliveryServiceViewOverviewController = function($scope, $location, $state, $uibModal, propertiesModel, deliveryServiceService, chartModel) {
-
-    var getFailoverStatus = function() {
-        var ignoreLoadingBar = true;
-        deliveryServiceService.getState($scope.deliveryService.id, ignoreLoadingBar)
-            .then(function(response) {
-                $scope.failover = response.failover;
-            });
-    };
-
-    $scope.properties = propertiesModel.properties;
-
-    $scope.failover = {
-        configured: false,
-        enabled: false,
-        destination: {
-            location: null,
-            type: ''
-        },
-        locations: []
-    };
-
-    $scope.viewConfig = function(ds) {
-
-        var modalInstance = $uibModal.open({
-            templateUrl: 'common/modules/deliveryService/config/edit/deliveryService.config.edit.tpl.html',
-            controller: 'DSConfigEditController',
-            size: 'lg',
-            windowClass: 'ds-config-modal',
-            resolve: {
-                deliveryService: function () {
-                    return deliveryServiceService.getDeliveryService(ds.id);
-                }
-            }
-        });
-
-        modalInstance.result.then(function() {
-        }, function () {
-            // do nothing
-        });
-    };
-
-    $scope.navigateToChart = function(dsId, type) {
-        $location.url('/delivery-service/' + dsId + '/chart/' + type).search({ start: moment(chartModel.chart.start).format(), end: moment(chartModel.chart.end).format() });
-    };
-
-    angular.element(document).ready(function () {
-        if ($scope.deliveryService && $scope.deliveryService.active) {
-            getFailoverStatus();
-        }
-    });
-
-};
-
-DeliveryServiceViewOverviewController.$inject = ['$scope', '$location', '$state', '$uibModal', 'propertiesModel', 'deliveryServiceService', 'chartModel'];
-module.exports = DeliveryServiceViewOverviewController;
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/_deliveryService.view.overview.scss b/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/_deliveryService.view.overview.scss
deleted file mode 100644
index cef58e6..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/_deliveryService.view.overview.scss
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-#dsOverviewContainer {
-
-  .ds-header {
-    position: relative;
-
-    .ds-name {
-      max-width: 500px;
-    }
-
-    .ds-name {
-      white-space: nowrap;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      display: inline-block;
-      margin-bottom: -5px;
-    }
-
-  }
-
-  .bandwidth-content {
-    border: 1px solid #A8A8A8;
-    padding: 10px;
-  }
-
-  .more-charts-btn, .invalidate-content-btn {
-    position: absolute;
-    top: 8px;
-  }
-
-  .invalidate-content-btn {
-    right: 215px;
-  }
-
-  .more-charts-btn {
-    right: 0;
-  }
-
-  .ds-cachegroups {
-    padding-bottom: 60px;
-  }
-
-  .scrollable-purge-container {
-    height: auto;
-    max-height: 500px;
-    overflow-y: auto;
-  }
-
-}
-
-@media (max-width: 1199px) {
-
-  #dsOverviewContainer {
-
-    .ds-header {
-
-      .ds-name {
-        max-width: 400px;
-      }
-
-    }
-
-  }
-
-}
-
-@media (max-width: 991px) {
-
-  #dsOverviewContainer {
-
-    .ds-header {
-
-      .ds-name {
-        max-width: 300px;
-      }
-
-    }
-
-  }
-
-}
-
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/deliveryService.view.overview.tpl.html b/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/deliveryService.view.overview.tpl.html
deleted file mode 100644
index fbc3ea3..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/deliveryService.view.overview.tpl.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="dsOverviewContainer" ng-show="deliveryService">
-    <div class="ds-header">
-        <ol class="breadcrumb">
-            <li class="active"><span class="ds-name" title="{{deliveryService.displayName}} ({{deliveryService.id}} | {{deliveryService.xmlId}})">{{deliveryService.displayName}}</span> <a class="link" title="View Delivery Service Config" ng-click="viewConfig(deliveryService)"><i class="fa fa-cog fa-fw"></i></a></li>
-        </ol>
-        <div ng-if="properties.deliveryService.invalidateContent.show && user.localUser" class="invalidate-content-btn btn-group" uib-dropdown is-open="invalidate.isopen">
-            <button id="invalidate-button" type="button" class="action-btn-dropdown btn" uib-dropdown-toggle>
-                Invalidate Content <i class="fa fa-angle-down fa-lg"></i>
-            </button>
-            <ul class="action-btn-dialog uib-dropdown-menu scrollable-purge-container scrollable dropdown-menu-right" role="menu" aria-labelledby="invalidate-button">
-                <li>
-                    <div class="panel-body">
-                        <div ui-view="purgeContent"></div>
-                    </div>
-                </li>
-            </ul>
-        </div>
-        <div class="more-charts-btn btn-group" uib-dropdown is-open="moreCharts.isopen">
-            <button id="moreCharts-button" type="button" class="action-btn-dropdown btn" uib-dropdown-toggle>
-                Delivery Service Charts <i class="fa fa-angle-down fa-lg"></i>
-            </button>
-            <ul class="action-btn-menu uib-dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="moreCharts-button">
-                <li ng-if="properties.charts.bandwidthPerSecond.show"><a ng-click="navigateToChart(deliveryService.id, 'bandwidth-per-second')">{{properties.charts.bandwidthPerSecond.name}}</a></li>
-                <li ng-if="properties.charts.transactionsPerSecond.show"><a ng-click="navigateToChart(deliveryService.id, 'transactions-per-second')">{{properties.charts.transactionsPerSecond.name}}</a></li>
-                <li ng-if="properties.charts.httpStatus.show"><a ng-click="navigateToChart(deliveryService.id, 'http-status-by-class')">{{properties.charts.httpStatus.name}}</a></li>
-            </ul>
-        </div>
-    </div>
-    <div class="alert alert-danger" role="alert" ng-show="failover.configured && failover.enabled">Failover Status: ON <span ng-show="failover.destination.location"> - destination: {{failover.destination.location}} ({{failover.destination.type}})</span></div>
-    <div ng-if="properties.charts.bandwidthPerSecond.show">
-        <div ui-view="chartDatesContent"></div>
-        <div ui-view="bandwidthContent" class="bandwidth-content"></div>
-    </div>
-    <hr>
-    <div class="capacity-and-routing row" ng-show="deliveryService.active">
-        <div class="col-sm-6 col-md-6" ui-view="capacityContent"></div>
-        <div class="col-sm-6 col-md-6" ui-view="routingContent"></div>
-    </div>
-    <hr>
-    <div ng-show="deliveryService.active" ui-view="cacheGroupsContent" class="ds-cachegroups"></div>
-</div>
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/detail/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/detail/index.js
deleted file mode 100644
index 508dd00..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/detail/index.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.view.overview.detail', [])
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.view.overview.detail', {
-                url: '',
-                views: {
-                    chartDatesContent: {
-                        templateUrl: 'common/modules/chart/dates/chart.dates.tpl.html',
-                        controller: 'ChartDatesController',
-                        resolve: {
-                            customLabel: function() {
-                                return 'Delivery Service Bandwidth';
-                            },
-                            showAutoRefreshBtn: function() {
-                                return true;
-                            }
-                        }
-                    },
-                    bandwidthContent: {
-                        templateUrl: 'common/modules/chart/bandwidthPerSecond/chart.bandwidthPerSecond.tpl.html',
-                        controller: 'ChartBandwidthPerSecondController',
-                        resolve: {
-                            entity: function(user, $stateParams, deliveryServicesModel) {
-                                return deliveryServicesModel.getDeliveryService($stateParams.deliveryServiceId);
-                            },
-                            showSummary: function() {
-                                return true;
-                            }
-                        }
-                    },
-                    purgeContent: {
-                        templateUrl: 'common/modules/tools/purge/tools.purge.tpl.html',
-                        controller: 'ToolsPurgeController'
-                    },
-                    capacityContent: {
-                        templateUrl: 'common/modules/chart/capacity/chart.capacity.tpl.html',
-                        controller: 'ChartCapacityController',
-                        resolve: {
-                            entityId: function($stateParams) {
-                                return $stateParams.deliveryServiceId;
-                            },
-                            service: function(deliveryServiceService) {
-                                return deliveryServiceService;
-                            }
-                        }
-                    },
-                    cacheGroupsContent: {
-                        templateUrl: 'common/modules/cacheGroups/cacheGroups.tpl.html',
-                        controller: 'CacheGroupsController',
-                        resolve: {
-                            entityId: function($stateParams) {
-                                return $stateParams.deliveryServiceId;
-                            },
-                            service: function(deliveryServiceService) {
-                                return deliveryServiceService;
-                            },
-                            showDownload: function() {
-                                return true;
-                            }
-                        }
-                    },
-                    routingContent: {
-                        templateUrl: 'common/modules/chart/routing/chart.routing.tpl.html',
-                        controller: 'ChartRoutingController',
-                        resolve: {
-                            entityId: function($stateParams) {
-                                return $stateParams.deliveryServiceId;
-                            },
-                            service: function(deliveryServiceService) {
-                                return deliveryServiceService;
-                            }
-                        }
-                    }
-                }
-            })
-        ;
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/index.js b/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/index.js
deleted file mode 100644
index 452f37b..0000000
--- a/traffic_portal/v1/app/src/modules/private/deliveryService/view/overview/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.deliveryService.view.overview', [])
-    .controller('DeliveryServiceViewOverviewController', require('./DeliveryServiceViewOverviewController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.deliveryService.view.overview', {
-                url: '',
-                abstract: true,
-                views: {
-                    deliveryServiceViewContent: {
-                        templateUrl: 'modules/private/deliveryService/view/overview/deliveryService.view.overview.tpl.html',
-                        controller: 'DeliveryServiceViewOverviewController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/index.js b/traffic_portal/v1/app/src/modules/private/index.js
deleted file mode 100644
index 9a71075..0000000
--- a/traffic_portal/v1/app/src/modules/private/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.private', [])
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private', {
-                url: '',
-                abstract: true,
-                views: {
-                    header: {
-                        templateUrl: 'common/modules/header/header.tpl.html',
-                        controller: 'HeaderController'
-                    },
-                    message: {
-                        templateUrl: 'common/modules/message/message.tpl.html',
-                        controller: 'MessageController'
-                    },
-                    content: {
-                        templateUrl: 'modules/private/private.tpl.html'
-                    },
-                    footer: {
-                        templateUrl: 'common/modules/footer/footer.tpl.html',
-                        controller: 'FooterController'
-                    }
-                },
-                resolve: {
-                    user: function($state, userService, deliveryServiceService, userModel, deliveryServicesModel) {
-                        if (userModel.user.loaded) {
-                            return userModel.user;
-                        } else {
-                            return userService.getCurrentUser()
-                                .then(function() {
-                                    if (!deliveryServicesModel.loaded) {
-                                        return deliveryServiceService.getDeliveryServices();
-                                    }
-                                });
-                        }
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/private.tpl.html b/traffic_portal/v1/app/src/modules/private/private.tpl.html
deleted file mode 100644
index 95afc8f..0000000
--- a/traffic_portal/v1/app/src/modules/private/private.tpl.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div id="privateContainer">
-    <div ui-view="privateContent"></div>
-</div>
diff --git a/traffic_portal/v1/app/src/modules/private/user/UserController.js b/traffic_portal/v1/app/src/modules/private/user/UserController.js
deleted file mode 100644
index 34ca4e5..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/UserController.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var UserController = function($scope, $state, $uibModal, $timeout, formUtils, deliveryServicesModel, userService, authService, userModel) {
-
-    var updateUser = function(user, options) {
-        user.token = null; // this will null out any token the user may have had
-        userService.updateCurrentUser(user)
-            .then(function() {
-                if (options.signout) {
-                    authService.logout();
-                }
-            });
-    };
-
-    $scope.deliveryServices = deliveryServicesModel.deliveryServices;
-
-    $scope.showDS = function(dsId) {
-        $state.go('trafficPortal.private.deliveryService.view.overview.detail', { deliveryServiceId: dsId } );
-    };
-
-    $scope.confirmUpdate = function(user, usernameField) {
-        if (usernameField.$dirty) {
-            var params = {
-                title: 'Reauthentication Required',
-                message: 'Changing your username to ' + user.username + ' will require you to reauthenticate. Is that OK?'
-            };
-            var modalInstance = $uibModal.open({
-                templateUrl: 'common/modules/dialog/confirm/dialog.confirm.tpl.html',
-                controller: 'DialogConfirmController',
-                size: 'sm',
-                resolve: {
-                    params: function () {
-                        return params;
-                    }
-                }
-            });
-            modalInstance.result.then(function() {
-                updateUser(user, { signout : true });
-            }, function () {
-            });
-        } else {
-            updateUser(user, { signout : false });
-        }
-    };
-
-    $scope.hasError = formUtils.hasError;
-
-    $scope.hasPropertyError = formUtils.hasPropertyError;
-
-    $scope.resetUser = function() {
-        $timeout(function() {
-            $scope.userData = angular.copy(userModel.user);
-        });
-    };
-    $scope.resetUser();
-
-    $scope.$on('userModel::userUpdated', function() {
-        $scope.resetUser();
-    });
-
-};
-
-UserController.$inject = ['$scope', '$state', '$uibModal', '$timeout', 'formUtils', 'deliveryServicesModel', 'userService', 'authService', 'userModel'];
-module.exports = UserController;
diff --git a/traffic_portal/v1/app/src/modules/private/user/_user.scss b/traffic_portal/v1/app/src/modules/private/user/_user.scss
deleted file mode 100644
index ccc785b..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/_user.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-.ds-status {
-  font-size: 11px;
-  color: #999;
-}
-
-.user-ds-list-group {
-  height: auto;
-  max-height: 830px;
-  overflow-y: auto;
-}
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/modules/private/user/edit/UserEditController.js b/traffic_portal/v1/app/src/modules/private/user/edit/UserEditController.js
deleted file mode 100644
index 4eb5cb8..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/edit/UserEditController.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-var UserEditController = function($scope) {
-
-    $scope.title = 'Edit User Profile';
-
-};
-
-UserEditController.$inject = ['$scope'];
-module.exports = UserEditController;
diff --git a/traffic_portal/v1/app/src/modules/private/user/edit/_user.edit.scss b/traffic_portal/v1/app/src/modules/private/user/edit/_user.edit.scss
deleted file mode 100644
index 0d2d003..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/edit/_user.edit.scss
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-*/
-
-.edit-user-btn {
-  float: right;
-  margin-left: 5px;
-  margin-top: 20px;
-}
diff --git a/traffic_portal/v1/app/src/modules/private/user/edit/index.js b/traffic_portal/v1/app/src/modules/private/user/edit/index.js
deleted file mode 100644
index 9015f48..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/edit/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.user.edit', [])
-    .controller('UserEditController', require('./UserEditController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.user.edit', {
-                url: '',
-                views: {
-                    userContent: {
-                        templateUrl: 'modules/private/user/edit/user.edit.tpl.html',
-                        controller: 'UserEditController'
-                    }
-                }
-            })
-        ;
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/user/edit/user.edit.tpl.html b/traffic_portal/v1/app/src/modules/private/user/edit/user.edit.tpl.html
deleted file mode 100644
index 1687963..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/edit/user.edit.tpl.html
+++ /dev/null
@@ -1,182 +0,0 @@
-<!--
-
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-
-<div class="row">
-    <div class="col-sm-8 col-md-8">
-        <h3>{{title}}</h3>
-    </div>
-    <div class="col-sm-4 col-md-4">
-        <button type="button" class="edit-user-btn btn action-btn" ng-disabled="userForm.$pristine || userForm.$invalid" ng-click="confirmUpdate(userData, userForm.username)">Update</button>
-        <button type="button" class="edit-user-btn btn btn-link"  ng-click="resetUser()">Reset</button>
-    </div>
-</div>
-
-<hr>
-
-<form class="register-form col-sm-8 col-md-8" name="userForm" role="form" novalidate>
-
-    <fieldset>
-
-        <legend>User Details</legend>
-
-        <div class="row">
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.fullName), 'has-feedback': hasError(userForm.fullName)}">
-                    <label class="control-label" for="fullName">Full Name
-                        <small ng-show="hasPropertyError(userForm.fullName, 'required')">[ Required ]</small>
-                        <small ng-show="hasPropertyError(userForm.fullName, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="fullName" name="fullName" type="text" class="form-control" ng-model="userData.fullName" ng-maxlength="256" autofocus required>
-                    <span ng-show="hasError(userForm.fullName)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.company), 'has-feedback': hasError(userForm.company)}">
-                    <label class="control-label" for="company">Company (optional)
-                        <small ng-show="hasPropertyError(userForm.company, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="company" name="company" type="text" class="form-control" ng-model="userData.company" ng-maxlength="256">
-                    <span ng-show="hasError(userForm.company)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-        <div class="row">
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.email), 'has-feedback': hasError(userForm.email)}">
-                    <label class="control-label" for="email">Email
-                        <small ng-show="hasPropertyError(userForm.email, 'required')">[ Required ]</small>
-                        <small ng-show="hasPropertyError(userForm.email, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="email" name="email" type="email" class="form-control" ng-model="userData.email" ng-maxlength="128" required>
-                    <span ng-show="hasError(userForm.email)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.username), 'has-feedback': hasError(userForm.username)}">
-                    <label class="control-label" for="userName">Username
-                        <small ng-show="hasPropertyError(userForm.username, 'required')">[ Required ]</small>
-                        <small ng-show="hasPropertyError(userForm.username, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="username" name="username" type="text" class="form-control" ng-model="userData.username" ng-maxlength="128" required>
-                    <span ng-show="hasError(userForm.username)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-        <div class="row">
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.password), 'has-feedback': hasError(userForm.password)}">
-                    <label class="control-label" for="password">New Password <span ng-show="!registration && !reset">(optional)</span>
-                        <small ng-show="hasPropertyError(userForm.password, 'minlength')">[ Too Short ]</small>
-                    </label>
-                    <input id="password" name="password" type="password" class="form-control" ng-model="userData.localPasswd" ng-required="registration || reset" ng-minlength="6">
-                    <span ng-show="hasError(userForm.password)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.confirmPassword), 'has-feedback': hasError(userForm.confirmPassword)}">
-                    <label class="control-label" for="confirmPassword">Confirm New Password <span ng-show="!registration && !reset && !userData.localPasswd">(optional)</span>
-                        <small ng-show="hasPropertyError(userForm.confirmPassword, 'match')">[ Doesn't Match ]</small>
-                    </label>
-                    <input id="confirmPassword" name="confirmPassword" type="password" class="form-control" ng-model="userData.confirmLocalPasswd" match="userData.localPasswd">
-                    <span ng-show="hasError(userForm.confirmPassword)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-        <div class="row">
-            <div class="col-sm-12 col-md-12">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.addressLine1), 'has-feedback': hasError(userForm.addressLine1)}">
-                    <label class="control-label" for="addressLine1">Address Line 1 (optional)
-                        <small ng-show="hasPropertyError(userForm.addressLine1, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="addressLine1" name="addressLine1" type="text" class="form-control" ng-model="userData.addressLine1" ng-maxlength="256">
-                    <span ng-show="hasError(userForm.addressLine1)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-        <div class="row">
-            <div class="col-sm-12 col-md-12">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.addressLine2), 'has-feedback': hasError(userForm.addressLine2)}">
-                    <label class="control-label" for="addressLine2">Address Line 2 (optional)
-                        <small ng-show="hasPropertyError(userForm.addressLine2, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="addressLine2" name="addressLine2" type="text" class="form-control" ng-model="userData.addressLine2" ng-maxlength="256">
-                    <span ng-show="hasError(userForm.addressLine2)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-        <div class="row">
-            <div class="col-sm-12 col-md-12">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.city), 'has-feedback': hasError(userForm.city)}">
-                    <label class="control-label" for="city">City (optional)
-                        <small ng-show="hasPropertyError(userForm.city, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="city" name="city" type="text" class="form-control" ng-model="userData.city" ng-maxlength="128">
-                    <span ng-show="hasError(userForm.city)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-        <div class="row">
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.stateOrProvince), 'has-feedback': hasError(userForm.stateOrProvince)}">
-                    <label class="control-label" for="stateOrProvince">State or Province (optional)
-                        <small ng-show="hasPropertyError(userForm.stateOrProvince, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="stateOrProvince" name="stateOrProvince" type="text" class="form-control" ng-model="userData.stateOrProvince" ng-maxlength="128">
-                    <span ng-show="hasError(userForm.stateOrProvince)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.postalCode), 'has-feedback': hasError(userForm.postalCode)}">
-                    <label class="control-label" for="postalCode">Postal Code (optional)
-                        <small ng-show="hasPropertyError(userForm.postalCode, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="postalCode" name="postalCode" type="text" class="form-control" ng-model="userData.postalCode" ng-maxlength="11">
-                    <span ng-show="hasError(userForm.postalCode)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-        <div class="row">
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.country), 'has-feedback': hasError(userForm.country)}">
-                    <label class="control-label" for="country">Country (optional)
-                        <small ng-show="hasPropertyError(userForm.country, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="country" name="country" type="text" class="form-control" ng-model="userData.country" ng-maxlength="256">
-                    <span ng-show="hasError(userForm.country)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-            <div class="col-sm-6 col-md-6">
-                <div class="form-group" ng-class="{'has-error': hasError(userForm.phoneNumber), 'has-feedback': hasError(userForm.phoneNumber)}">
-                    <label class="control-label" for="phoneNumber">Primary Phone (optional)
-                        <small ng-show="hasPropertyError(userForm.phoneNumber, 'maxlength')">[ Too Long ]</small>
-                    </label>
-                    <input id="phoneNumber" name="phoneNumber" type="text" class="form-control" ng-model="userData.phoneNumber" ng-maxlength="25">
-                    <span ng-show="hasError(userForm.phoneNumber)" class="form-control-feedback"><i class="fa fa-times"></i></span>
-                </div>
-            </div>
-        </div>
-
-    </fieldset>
-
-</form>
\ No newline at end of file
diff --git a/traffic_portal/v1/app/src/modules/private/user/index.js b/traffic_portal/v1/app/src/modules/private/user/index.js
deleted file mode 100644
index 934212e..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
-module.exports = angular.module('trafficPortal.user', [])
-    .controller('UserController', require('./UserController'))
-    .config(function($stateProvider, $urlRouterProvider) {
-        $stateProvider
-            .state('trafficPortal.private.user', {
-                url: 'user',
-                abstract: true,
-                views: {
-                    privateContent: {
-                        templateUrl: 'modules/private/user/user.tpl.html',
-                        controller: 'UserController'
-                    }
-                }
-            });
-        $urlRouterProvider.otherwise('/');
-    });
diff --git a/traffic_portal/v1/app/src/modules/private/user/register/UserRegisterController.js b/traffic_portal/v1/app/src/modules/private/user/register/UserRegisterController.js
deleted file mode 100644
index b9e4aa5..0000000
--- a/traffic_portal/v1/app/src/modules/private/user/register/UserRegisterController.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- */
-
... 2700 lines suppressed ...