tez-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hit...@apache.org
Subject [11/11] git commit: TEZ-1708. Make UI part of TEZ build process. (Sreenath Somarajapuram via hitesh)
Date Thu, 06 Nov 2014 06:43:19 GMT
TEZ-1708. Make UI part of TEZ build process. (Sreenath Somarajapuram via hitesh)


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

Branch: refs/heads/TEZ-8
Commit: e18a1fa7c6cb02b202c941a7f45e6d41c736b56f
Parents: c327ac6
Author: Hitesh Shah <hitesh@apache.org>
Authored: Wed Nov 5 22:41:22 2014 -0800
Committer: Hitesh Shah <hitesh@apache.org>
Committed: Wed Nov 5 22:41:22 2014 -0800

----------------------------------------------------------------------
 .gitignore                                      |   1 +
 BUILDING.txt                                    |   1 +
 CHANGES.txt                                     |   1 +
 pom.xml                                         |  16 +
 tez-ui/.bowerrc                                 |   3 -
 tez-ui/.gitattributes                           |   1 -
 tez-ui/.gitignore                               |   9 -
 tez-ui/.jshintrc                                |  24 -
 tez-ui/Gruntfile.js                             | 451 -------------------
 tez-ui/README.TXT                               |  23 +-
 tez-ui/app/img/apache_tez_logo_lowres.png       | Bin 70978 -> 0 bytes
 tez-ui/app/img/glyphicons-halflings.png         | Bin 13826 -> 0 bytes
 tez-ui/app/index.html                           |  71 ---
 tez-ui/app/scripts/app.js                       |  54 ---
 tez-ui/app/scripts/components/counter-table.js  |  83 ----
 tez-ui/app/scripts/components/extended-table.js | 190 --------
 tez-ui/app/scripts/components/page-nav.js       |  35 --
 .../app/scripts/controllers/dag_controller.js   |  42 --
 .../scripts/controllers/dag_index_controller.js |  61 ---
 .../controllers/dag_swimlane_controller.js      |  35 --
 tez-ui/app/scripts/controllers/dag_tasks.js     | 123 -----
 tez-ui/app/scripts/controllers/dag_vertices.js  | 117 -----
 .../app/scripts/controllers/dags_controller.js  | 152 -------
 .../controllers/task_attempt_controller.js      |  39 --
 .../app/scripts/controllers/task_controller.js  |  40 --
 .../controllers/task_index_controller.js        |  27 --
 .../task_task_attempts_controller.js            | 117 -----
 .../app/scripts/controllers/tasks_controller.js | 112 -----
 .../scripts/controllers/vertex_controller.js    |  40 --
 .../controllers/vertex_index_controller.js      |  34 --
 .../controllers/vertex_tasks_controller.js      | 115 -----
 tez-ui/app/scripts/helpers/date.js              | 218 ---------
 tez-ui/app/scripts/helpers/handlebarHelpers.js  |  61 ---
 tez-ui/app/scripts/helpers/misc.js              |  76 ----
 tez-ui/app/scripts/helpers/number.js            | 101 -----
 tez-ui/app/scripts/helpers/translation.js       | 119 -----
 tez-ui/app/scripts/mixins/display_helpers.js    |  39 --
 tez-ui/app/scripts/mixins/paginated_content.js  | 157 -------
 tez-ui/app/scripts/mixins/run_periodically.js   |  78 ----
 .../app/scripts/models/TimelineRestAdapter.js   | 333 --------------
 tez-ui/app/scripts/models/abstract_entity.js    |  28 --
 tez-ui/app/scripts/models/dag.js                | 261 -----------
 tez-ui/app/scripts/models/task_attempt.js       |  43 --
 tez-ui/app/scripts/router.js                    | 229 ----------
 tez-ui/app/scripts/views/swimlane_view.js       | 119 -----
 tez-ui/app/styles/main.less                     | 178 --------
 tez-ui/app/styles/swimlanes.css                 |  44 --
 tez-ui/app/templates/application.hbs            |  21 -
 .../components/extended-table/extable.hbs       |  12 -
 .../components/extended-table/filter-cell.hbs   |   7 -
 .../extended-table/filter-container.hbs         |  15 -
 .../components/extended-table/filter-row.hbs    |   5 -
 tez-ui/app/templates/components/page-nav.hbs    |  21 -
 tez-ui/app/templates/dag.hbs                    |  35 --
 tez-ui/app/templates/dag/counters.hbs           |  21 -
 tez-ui/app/templates/dag/index.hbs              |  62 ---
 tez-ui/app/templates/dag/swimlane.hbs           |   4 -
 tez-ui/app/templates/dag/tasks.hbs              |  28 --
 tez-ui/app/templates/dag/vertices.hbs           |  28 --
 tez-ui/app/templates/dags.hbs                   |  55 ---
 tez-ui/app/templates/error_.hbs                 |   6 -
 tez-ui/app/templates/task.hbs                   |  62 ---
 tez-ui/app/templates/task/attempts.hbs          |  28 --
 tez-ui/app/templates/task/counters.hbs          |  21 -
 tez-ui/app/templates/task/index.hbs             |  57 ---
 tez-ui/app/templates/taskAttempt/counters.hbs   |  21 -
 tez-ui/app/templates/taskAttempt/index.hbs      |  43 --
 tez-ui/app/templates/task_attempt.hbs           |  51 ---
 tez-ui/app/templates/tasks.hbs                  |  58 ---
 tez-ui/app/templates/utils/_loadingSpinner.hbs  |   3 -
 tez-ui/app/templates/utils/_pageHeader.hbs      |   7 -
 tez-ui/app/templates/vertex.hbs                 |  43 --
 tez-ui/app/templates/vertex/counters.hbs        |  21 -
 tez-ui/app/templates/vertex/index.hbs           |  86 ----
 tez-ui/app/templates/vertex/swimlane.hbs        |  22 -
 tez-ui/app/templates/vertex/tasks.hbs           |  46 --
 tez-ui/bower.json                               |  32 --
 tez-ui/original/application_attempt_page.html   |  44 --
 tez-ui/original/application_attempt_page.js     |  51 ---
 tez-ui/original/application_page.html           |  40 --
 tez-ui/original/application_page.js             |  52 ---
 tez-ui/original/css/jquery.dataTables.min.css   |   1 -
 tez-ui/original/dag_page.html                   |  74 ---
 tez-ui/original/dag_page.js                     |  85 ----
 tez-ui/original/lib/jquery.dataTables.min.js    | 155 -------
 tez-ui/original/lib/jquery.js                   |   4 -
 tez-ui/original/login.html                      |  51 ---
 tez-ui/original/task_attempt_page.html          |  60 ---
 tez-ui/original/task_attempt_page.js            |  59 ---
 tez-ui/original/task_page.html                  |  72 ---
 tez-ui/original/task_page.js                    |  76 ----
 tez-ui/original/user_guide.txt                  |  18 -
 tez-ui/original/vertex_page.html                |  73 ---
 tez-ui/original/vertex_page.js                  |  76 ----
 tez-ui/package.json                             |  36 --
 tez-ui/pom.xml                                  | 146 ++++++
 tez-ui/src/assembly/bin.xml                     |  31 ++
 tez-ui/src/main/resources/WEB-INF/web.xml       |  25 +
 tez-ui/src/main/webapp/.bowerrc                 |   3 +
 tez-ui/src/main/webapp/.gitattributes           |   1 +
 tez-ui/src/main/webapp/.gitignore               |   9 +
 tez-ui/src/main/webapp/.jshintrc                |  24 +
 tez-ui/src/main/webapp/Gruntfile.js             | 451 +++++++++++++++++++
 .../webapp/app/img/apache_tez_logo_lowres.png   | Bin 0 -> 70978 bytes
 .../webapp/app/img/glyphicons-halflings.png     | Bin 0 -> 13826 bytes
 tez-ui/src/main/webapp/app/index.html           |  71 +++
 tez-ui/src/main/webapp/app/scripts/app.js       |  54 +++
 .../app/scripts/components/counter-table.js     |  83 ++++
 .../app/scripts/components/extended-table.js    | 190 ++++++++
 .../webapp/app/scripts/components/page-nav.js   |  35 ++
 .../app/scripts/controllers/dag_controller.js   |  42 ++
 .../scripts/controllers/dag_index_controller.js |  61 +++
 .../controllers/dag_swimlane_controller.js      |  35 ++
 .../webapp/app/scripts/controllers/dag_tasks.js | 123 +++++
 .../app/scripts/controllers/dag_vertices.js     | 117 +++++
 .../app/scripts/controllers/dags_controller.js  | 152 +++++++
 .../controllers/task_attempt_controller.js      |  39 ++
 .../app/scripts/controllers/task_controller.js  |  40 ++
 .../controllers/task_index_controller.js        |  27 ++
 .../task_task_attempts_controller.js            | 117 +++++
 .../app/scripts/controllers/tasks_controller.js | 112 +++++
 .../scripts/controllers/vertex_controller.js    |  40 ++
 .../controllers/vertex_index_controller.js      |  34 ++
 .../controllers/vertex_tasks_controller.js      | 115 +++++
 .../src/main/webapp/app/scripts/helpers/date.js | 218 +++++++++
 .../app/scripts/helpers/handlebarHelpers.js     |  61 +++
 .../src/main/webapp/app/scripts/helpers/misc.js |  76 ++++
 .../main/webapp/app/scripts/helpers/number.js   | 101 +++++
 .../webapp/app/scripts/helpers/translation.js   | 119 +++++
 .../app/scripts/mixins/display_helpers.js       |  39 ++
 .../app/scripts/mixins/paginated_content.js     | 157 +++++++
 .../app/scripts/mixins/run_periodically.js      |  78 ++++
 .../app/scripts/models/TimelineRestAdapter.js   | 333 ++++++++++++++
 .../app/scripts/models/abstract_entity.js       |  28 ++
 .../src/main/webapp/app/scripts/models/dag.js   | 261 +++++++++++
 .../webapp/app/scripts/models/task_attempt.js   |  43 ++
 tez-ui/src/main/webapp/app/scripts/router.js    | 229 ++++++++++
 .../webapp/app/scripts/views/swimlane_view.js   | 119 +++++
 tez-ui/src/main/webapp/app/styles/main.less     | 178 ++++++++
 tez-ui/src/main/webapp/app/styles/swimlanes.css |  44 ++
 .../main/webapp/app/templates/application.hbs   |  21 +
 .../components/extended-table/extable.hbs       |  12 +
 .../components/extended-table/filter-cell.hbs   |   7 +
 .../extended-table/filter-container.hbs         |  15 +
 .../components/extended-table/filter-row.hbs    |   5 +
 .../app/templates/components/page-nav.hbs       |  21 +
 tez-ui/src/main/webapp/app/templates/dag.hbs    |  35 ++
 .../main/webapp/app/templates/dag/counters.hbs  |  21 +
 .../src/main/webapp/app/templates/dag/index.hbs |  62 +++
 .../main/webapp/app/templates/dag/swimlane.hbs  |   4 +
 .../src/main/webapp/app/templates/dag/tasks.hbs |  28 ++
 .../main/webapp/app/templates/dag/vertices.hbs  |  28 ++
 tez-ui/src/main/webapp/app/templates/dags.hbs   |  55 +++
 tez-ui/src/main/webapp/app/templates/error_.hbs |   6 +
 tez-ui/src/main/webapp/app/templates/task.hbs   |  62 +++
 .../main/webapp/app/templates/task/attempts.hbs |  28 ++
 .../main/webapp/app/templates/task/counters.hbs |  21 +
 .../main/webapp/app/templates/task/index.hbs    |  57 +++
 .../app/templates/taskAttempt/counters.hbs      |  21 +
 .../webapp/app/templates/taskAttempt/index.hbs  |  43 ++
 .../main/webapp/app/templates/task_attempt.hbs  |  51 +++
 tez-ui/src/main/webapp/app/templates/tasks.hbs  |  58 +++
 .../app/templates/utils/_loadingSpinner.hbs     |   3 +
 .../webapp/app/templates/utils/_pageHeader.hbs  |   7 +
 tez-ui/src/main/webapp/app/templates/vertex.hbs |  43 ++
 .../webapp/app/templates/vertex/counters.hbs    |  21 +
 .../main/webapp/app/templates/vertex/index.hbs  |  86 ++++
 .../webapp/app/templates/vertex/swimlane.hbs    |  22 +
 .../main/webapp/app/templates/vertex/tasks.hbs  |  46 ++
 tez-ui/src/main/webapp/bower.json               |  32 ++
 .../original/application_attempt_page.html      |  44 ++
 .../webapp/original/application_attempt_page.js |  51 +++
 .../main/webapp/original/application_page.html  |  40 ++
 .../main/webapp/original/application_page.js    |  52 +++
 .../original/css/jquery.dataTables.min.css      |   1 +
 tez-ui/src/main/webapp/original/dag_page.html   |  74 +++
 tez-ui/src/main/webapp/original/dag_page.js     |  85 ++++
 .../original/lib/jquery.dataTables.min.js       | 155 +++++++
 tez-ui/src/main/webapp/original/lib/jquery.js   |   4 +
 tez-ui/src/main/webapp/original/login.html      |  51 +++
 .../main/webapp/original/task_attempt_page.html |  60 +++
 .../main/webapp/original/task_attempt_page.js   |  59 +++
 tez-ui/src/main/webapp/original/task_page.html  |  72 +++
 tez-ui/src/main/webapp/original/task_page.js    |  76 ++++
 tez-ui/src/main/webapp/original/user_guide.txt  |  18 +
 .../src/main/webapp/original/vertex_page.html   |  73 +++
 tez-ui/src/main/webapp/original/vertex_page.js  |  76 ++++
 tez-ui/src/main/webapp/package.json             |  36 ++
 188 files changed, 6248 insertions(+), 6010 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index e5a919d..c6ca5b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 *.iml
 *.ipr
 *.iws
+*.DS_Store
 .idea
 .svn
 .classpath

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/BUILDING.txt
----------------------------------------------------------------------
diff --git a/BUILDING.txt b/BUILDING.txt
index 34149e7..0d7df9b 100644
--- a/BUILDING.txt
+++ b/BUILDING.txt
@@ -26,6 +26,7 @@ Maven main modules:
         - tez-plugins .................(Tez plugins)
         - tez-tests ...................(Tez tests and additional test examples)
         - tez-dist ....................(Tez dist)
+        - tez-ui ......................(Tez web user interface)
 
 ----------------------------------------------------------------------------------
 Maven build goals:

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e3dec9d..2572250 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@ ALL CHANGES:
   TEZ-1604. Task View for Tez UI
   TEZ-1603. Vertex View for Tez UI.
   TEZ-1720. Allow filters in all tables and also to pass in filters using url params.
+  TEZ-1708. Make UI part of TEZ build process.
 
 Release 0.5.2: Unreleased
 

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e090e8d..6c5ddbf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -606,6 +606,7 @@
     <module>tez-examples</module>
     <module>tez-tests</module>
     <module>tez-dag</module>
+    <module>tez-ui</module>
     <module>tez-plugins</module>
     <module>tez-dist</module>
     <module>docs</module>
@@ -675,6 +676,21 @@
           <version>2.4</version>
         </plugin>
         <plugin>
+          <groupId>com.github.eirslett</groupId>
+          <artifactId>frontend-maven-plugin</artifactId>
+          <version>0.0.16</version>
+        </plugin>
+        <plugin>
+          <artifactId>exec-maven-plugin</artifactId>
+          <groupId>org.codehaus.mojo</groupId>
+          <version>1.3.2</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-war-plugin</artifactId>
+          <version>2.5</version>
+        </plugin>
+        <plugin>
           <groupId>org.apache.rat</groupId>
           <artifactId>apache-rat-plugin</artifactId>
           <version>0.10</version>

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/.bowerrc
----------------------------------------------------------------------
diff --git a/tez-ui/.bowerrc b/tez-ui/.bowerrc
deleted file mode 100644
index ba0accc..0000000
--- a/tez-ui/.bowerrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "directory": "app/bower_components"
-}

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/.gitattributes
----------------------------------------------------------------------
diff --git a/tez-ui/.gitattributes b/tez-ui/.gitattributes
deleted file mode 100644
index 2125666..0000000
--- a/tez-ui/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* text=auto
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/.gitignore
----------------------------------------------------------------------
diff --git a/tez-ui/.gitignore b/tez-ui/.gitignore
deleted file mode 100644
index ee72141..0000000
--- a/tez-ui/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-node
-node_modules
-temp
-dist
-.sass-cache
-.tmp
-app/bower_components
-test/bower_components
-.editorconfig

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/.jshintrc
----------------------------------------------------------------------
diff --git a/tez-ui/.jshintrc b/tez-ui/.jshintrc
deleted file mode 100644
index 780790d..0000000
--- a/tez-ui/.jshintrc
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "node": true,
-    "browser": true,
-    "esnext": true,
-    "bitwise": false,
-    "curly": false,
-    "eqeqeq": true,
-    "eqnull": true,
-    "immed": true,
-    "latedef": true,
-    "newcap": true,
-    "noarg": true,
-    "undef": true,
-    "strict": false,
-    "trailing": false,
-    "smarttabs": true,
-    "globals": {
-        "App": true,
-        "jQuery": true,
-        "Ember": true,
-        "Handlebars": true,
-        "DS": true
-    }
-}

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/Gruntfile.js
----------------------------------------------------------------------
diff --git a/tez-ui/Gruntfile.js b/tez-ui/Gruntfile.js
deleted file mode 100644
index 3d3b96f..0000000
--- a/tez-ui/Gruntfile.js
+++ /dev/null
@@ -1,451 +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.
- */
-// Generated on 2014-06-24 using generator-ember 0.8.4
-'use strict';
-var LIVERELOAD_PORT = 35729;
-var lrSnippet = require('connect-livereload')({port: LIVERELOAD_PORT});
-var mountFolder = function (connect, dir) {
-  return connect.static(require('path').resolve(dir));
-};
-
-// # Globbing
-// for performance reasons we're only matching one level down:
-// 'test/spec/{,*/}*.js'
-// use this if you want to match all subfolders:
-// 'test/spec/**/*.js'
-
-module.exports = function (grunt) {
-  // show elapsed time at the end
-  require('time-grunt')(grunt);
-  // load all grunt tasks
-  require('load-grunt-tasks')(grunt);
-
-  // configurable paths
-  var yeomanConfig = {
-    app: 'app',
-    dist: 'dist'
-  };
-
-  grunt.initConfig({
-    yeoman: yeomanConfig,
-    watch: {
-      emberTemplates: {
-        files: '<%= yeoman.app %>/templates/**/*.hbs',
-        tasks: ['emberTemplates']
-      },
-      neuter: {
-        files: ['<%= yeoman.app %>/scripts/{,*/}*.js'],
-        tasks: ['neuter']
-      },
-      less: {
-        files: '<%= yeoman.app %>/styles/**/*.less',
-        tasks: ['less:development']
-      },
-      livereload: {
-        options: {
-          livereload: LIVERELOAD_PORT
-        },
-        files: [
-          '.tmp/scripts/**/*.js',
-          '<%= yeoman.app %>/*.html',
-          '{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css',
-          '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
-        ]
-      },
-      css: {
-        files: '<%= yeoman.app %>/styles/*.css',
-        tasks: ['copy:development']
-      }
-    },
-    connect: {
-      options: {
-        port: 9001,
-        // change this to '0.0.0.0' to access the server from outside
-        hostname: 'localhost'
-      },
-      livereload: {
-        options: {
-          middleware: function (connect) {
-            return [
-              lrSnippet,
-              mountFolder(connect, '.tmp'),
-              mountFolder(connect, yeomanConfig.app)
-            ];
-          }
-        }
-      },
-      test: {
-        options: {
-          middleware: function (connect) {
-            return [
-              mountFolder(connect, 'test'),
-              mountFolder(connect, '.tmp')
-            ];
-          }
-        }
-      },
-      dist: {
-        options: {
-          middleware: function (connect) {
-            return [
-              mountFolder(connect, yeomanConfig.dist)
-            ];
-          }
-        }
-      }
-    },
-    open: {
-      server: {
-        path: 'http://localhost:<%= connect.options.port %>'
-      }
-    },
-    clean: {
-      dist: {
-        files: [
-          {
-            dot: true,
-            src: [
-              '.tmp',
-              '<%= yeoman.dist %>/*',
-              '!<%= yeoman.dist %>/.git*'
-            ]
-          }
-        ]
-      },
-      server: '.tmp'
-    },
-    jshint: {
-      options: {
-        jshintrc: '.jshintrc',
-        reporter: require('jshint-stylish')
-      },
-      all: [
-        'Gruntfile.js',
-        '<%= yeoman.app %>/scripts/{,*/}*.js',
-        '!<%= yeoman.app %>/scripts/vendor/*',
-        'test/spec/{,*/}*.js'
-      ]
-    },
-    mocha: {
-      all: {
-        options: {
-          run: true,
-          urls: ['http://localhost:<%= connect.options.port %>/index.html']
-        }
-      }
-    },
-    // not used since Uglify task does concat,
-    // but still available if needed
-    /*concat: {
-     dist: {}
-     },*/
-    // not enabled since usemin task does concat and uglify
-    // check index.html to edit your build targets
-    // enable this task if you prefer defining your build targets here
-    /*uglify: {
-     dist: {}
-     },*/
-    rev: {
-      dist: {
-        files: {
-          src: [
-            '<%= yeoman.dist %>/scripts/{,*/}*.js',
-            '<%= yeoman.dist %>/styles/{,*/}*.css',
-            '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp}',
-            '<%= yeoman.dist %>/styles/fonts/*'
-          ]
-        }
-      }
-    },
-    useminPrepare: {
-      html: '.tmp/index.html',
-      options: {
-        dest: '<%= yeoman.dist %>'
-      }
-    },
-    usemin: {
-      html: ['<%= yeoman.dist %>/{,*/}*.html'],
-      css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
-      options: {
-        dirs: ['<%= yeoman.dist %>']
-      }
-    },
-    svgmin: {
-      dist: {
-        files: [
-          {
-            expand: true,
-            cwd: '<%= yeoman.app %>/images',
-            src: '{,*/}*.svg',
-            dest: '<%= yeoman.dist %>/images'
-          }
-        ]
-      }
-    },
-    cssmin: {
-      dist: {
-        files: {
-          '<%= yeoman.dist %>/styles/main.css': [
-            '.tmp/styles/{,*/}*.css',
-            '<%= yeoman.app %>/styles/{,*/}*.css',
-            '<%= yeoman.app %>/bower_components/bootstrap/dist/css/bootstrap.css',
-            '<%= yeoman.app %>/bower_components/ember-table/dist/ember-table.css',
-            '<%= yeoman.app %>/bower_components/font-awesome/css/font-awesome.css'
-          ]
-        }
-      }
-    },
-    htmlmin: {
-      dist: {
-        options: {
-          /*removeCommentsFromCDATA: true,
-           // https://github.com/yeoman/grunt-usemin/issues/44
-           //collapseWhitespace: true,
-           collapseBooleanAttributes: true,
-           removeAttributeQuotes: true,
-           removeRedundantAttributes: true,
-           useShortDoctype: true,
-           removeEmptyAttributes: true,
-           removeOptionalTags: true*/
-        },
-        files: [
-          {
-            expand: true,
-            cwd: '<%= yeoman.app %>',
-            src: '*.html',
-            dest: '<%= yeoman.dist %>'
-          }
-        ]
-      }
-    },
-    replace: {
-      app: {
-        options: {
-          variables: {
-            ember: 'bower_components/ember/ember.js',
-            ember_data: 'bower_components/ember-data/ember-data.js'
-          }
-        },
-        files: [
-          {src: '<%= yeoman.app %>/index.html', dest: '.tmp/index.html'}
-        ]
-      },
-      dist: {
-        options: {
-          variables: {
-            ember: 'bower_components/ember/ember.prod.js',
-            ember_data: 'bower_components/ember-data/ember-data.prod.js'
-          }
-        },
-        files: [
-          {src: '<%= yeoman.app %>/index.html', dest: '.tmp/index.html'}
-        ]
-      }
-    },
-    // Put files not handled in other tasks here
-    copy: {
-      dist: {
-        files: [
-          {
-            expand: true,
-            dot: true,
-            cwd: '<%= yeoman.app %>',
-            dest: '<%= yeoman.dist %>',
-            src: [
-              '*.{ico,txt}',
-              '.htaccess',
-              'img/*',
-              'styles/fonts/*',
-              'scripts/assets/**/*'
-            ]
-          },
-          {
-            expand: true,
-            flatten: true,
-            src: '<%= yeoman.app %>/bower_components/jquery-ui/themes/base/images/*',
-            dest: '<%= yeoman.dist %>/styles/images/'
-          },
-          {
-            expand: true,
-            flatten: true,
-            src: '<%= yeoman.app %>/bower_components/font-awesome/fonts/*',
-            dest: '<%= yeoman.dist %>/fonts/'
-          }
-        ]
-      },
-      development: {
-        files: [
-          {
-            expand: true,
-            dot: true,
-            cwd: '<%= yeoman.app %>',
-            dest: '.tmp',
-            src: [
-              '*.{ico,txt}',
-              '.htaccess',
-              'img/*',
-              'styles/*.css',
-              'styles/fonts/*',
-              'scripts/assets/**/*'
-            ]
-          },
-          {
-            expand: true,
-            flatten: true,
-            src: '<%= yeoman.app %>/bower_components/jquery-ui/themes/base/images/*',
-            dest: '.tmp/styles/images/'
-          },
-          {
-            expand: true,
-            flatten: true,
-            src: '<%= yeoman.app %>/bower_components/font-awesome/fonts/*',
-            dest: '.tmp/fonts/'
-          },
-          {
-            expand: true,
-            flatten: false,
-            cwd: '<%= yeoman.app %>',
-            src: 'bower_components/**',
-            dest: '.tmp/'
-          }
-        ]
-      }
-    },
-    concurrent: {
-      server: [
-        'emberTemplates'
-      ],
-      test: [
-        'emberTemplates'
-      ],
-      dist: [
-        'emberTemplates',
-        'svgmin',
-        'htmlmin'
-      ]
-    },
-    emberTemplates: {
-      options: {
-        templateName: function (sourceFile) {
-          var templatePath = yeomanConfig.app + '/templates/';
-          return sourceFile.replace(templatePath, '');
-        }
-      },
-      dist: {
-        files: {
-          '.tmp/scripts/compiled-templates.js': '<%= yeoman.app %>/templates/**/*.hbs'
-        }
-      },
-      development: {
-        files: {
-          '.tmp/scripts/compiled-templates.js': '<%= yeoman.app %>/templates/**/*.hbs'
-        }
-      }
-    },
-
-    less: {
-      development: {
-        options: {
-          paths: ["<%= yeoman.app %>/styles"],
-          sourceMap: true,
-        },
-        files: [{
-          expand: true,
-          cwd: "<%= yeoman.app %>/styles",
-          src: ['styles/*.less', '**/*.less'],
-          dest: ".tmp/styles",
-          ext: ".css"
-        }]
-      },
-      production: {
-        options: {
-          paths: ["<%= yeoman.app %>/styles"],
-          cleancss: true
-        },
-        files: {
-          ".tmp/styles/styles.css": "<%= yeoman.app %>/styles/**/*.less"
-        }
-      }
-    },
-
-    neuter: {
-      app: {
-        options: {
-          filepathTransform: function (filepath) {
-            return yeomanConfig.app + '/' + filepath;
-          }
-        },
-        src: '<%= yeoman.app %>/scripts/**/*.js',
-        dest: '.tmp/scripts/combined-scripts.js'
-      }
-    }
-  });
-
-  grunt.registerTask('server', function (target) {
-    grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
-    grunt.task.run(['serve:' + target]);
-  });
-
-  grunt.registerTask('serve', function (target) {
-    if (target === 'dist') {
-      return grunt.task.run(['build', 'open', 'connect:dist:keepalive']);
-    }
-
-    grunt.task.run([
-      'clean:server',
-      'replace:app',
-      'concurrent:server',
-      'neuter:app',
-      'less:development',
-      'connect:livereload',
-      'open',
-      'copy:development',
-      'watch'
-    ]);
-  });
-
-  grunt.registerTask('test', [
-    'clean:server',
-    'replace:app',
-    'concurrent:test',
-    'connect:test',
-    'neuter:app',
-    'mocha'
-  ]);
-
-  grunt.registerTask('build', [
-    'clean:dist',
-    'replace:app',
-    'useminPrepare',
-    'concurrent:dist',
-    'neuter:app',
-    'less:production',
-    'concat',
-    'cssmin',
-    //'uglify',
-    'copy:dist',
-    //'rev',
-    'usemin'
-  ]);
-
-  grunt.registerTask('default', [
-    'jshint',
-    'test',
-    'build'
-  ]);
-};

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/README.TXT
----------------------------------------------------------------------
diff --git a/tez-ui/README.TXT b/tez-ui/README.TXT
index a633648..3b2dc7c 100644
--- a/tez-ui/README.TXT
+++ b/tez-ui/README.TXT
@@ -1,7 +1,24 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
 Dev setup instructions
 ----------------------
 install the development dependencies nodejs, npm, grunt and bower
-from the top level directory run the following commands
+from webapp directory run the following commands
   * npm install
   * bower install
 
@@ -9,9 +26,9 @@ The timeline server (ATS) url by default points to http://localhost:8188. This c
 changed to point to another host by editing the App.AtsBaseUrl entry in the
 app/scripts/app.js file.
 
-For development run 'grunt serve'. This runs a dev server on port 9001. 
+For development run 'grunt serve'. This runs a dev server on port 9001.
 navigate to http://localhost:9001 if a browser does not open automatically.
 Any changes made will be live-reloaded on the browser.
 
-For creating a distribution version, run 'grunt build'. The distributable 
+For creating a distribution version, run 'grunt build'. The distributable
 version will be placed under the dist directory.

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/img/apache_tez_logo_lowres.png
----------------------------------------------------------------------
diff --git a/tez-ui/app/img/apache_tez_logo_lowres.png b/tez-ui/app/img/apache_tez_logo_lowres.png
deleted file mode 100644
index 45fd701..0000000
Binary files a/tez-ui/app/img/apache_tez_logo_lowres.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/img/glyphicons-halflings.png
----------------------------------------------------------------------
diff --git a/tez-ui/app/img/glyphicons-halflings.png b/tez-ui/app/img/glyphicons-halflings.png
deleted file mode 100644
index 79bc568..0000000
Binary files a/tez-ui/app/img/glyphicons-halflings.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/index.html
----------------------------------------------------------------------
diff --git a/tez-ui/app/index.html b/tez-ui/app/index.html
deleted file mode 100644
index 1653e94..0000000
--- a/tez-ui/app/index.html
+++ /dev/null
@@ -1,71 +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.
--->
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <title>Tez UI</title>
-
-    <!-- build:css styles/main.css -->
-    <link rel="stylesheet" href="styles/main.css">
-    <link rel="stylesheet" href="styles/swimlanes.css">
-    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
-    <link rel="stylesheet" href="bower_components/ember-table/dist/ember-table.css">
-    <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css">
-    <!-- endbuild -->
-
-  </head>
-
-  <body>
-    <!-- build:js(app) scripts/components.js -->
-    <script src="bower_components/cldr/plurals.js"></script>
-    <script src="bower_components/jquery/jquery.js"></script>
-    <script src="bower_components/jquery-ui/jquery-ui.js"></script>
-    <script src="bower_components/bootstrap/js/dropdown.js"></script>
-    <script src="bower_components/bootstrap/js/button.js"></script>
-    <script src="bower_components/bootstrap/js/tooltip.js"></script>
-    <script src="bower_components/jquery-ui/ui/datepicker.js"></script>
-    <script src="bower_components/moment/moment.js"></script>
-    <script src="bower_components/handlebars/handlebars.js"></script>
-    <script src="@@ember"></script>
-    <script src="@@ember_data"></script>
-    <script src="bower_components/ember-json-mapper/ember-json-mapper.js"></script>
-    <script src="bower_components/ember-i18n/lib/i18n.js"></script>
-    <script src="bower_components/ember-addons.bs_for_ember/dist/js/bs-core.min.js"></script>
-    <script src="bower_components/ember-addons.bs_for_ember/dist/js/bs-basic.min.js"></script>
-    <script src="bower_components/ember-addons.bs_for_ember/dist/js/bs-button.min.js"></script>
-    <script src="bower_components/ember-addons.bs_for_ember/dist/js/bs-modal.min.js"></script>
-    <script src="bower_components/ember-addons.bs_for_ember/dist/js/bs-nav.min.js"></script>
-    <script src="bower_components/ember-addons.bs_for_ember/dist/js/bs-items-action-bar.min.js"></script>
-    <script src="bower_components/antiscroll/antiscroll.js"></script>
-    <script src="bower_components/jquery-mousewheel/jquery.mousewheel.js"></script>
-    <script src="bower_components/ember-table/dist/ember-table.js"></script>
-    <script src="bower_components/ember-addons.bs_for_ember/dist/js/bs-nav.min.js"></script>
-    <script src="bower_components/d3/d3.js"></script>
-    <!-- endbuild -->
-
-    <!-- build:js(.tmp) scripts/templates.js -->
-    <script src="scripts/compiled-templates.js"></script>
-    <!-- endbuild -->
-
-    <!-- build:js(.tmp) scripts/main.js -->
-    <script src="scripts/combined-scripts.js"></script>
-    <!-- endbuild -->
-  </body>
-</html>
-    

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/app.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/app.js b/tez-ui/app/scripts/app.js
deleted file mode 100644
index c06678e..0000000
--- a/tez-ui/app/scripts/app.js
+++ /dev/null
@@ -1,54 +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 App = window.App = Em.Application.createWithMixins(Bootstrap, {
-	// Basic logging, e.g. "Transitioned into 'post'"
-  LOG_TRANSITIONS: true,
-
-  // Extremely detailed logging, highlighting every internal
-  // step made while transitioning into a route, including
-  // `beforeModel`, `model`, and `afterModel` hooks, and
-  // information about redirects and aborted transitions
-  LOG_TRANSITIONS_INTERNAL: true
-});
-
-App.AtsBaseUrl = "http://localhost:8188";
-
-require('scripts/router');
-require('scripts/store');
-
-App.Helpers = Em.Namespace.create();
-App.Mappers = Em.Namespace.create();
-
-//TODO: initializer.
-
-/* Order and include */
-/* TODO: cleanup */
-require('scripts/translations');
-require('scripts/mixins/*');
-require('scripts/helpers/*');
-require('scripts/views/**/*');
-require('scripts/models/**/*');
-require('scripts/mappers/server_data_mapper.js');
-require('scripts/mappers/**/*');
-require('scripts/controllers/**/*');
-require('scripts/components/*');
-require('scripts/adapters/*');
-
-App.ApplicationAdapter = App.TimelineRESTAdapter.extend();
-App.ApplicationSerializer = App.TimelineSerializer.extend();

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/components/counter-table.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/components/counter-table.js b/tez-ui/app/scripts/components/counter-table.js
deleted file mode 100644
index 2ee6b76..0000000
--- a/tez-ui/app/scripts/components/counter-table.js
+++ /dev/null
@@ -1,83 +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.
- */
-
-App.CounterTableComponent = Ember.Table.EmberTableComponent.extend({
-	hasFooter: false,
-	hasHeader: true,
-	forceFillColumns: true,
-	data: null,
-
-	columns: function() {
-		var groupColumn = Em.Table.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Group',
-      getCellContent: function(row) {
-      	return row.get('counterGroup');
-      }
-    });
-
-		var nameColumn = Em.Table.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Counter Name',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span {{bind-attr class=":ember-table-content view.cellContent.isCG:countertable-group-header:countertable-row"}}>\
-          	{{view.cellContent.name}}\
-           </span>')
-      }),
-      getCellContent: function(row) {
-      	return {
-      		isCG: row.get('counters') != undefined,
-      		name: row.get('name')
-      	};
-      }
-    });
-
-		var valueColumn = Em.Table.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Value',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span {{bind-attr class=":ember-table-content view.cellContent.isCG:countertable-group-header"}}>\
-          	{{view.cellContent.value}}\
-           </span>')
-      }),
-      getCellContent: function(row) {
-      	return {
-      		isCG: row.get('counters') != undefined,
-      		value: row.get('value')
-      	};
-      }
-    });
-
-    return [nameColumn, valueColumn];
-	}.property(),
-
-	content: function() {
-		var allCounters = [];
-		if (!!this.data) {
-			this.data.forEach(function(cg){
-				allCounters.push(cg);
-				[].push.apply(allCounters, cg.get('counters').content);
-			});
-		}
-		return allCounters;
-	}.property('data'),
-});
-
-Em.Handlebars.helper('counter-table-component', App.CounterTableComponent);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/components/extended-table.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/components/extended-table.js b/tez-ui/app/scripts/components/extended-table.js
deleted file mode 100644
index 5047af9..0000000
--- a/tez-ui/app/scripts/components/extended-table.js
+++ /dev/null
@@ -1,190 +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.
- */
-
-App.ExTable = Ember.Namespace.create();
-
-App.ExTable.FilterField = Em.TextField.extend({
-	classNames: ['filter'],
-  classNameBindings: ['isPopulated','isInputDirty:input-dirty'],
-  type: 'search',
-  results: 1,
-  attributeBindings: ['autofocus', 'results'],
-  valueBinding: Em.Binding.oneWay('filterValue'),
-  isPopulated: function() {
-  	return !Em.isEmpty(this.get('value'));
-  }.property('value'),
-  insertNewline: function(event) {
-    if (this.get('isInputDirty')) {
-      this.set('filterValue', this.get('value'));
-      this.get('parentView.controller').send('filterUpdated', 
-        this.get('parentView.content'), this.get('value'));
-    }
-  },
-  cancel: function() {
-    // cancel is ignored. user needs to press enter. This is done in order to avoid 
-    // two requests when user wants to clear the current input and enter new value.
-  },
-  isInputDirty: function() {
-  	return $.trim(this.get('value')) != $.trim(this.get('filterValue'));
-  }.property('value', 'filterValue')
-});
-
-App.ExTable.FilterRow = Ember.View.extend(Ember.AddeparMixins.StyleBindingsMixin, {
-  templateName: 'components/extended-table/filter-row',
-  classNames: ['ember-table-table-row', 'ember-table-header-row'],
-  styleBindings: ['width'],
-  columns: Ember.computed.alias('content'),
-  width: Ember.computed.alias('controller._rowWidth'),
-  scrollLeft: Ember.computed.alias('controller._tableScrollLeft'),
-  onScrollLeftDidChange: function() {
-    return this.$().scrollLeft(this.get('scrollLeft'));
-  }.observes('scrollLeft'),
-  onScroll: function(event) {
-    this.set('scrollLeft', event.target.scrollLeft);
-    return event.preventDefault();
-  }
-});
-
-App.ExTable.FilterBlock = Ember.Table.TableBlock.extend({
-  classNames: ['ember-table-header-block'],
-  itemViewClass: 'App.ExTable.FilterRow',
-  content: function() {
-    return [this.get('columns')];
-  }.property('columns')
-});
-
-App.ExTable.FilterTableContainer = Ember.Table.TableContainer.extend(Ember.Table.ShowHorizontalScrollMixin, {
-  templateName: 'components/extended-table/filter-container',
-  classNames: ['ember-table-table-container', 'ember-table-fixed-table-container', 'ember-table-header-container'],
-  height: Ember.computed.alias('controller._filterHeight'),
-  width: Ember.computed.alias('controller._tableContainerWidth')
-});
-
-App.ExTable.FilterCell = Ember.View.extend(Ember.AddeparMixins.StyleBindingsMixin, {
-  templateName: 'components/extended-table/filter-cell',
-  classNames: ['ember-table-cell', 'ember-table-header-cell'],
-  classNameBindings: ['column.textAlign'],
-  styleBindings: ['width', 'height'],
- 	column: Ember.computed.alias('content'),
-  width: Ember.computed.alias('column.columnWidth'),
-  height: function() {
-  	return this.get('controller._filterHeight');
-  }.property('controller._filterHeight'),
-  // Currently resizing is not handled automatically. if required will need to do here.
-});
-
-App.ExTable.ColumnDefinition = Ember.Table.ColumnDefinition.extend({
-  init: function() {
-    if (!!this.filterID) {
-      var columnFilterValueBinding = Em.Binding
-        .oneWay('controller._parentView.context.' + this.filterID)
-        .to('columnFilterValue');
-      columnFilterValueBinding.connect(this);
-    }
-  },
-  textAlign: 'text-align-left',
-  filterCellView: 'App.ExTable.FilterCell',
-  filterCellViewClass: Ember.computed.alias('filterCellView'),
-  filterID: null,
-});
-
-App.ExTable.TableComponent = Ember.Table.EmberTableComponent.extend({
-	layoutName: 'components/extended-table/extable',
-	filters: {},
-
-	hasFilter: true,
-	minFilterHeight: 30, //TODO: less changes
-
-  actions: {
-    filterUpdated: function(columnDef, value) {
-      var filterID = columnDef.get('filterID');
-      filterID = filterID || columnDef.get('headerCellName').underscore();
-      if (this.get('onFilterUpdated')) {
-      	this.sendAction('onFilterUpdated', filterID, value);
-      }
-    }
-  },
-
-	// private variables
-	// Dynamic filter height that adjusts according to the filter content height
-	_contentFilterHeight: null,
-  _filterHeight: function() {
-    var minHeight = this.get('minFilterHeight');
-    var contentFilterHeight = this.get('_contentFilterHeight');
-    if (contentFilterHeight < minHeight) {
-      return minHeight;
-    } else {
-      return contentFilterHeight;
-    }
-  }.property('_contentFilterHeight', 'minFilterHeight'),
-
-	// some of these below are private functions extend. however to add the filterrow we need them.
-	// tables-container height adjusts to the content height
-	_tablesContainerHeight: function() {
-    var contentHeight, height;
-    height = this.get('_height');
-    contentHeight = this.get('_tableContentHeight') + this.get('_headerHeight') + this.get('_footerHeight') 
-    	+ this.get('_filterHeight');
-    if (contentHeight < height) {
-      return contentHeight;
-    } else {
-      return height;
-    }
-  }.property('_height', '_tableContentHeight', '_headerHeight', '_footerHeight', '_filterHeight'),
-
-  _bodyHeight: function() {
-    var bodyHeight;
-    bodyHeight = this.get('_tablesContainerHeight');
-    if (this.get('hasHeader')) {
-      bodyHeight -= this.get('_headerHeight');
-    }
-    if (this.get('hasFilter')) { 
-      bodyHeight -= this.get('_filterHeight');
-    }
-    if (this.get('hasFooter')) {
-      bodyHeight -= this.get('footerHeight');
-    }
-    return bodyHeight;
-  }.property('_tablesContainerHeight', '_hasHorizontalScrollbar', '_headerHeight', 'footerHeight', '_filterHeight',
-  	'hasHeader', 'hasFooter', 'hasFilter'), 
-
-  _hasVerticalScrollbar: function() {
-    var contentHeight, height;
-    height = this.get('_height');
-    contentHeight = this.get('_tableContentHeight') + this.get('_headerHeight') + this.get('_footerHeight') 
-    	+ this.get('_filterHeight');
-    if (height < contentHeight) {
-      return true;
-    } else {
-      return false;
-    }
-  }.property('_height', '_tableContentHeight', '_headerHeight', '_footerHeight', '_filterHeight'),
-
-  _tableContentHeight: function() {
-    return this.get('rowHeight') * this.get('bodyContent.length');
-  }.property('rowHeight', 'bodyContent.length')
-});
-
-App.ExTable.FilterColumnMixin = Ember.Mixin.create({
-		isFilterable: true,
-		filterPresent: function() {
-			return !Em.isEmpty(this.get('columnFilterValue'));
-		}.property('columnFilterValue'),
-});
-
-Ember.Handlebars.helper('extended-table-component', App.ExTable.TableComponent);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/components/page-nav.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/components/page-nav.js b/tez-ui/app/scripts/components/page-nav.js
deleted file mode 100644
index a6c0f68..0000000
--- a/tez-ui/app/scripts/components/page-nav.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-App.PageNavComponent = Em.Component.extend({
-	layoutName: 'components/page-nav',
-	
-	actions: {
-		gotoNext: function() {
-			this.sendAction('navNext');
-		},
-		gotoPrev: function() {
-			this.sendAction('navPrev');
-		},
-		gotoFirst: function() {
-			this.sendAction('navFirst');
-		}
-	}
-});
-
-Em.Handlebars.helper('page-nav-component', App.PageNavComponent);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/dag_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/dag_controller.js b/tez-ui/app/scripts/controllers/dag_controller.js
deleted file mode 100644
index bbf8e12..0000000
--- a/tez-ui/app/scripts/controllers/dag_controller.js
+++ /dev/null
@@ -1,42 +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.
- */
-
-App.DagController = Em.ObjectController.extend(App.Helpers.DisplayHelper, {
-	controllerName: 'DagController',
-
-	pageTitle: 'Dag',
-
-	loading: true,
-
-	updateLoading: function() {
-    this.set('loading', false);
-  }.observes('content'),
-
-	pageSubTitle: function() {
-		return this.get('name');
-	}.property('name'),
-
-	childDisplayViews: [
-		Ember.Object.create({title: 'Details', linkTo: 'dag.index'}),
-		Ember.Object.create({title: 'Vertices', linkTo: 'dag.vertices'}),
-		Ember.Object.create({title: 'Tasks', linkTo: 'dag.tasks'}),
-		Ember.Object.create({title: 'Counters', linkTo: 'dag.counters'}),
-		Ember.Object.create({title: 'Swimlane', linkTo: 'dag.swimlane'})
-	],
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/dag_index_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/dag_index_controller.js b/tez-ui/app/scripts/controllers/dag_index_controller.js
deleted file mode 100644
index 14a54ea..0000000
--- a/tez-ui/app/scripts/controllers/dag_index_controller.js
+++ /dev/null
@@ -1,61 +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.
- */
-
- //TODO: watch individual counters.
-App.DagIndexController = Em.ObjectController.extend({
-	controllerName: 'DagIndexController',
-
-	taskIconStatus: function() {
-		return App.Helpers.misc.getStatusClassForEntity(this.get('model'));
-	}.property('id', 'status', 'counterGroups'),
-
-	totalTasks: function() {
-		return App.Helpers.misc.getCounterValueForDag(this.get('counterGroups'), 
-			this.get('id'), 'org.apache.tez.common.counters.DAGCounter', 'TOTAL_LAUNCHED_TASKS')
-	}.property('id', 'counterGroups'),
-
-	sucessfulTasks: function() {
-		return App.Helpers.misc.getCounterValueForDag(this.get('counterGroups'), this.get('id'),
-			'org.apache.tez.common.counters.DAGCounter', 'NUM_SUCCEEDED_TASKS')
-	}.property('id', 'counterGroups'),
-
-	failedTasks: function() {
-		return App.Helpers.misc.getCounterValueForDag(this.get('counterGroups'), this.get('id'),
-			'org.apache.tez.common.counters.DAGCounter', 'NUM_FAILED_TASKS')
-	}.property('id', 'counterGroups'),
-
-	killedTasks: function() {
-		return App.Helpers.misc.getCounterValueForDag(this.get('counterGroups'), this.get('id'),
-			'org.apache.tez.common.counters.DAGCounter', 'NUM_KILLED_TASKS')
-	}.property('id', 'counterGroups'),
-
-	hasFailedTasks: function() {
-		return this.get('failedTasks') > 0;
-	}.property('id', 'counterGroups'),
-
-  failedTasksLink: function() {
-    return '/#tasks?status=FAILED&parentType=TEZ_DAG_ID&parentID=' + this.get('id');
-  }.property(),
-
-	actions: {
-		showFailedTasks: function() {
-			alert('not implemented');
-		}
-	},
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/dag_swimlane_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/dag_swimlane_controller.js b/tez-ui/app/scripts/controllers/dag_swimlane_controller.js
deleted file mode 100644
index a49d54d..0000000
--- a/tez-ui/app/scripts/controllers/dag_swimlane_controller.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-App.DagSwimlaneController = Em.ArrayController.extend({
-  needs: "dag",
-  controllerName: "DagSwimlaneController",
-  pageTitle: "Task Attempts",
-  pageSubTitle: "All Task Attempts",
-  dag_id: Em.computed.alias('controllers.dag.id'),
-
-  getFilterParams: function(params) {
-    var dag_id = this.get('dag_id');
-    var filterParams = {};
-    if (dag_id) {
-      filterParams['primaryFilter'] = 'TEZ_DAG_ID:' + dag_id;
-    }
-
-    return filterParams;
-  },
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/dag_tasks.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/dag_tasks.js b/tez-ui/app/scripts/controllers/dag_tasks.js
deleted file mode 100644
index 43e6809..0000000
--- a/tez-ui/app/scripts/controllers/dag_tasks.js
+++ /dev/null
@@ -1,123 +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.
- */
-
-App.DagTasksController = Em.ObjectController.extend(App.PaginatedContentMixin, {
-  needs: "dag",
-
-  // required by the PaginatedContentMixin
-  childEntityType: 'task',
-
-  queryParams: {
-    status_filter: 'status',
-    vertex_id_filter: 'vertex_id',
-  },
-  status_filter: null,
-  vertex_id_filter: null,
-
-  loadData: function() {
-    var filters = {
-      primary: {
-        TEZ_DAG_ID: this.get('controllers.dag.id'),
-        TEZ_VERTEX_ID: this.vertex_id_filter,
-      },
-      secondary: {
-        status: this.status_filter
-      }
-    }
-    this.setFiltersAndLoadEntities(filters);
-  },
-
-  actions : {
-    filterUpdated: function(filterID, value) {
-      // any validations required goes here.
-      if (!!value) {
-        this.set(filterID, value);
-      } else {
-        this.set(filterID, null);
-      }
-      this.loadData();
-    }
-  },
-
-	columns: function() {
-		var idCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Task ID',
-      tableCellViewClass: Em.Table.TableCell.extend({
-      	template: Em.Handlebars.compile(
-      		"{{#link-to 'task' view.cellContent class='ember-table-content'}}{{view.cellContent}}{{/link-to}}")
-      }),
-      contentPath: 'id',
-    });
-
-    var vertexCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin,{
-      headerCellName: 'Vertex ID',
-      filterID: 'vertex_id_filter',
-      contentPath: 'vertexID'
-    });
-
-    var startTimeCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Start Time',
-      getCellContent: function(row) {
-      	return App.Helpers.date.dateFormat(row.get('startTime'));
-      }
-    });
-
-    var runTimeCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Run Time',
-      getCellContent: function(row) {
-        var st = row.get('startTime');
-        var et = row.get('endTime');
-        if (st && et) {
-          return App.Helpers.date.durationSummary(st, et);
-        }
-      }
-    });
-
-    var statusCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin,{
-      headerCellName: 'Status',
-      filterID: 'status_filter',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span class="ember-table-content">&nbsp;\
-          <i {{bind-attr class=":task-status view.cellContent.statusIcon"}}></i>\
-          &nbsp;&nbsp;{{view.cellContent.status}}</span>')
-      }),
-      getCellContent: function(row) {
-      	return { 
-          status: row.get('status'),
-          statusIcon: App.Helpers.misc.getStatusClassForEntity(row)
-        };
-      }
-    });
-
-    var actionsCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Actions',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span class="ember-table-content">\
-          {{#link-to "task.counters" view.cellContent}}counters{{/link-to}}&nbsp;\
-          {{#link-to "task.attempts" view.cellContent}}attempts{{/link-to}}\
-          </span>'
-          )
-      }),
-      contentPath: 'id'
-    });
-
-		return [idCol, vertexCol, startTimeCol, runTimeCol, statusCol, actionsCol];
-	}.property(),
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/dag_vertices.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/dag_vertices.js b/tez-ui/app/scripts/controllers/dag_vertices.js
deleted file mode 100644
index 5751de7..0000000
--- a/tez-ui/app/scripts/controllers/dag_vertices.js
+++ /dev/null
@@ -1,117 +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.
- */
-
-App.DagVerticesController = Em.ObjectController.extend(App.PaginatedContentMixin, {
-  needs: "dag",
-
-  // required by the PaginatedContentMixin
-  childEntityType: 'vertex',
-
-  queryParams: {
-    status_filter: 'status'
-  },
-
-  status_filter: null,
-
-  loadData: function() {
-    var filters = {
-      primary: {
-        TEZ_DAG_ID: this.get('controllers.dag.id')
-      },
-      secondary: {
-        status: this.status_filter
-      }
-    }
-    this.setFiltersAndLoadEntities(filters);
-  },
-
-  actions : {
-    filterUpdated: function(filterID, value) {
-      // any validations required goes here.
-      if (!!value) {
-        this.set(filterID, value);
-      } else {
-        this.set(filterID, null);
-      }
-      this.loadData();
-    }
-  },
-
-  columns: function() {
-    var idCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Vertex Name',
-      tableCellViewClass: Em.Table.TableCell.extend({
-      	template: Em.Handlebars.compile(
-      		"{{#link-to 'vertex' view.cellContent.id class='ember-table-content'}}{{view.cellContent.name}}{{/link-to}}")
-      }),
-      getCellContent: function(row) {
-        return {
-          id: row.get('id'),
-          name: row.get('name')
-        };
-      }
-    });
-
-    var nameCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Vertex ID',
-      contentPath: 'id',
-    });
-
-    var startTimeCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Submission Time',
-      getCellContent: function(row) {
-      	return App.Helpers.date.dateFormat(row.get('startTime'));
-      }
-    });
-
-    var runTimeCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Run Time',
-      getCellContent: function(row) {
-        var st = row.get('startTime');
-        var et = row.get('endTime');
-        if (st && et) {
-          return App.Helpers.date.durationSummary(st, et);
-        }
-      }
-    });
-
-    var numTasksCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Tasks',
-      contentPath: 'numTasks'
-    });
-
-    var statusCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin,{
-      headerCellName: 'Status',
-      filterID: 'status_filter',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span class="ember-table-content">&nbsp;\
-          <i {{bind-attr class=":task-status view.cellContent.statusIcon"}}></i>\
-          &nbsp;&nbsp;{{view.cellContent.status}}</span>')
-      }),
-      getCellContent: function(row) {
-      	return { 
-          status: row.get('status'),
-          statusIcon: App.Helpers.misc.getStatusClassForEntity(row)
-        };
-      }
-    });
-
-		return [idCol, nameCol, startTimeCol, runTimeCol, numTasksCol, statusCol];
-	}.property(),
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/dags_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/dags_controller.js b/tez-ui/app/scripts/controllers/dags_controller.js
deleted file mode 100644
index 896db7f..0000000
--- a/tez-ui/app/scripts/controllers/dags_controller.js
+++ /dev/null
@@ -1,152 +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.
- */
-
-App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
-  childEntityType: 'dag',
-
-	controllerName: 'DagsController',
-
-	pageTitle: 'Dags',
-
-	pageSubTitle: 'All Dags',
-
-  // query parameters supported through url. The same named variables in this controller get
-  // bound automatically to the ones defined in the route.
-  queryParams: {
-    count: true,
-    fromID: true,
-    status_filter: 'status',
-    user_filter: 'user'
-  },
-
-  // paging related values. These are bound automatically to the values in url. via the queryParams
-  // defined in the route. 
-  count: 10,
-
-  fromID: null,
-
-  status_filter: null,
-
-  user_filter: null,
-
-  fields: 'events,primaryfilters,otherinfo',
-
-  // The dropdown contents for number of items to show.
-  countOptions: [5, 10, 25, 50, 100],
-
-  loadData: function() {
-    var filters = {
-      primary: {
-        user: this.user_filter
-      },
-      secondary: {
-        status: this.status_filter
-      }
-    }
-    this.setFiltersAndLoadEntities(filters);
-  },
-
-  countUpdated: function() {
-    this.loadData();
-  }.observes('count'),
-
-  actions : {
-    filterUpdated: function(filterID, value) {
-      // any validations required goes here.
-      if (!!value) {
-        this.set(filterID, value);
-      } else {
-        this.set(filterID, null);
-      }
-      this.loadData();
-    },
-  },
-
-	/* table view for dags */
-  columns: function() {
-    var store = this.get('store');
-    var columnHelper = function(columnName, valName) {
-      return App.ExTable.ColumnDefinition.create({
-        textAlign: 'text-align-left',
-        headerCellName: columnName,
-        contentPath: valName
-      });
-    }
-
-    var nameCol = App.ExTable.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Dag Name',
-      tableCellViewClass: Em.Table.TableCell.extend({
-      	template: Em.Handlebars.compile(
-          "{{#link-to 'dag' view.cellContent.id class='ember-table-content'}}{{view.cellContent.name}}{{/link-to}}")
-      }),
-      getCellContent: function(row) {
-      	return {
-          id: row.get('id'),
-          name: row.get('name')
-        };
-      }
-    });
-    var idCol = columnHelper('Dag ID', 'id');
-    var userCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin, {
-      textAlign: 'text-align-left',
-      headerCellName: 'Submitter',
-      filterID: 'user_filter',
-      contentPath: 'user'
-    }); 
-    var statusCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin,{
-      textAlign: 'text-align-left',
-      headerCellName: 'Status',
-      filterID: 'status_filter',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span class="ember-table-content">&nbsp;\
-          <i {{bind-attr class=":task-status view.cellContent.statusIcon"}}></i>\
-          &nbsp;&nbsp;{{view.cellContent.status}}</span>')
-      }),
-      getCellContent: function(row) {
-      	return { 
-          status: row.get('status'),
-          statusIcon: App.Helpers.misc.getStatusClassForEntity(row)
-        };
-      }
-    });
-    var submittedTimeCol = App.ExTable.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Submitted Time',
-      getCellContent: function(row) {
-        return App.Helpers.date.dateFormat(row.get('submittedTime'));
-      }
-    });
-    var runTimeCol = App.ExTable.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Run Time',
-      getCellContent: function(row) {
-        var st = row.get('startTime');
-        var et = row.get('endTime');
-        if (st && et) {
-          return App.Helpers.date.durationSummary(st, et);
-        }
-      }
-    });
-    var appIdCol = columnHelper('Application ID', 'applicationId');
-    return [nameCol, idCol, userCol, statusCol, submittedTimeCol, runTimeCol, appIdCol];
-  }.property(),
-
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/task_attempt_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/task_attempt_controller.js b/tez-ui/app/scripts/controllers/task_attempt_controller.js
deleted file mode 100644
index 8fa290e..0000000
--- a/tez-ui/app/scripts/controllers/task_attempt_controller.js
+++ /dev/null
@@ -1,39 +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.
- */
-
-App.TaskAttemptController = Em.ObjectController.extend(App.Helpers.DisplayHelper, {
-	controllerName: 'TaskAttemptController',
-
-	pageTitle: 'Task Attempt',
-
-	loading: true,
-
-	updateLoading: function() {
-    this.set('loading', false);
-  }.observes('content'),
-
-	pageSubTitle: function() {
-		return this.get('id');
-	}.property('id'),
-
-	childDisplayViews: [
-		Ember.Object.create({title: 'Details', linkTo: 'taskAttempt.index'}),
-		Ember.Object.create({title: 'Counters', linkTo: 'taskAttempt.counters'}),
-	],
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/task_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/task_controller.js b/tez-ui/app/scripts/controllers/task_controller.js
deleted file mode 100644
index f4e8358..0000000
--- a/tez-ui/app/scripts/controllers/task_controller.js
+++ /dev/null
@@ -1,40 +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.
- */
-
-App.TaskController = Em.ObjectController.extend(App.Helpers.DisplayHelper, {
-	controllerName: 'TaskController',
-
-	pageTitle: 'Task',
-
-	loading: true,
-
-	updateLoading: function() {
-    this.set('loading', false);
-  }.observes('content'),
-
-	pageSubTitle: function() {
-		return this.get('id');
-	}.property('id'),
-
-	childDisplayViews: [
-		Ember.Object.create({title: 'Details', linkTo: 'task.index'}),
-		Ember.Object.create({title: 'Task Attempts', linkTo: 'task.attempts'}),
-		Ember.Object.create({title: 'Counters', linkTo: 'task.counters'}),
-	],
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/task_index_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/task_index_controller.js b/tez-ui/app/scripts/controllers/task_index_controller.js
deleted file mode 100644
index fa36314..0000000
--- a/tez-ui/app/scripts/controllers/task_index_controller.js
+++ /dev/null
@@ -1,27 +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.
- */
-
- //TODO: watch individual counters.
-App.TaskIndexController = Em.ObjectController.extend({
-	controllerName: 'TaskIndexController',
-
-	taskIconStatus: function() {
-		return App.Helpers.misc.getStatusClassForEntity(this.get('model'));
-	}.property('id', 'status', 'counterGroups'),
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/task_task_attempts_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/task_task_attempts_controller.js b/tez-ui/app/scripts/controllers/task_task_attempts_controller.js
deleted file mode 100644
index f795319..0000000
--- a/tez-ui/app/scripts/controllers/task_task_attempts_controller.js
+++ /dev/null
@@ -1,117 +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.
- */
-
-App.TaskAttemptsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
-  // required by the PaginatedContentMixin
-  childEntityType: 'task_attempt',
-
-  needs: 'task',
-
-  queryParams: {
-    status_filter: 'status'
-  },
-  status_filter: null,
-
-  loadData: function() {
-    var filters = {
-      primary: {
-        TEZ_TASK_ID: this.get('controllers.task.id')
-      },
-      secondary: {
-        status: this.status_filter
-      }
-    }
-    this.setFiltersAndLoadEntities(filters);
-  },
-
-  actions : {
-    filterUpdated: function(filterID, value) {
-      // any validations required goes here.
-      if (!!value) {
-        this.set(filterID, value);
-      } else {
-        this.set(filterID, null);
-      }
-      this.loadData();
-    }
-  },
-
-	columns: function() {
-		var idCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Task ID',
-      tableCellViewClass: Em.Table.TableCell.extend({
-      	template: Em.Handlebars.compile(
-      		"{{#link-to 'taskAttempt' view.cellContent class='ember-table-content'}}{{view.cellContent}}{{/link-to}}")
-      }),
-      contentPath: 'id',
-    });
-
-    var startTimeCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Start Time',
-      getCellContent: function(row) {
-      	return App.Helpers.date.dateFormat(row.get('startTime'));
-      }
-    });
-
-    var endTimeCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'End Time',
-      getCellContent: function(row) {
-        return App.Helpers.date.dateFormat(row.get('endTime'));
-      }
-    });
-
-    var statusCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin,{
-      headerCellName: 'Status',
-      filterID: 'status_filter',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span class="ember-table-content">&nbsp;\
-          <i {{bind-attr class=":task-status view.cellContent.statusIcon"}}></i>\
-          &nbsp;&nbsp;{{view.cellContent.status}}</span>')
-      }),
-      getCellContent: function(row) {
-      	return { 
-          status: row.get('status'),
-          statusIcon: App.Helpers.misc.getStatusClassForEntity(row)
-        };
-      }
-    });
-
-    var nodeIdCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Node ID',
-      contentPath: 'nodeId'
-    });
-
-    var containerCol = App.ExTable.ColumnDefinition.create({
-      headerCellName: 'Container ID',
-      contentPath: 'containerId'
-    });
-
-		return [idCol, startTimeCol, endTimeCol, statusCol, nodeIdCol, containerCol];
-	}.property(),
-});
-
-
-App.TaskAttemptIndexController = Em.ObjectController.extend({
-  controllerName: 'TaskAttemptIndexController',
-
-  taskIconStatus: function() {
-    return App.Helpers.misc.getStatusClassForEntity(this.get('model'));
-  }.property('id', 'status', 'counterGroups'),
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/tasks_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/tasks_controller.js b/tez-ui/app/scripts/controllers/tasks_controller.js
deleted file mode 100644
index 3573759..0000000
--- a/tez-ui/app/scripts/controllers/tasks_controller.js
+++ /dev/null
@@ -1,112 +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.
- */
-
-App.TasksController = Em.ObjectController.extend(App.PaginatedContentMixin, {
-  // Required by the PaginatedContentMixin
-  childEntityType: 'task',
-
-	controllerName: 'TasksController',
-
-	pageTitle: 'Tasks',
-
-	pageSubTitle: 'All Tasks',
-
-  queryParams: {
-    parentType: true,
-    parentID: true,
-    status_filter: 'status'
-  },
-
-  parentType: null,
-  parentID: null,
-  status_filter: null,
-
-  loadData: function() {
-    var filters = {
-      primary: {},
-      secondary: {
-        status: this.status_filter
-      }
-    }
-    filters.primary[this.parentType] = this.parentID;
-    this.setFiltersAndLoadEntities(filters);
-  },
-
-	/* table view for tasks */
-  columns: function() {
-    var store = this.get('store');
-    var columnHelper = function(columnName, valName) {
-      return Em.Table.ColumnDefinition.create({
-        textAlign: 'text-align-left',
-        headerCellName: columnName,
-        getCellContent: function(row) {
-          return row.get(valName);
-        }
-      });
-    }
-
-    var idColumn = Em.Table.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Task Id',
-      tableCellViewClass: Em.Table.TableCell.extend({
-      	template: Em.Handlebars.compile(
-          "{{#link-to 'task' view.cellContent class='ember-table-content'}}{{view.cellContent}}{{/link-to}}")
-      }),
-      getCellContent: function(row) {
-      	return row.get('id');
-      }
-    });
-
-    var vertexColumn = columnHelper('Vertex ID', 'vertexID');
-
-    var startTimeColumn = Em.Table.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Submission Time',
-      getCellContent: function(row) {
-      	return App.Helpers.date.dateFormat(row.get('startTime'));
-      }
-    });
-
-    var endTimeColumn = Em.Table.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'End Time',
-      getCellContent: function(row) {
-        return App.Helpers.date.dateFormat(row.get('endTime'));
-      }
-    });
-
-    var statusColumn = Em.Table.ColumnDefinition.create({
-      textAlign: 'text-align-left',
-      headerCellName: 'Status',
-      tableCellViewClass: Em.Table.TableCell.extend({
-        template: Em.Handlebars.compile(
-          '<span class="ember-table-content">&nbsp;\
-          <i {{bind-attr class=":task-status view.cellContent.statusIcon"}}></i>\
-          &nbsp;&nbsp;{{view.cellContent.status}}</span>')
-      }),
-      getCellContent: function(row) {
-      	return { 
-          status: row.get('status'),
-          statusIcon: App.Helpers.misc.getStatusClassForEntity(row)
-        };
-      }
-    });
-    
-    return [idColumn, vertexColumn, startTimeColumn, endTimeColumn, statusColumn];
-  }.property(),
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/vertex_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/vertex_controller.js b/tez-ui/app/scripts/controllers/vertex_controller.js
deleted file mode 100644
index 905d8d3..0000000
--- a/tez-ui/app/scripts/controllers/vertex_controller.js
+++ /dev/null
@@ -1,40 +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.
- */
-
-App.VertexController = Em.ObjectController.extend(App.Helpers.DisplayHelper, {
-  controllerName: 'VertexController',
-
-  pageTitle: 'Vertex',
-
-  loading: true,
-
-  updateLoading: function() {
-    this.set('loading', false);
-  }.observes('content'),
-
-  pageSubTitle: function() {
-    return this.get('name');
-  }.property('name'),
-
-  childDisplayViews: [
-    Ember.Object.create({title: 'Details', linkTo: 'vertex.index'}),
-    Ember.Object.create({title: 'Tasks', linkTo: 'vertex.tasks'}),
-    Ember.Object.create({title: 'Counters', linkTo: 'vertex.counters'}),
-    Ember.Object.create({title: 'Swimlane', linkTo: 'vertex.swimlane'}),
-  ],
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/e18a1fa7/tez-ui/app/scripts/controllers/vertex_index_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/app/scripts/controllers/vertex_index_controller.js b/tez-ui/app/scripts/controllers/vertex_index_controller.js
deleted file mode 100644
index a4252d1..0000000
--- a/tez-ui/app/scripts/controllers/vertex_index_controller.js
+++ /dev/null
@@ -1,34 +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.
- */
-
-App.VertexIndexController = Em.ObjectController.extend({
-  controllerName: 'VertexIndexController',
-
-  //TODO: TEZ-1705 : Create a parent class and move this function there to avoid duplication.
-  iconStatus: function() {
-    return App.Helpers.misc.getStatusClassForEntity(this.get('model'));
-  }.property('id', 'status', 'counterGroups'),
-
-  hasFailedTasks: function() {
-    return this.get('failedTasks') > 0;
-  }.property('id', 'counterGroups'),
-  
-  failedTasksLink: function() {
-    return '/#tasks?status=FAILED&parentType=TEZ_VERTEX_ID&parentID=' + this.get('id');
-  }.property(),
-});
\ No newline at end of file


Mime
View raw message