You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by je...@apache.org on 2014/09/19 18:26:18 UTC

[4/4] git commit: TEZ-1594. Initial TezUI into TEZ-8 branch (jeagles)

TEZ-1594. Initial TezUI into TEZ-8 branch (jeagles)


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

Branch: refs/heads/TEZ-8
Commit: cf3318e1ba39a4c033e847d6f8332fbf1151050d
Parents: 625450c
Author: Jonathan Eagles <je...@gmail.com>
Authored: Fri Sep 19 11:25:42 2014 -0500
Committer: Jonathan Eagles <je...@gmail.com>
Committed: Fri Sep 19 11:25:42 2014 -0500

----------------------------------------------------------------------
 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 ++++++++++
 17 files changed, 991 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tez/blob/cf3318e1/tez-ui/original/application_attempt_page.html
----------------------------------------------------------------------
diff --git a/tez-ui/original/application_attempt_page.html b/tez-ui/original/application_attempt_page.html
new file mode 100644
index 0000000..956d54f
--- /dev/null
+++ b/tez-ui/original/application_attempt_page.html
@@ -0,0 +1,44 @@
+<!-- /**
+ * 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 http-equiv="content-type" content="text/html; charset=utf-8" />
+    <title>TEZ UI</title>
+    <script src="lib/jquery.js"></script>
+    <script src="application_attempt_page.js"></script>
+    <link rel="stylesheet" type="text/css" href="css/jquery.dataTables.min.css">
+    <script type="text/javascript" charset="utf8" src="lib/jquery.dataTables.min.js"></script>
+  </head>
+
+  <body>
+    <div>
+      <table id="dag_table" class="display">
+        <thead>
+          <tr>
+            <th>Dag ID</th>
+            <th>Dag Name</th>
+            <th>Start Time</th>
+            <th>Time Taken</th>
+            <th>Status</th>
+          </tr>
+        </thead>
+      </table>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/tez/blob/cf3318e1/tez-ui/original/application_attempt_page.js
----------------------------------------------------------------------
diff --git a/tez-ui/original/application_attempt_page.js b/tez-ui/original/application_attempt_page.js
new file mode 100644
index 0000000..fedcc32
--- /dev/null
+++ b/tez-ui/original/application_attempt_page.js
@@ -0,0 +1,51 @@
+/**
+ * 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.
+ */
+$(document).ready( function () {
+  var id=window.sessionStorage.getItem('application_attempt_id');
+  var hostname=window.sessionStorage.getItem('hostname');
+  var port=window.sessionStorage.getItem('port');
+  var url= 'http://'+hostname+':'+port+'/ws/v1/timeline/TEZ_APPLICATION_ATTEMPT/' + id + '?fields=relatedentities';
+  var dag_name,start_time,status,initTime,timetaken,epoch;
+  var dagtable = $('#dag_table').DataTable();
+  $.getJSON(url, function(entity) {
+    $.each(entity.relatedentities.TEZ_DAG_ID, function(i,dag_id) {
+      var dagurl= 'http://'+hostname+':'+port+'/ws/v1/timeline/TEZ_DAG_ID/'+dag_id;
+      $.getJSON(dagurl, function(dagent) {
+        dag_name=dagent.primaryfilters.dagName;					
+        epoch=dagent.otherinfo.startTime;
+        start_time=new Date(epoch);
+        status=dagent.otherinfo.status;
+        epoch=dagent.otherinfo.initTime;
+        initTime=new Date(epoch);
+        timetaken=dagent.otherinfo.timeTaken;
+				var callback= 'vcallback("' + dag_id + '");>';
+        dagtable.row.add([
+					'<a href="dag_page.html" onclick=' + callback + dag_id + " </a>",
+          dag_name,
+          start_time.toGMTString(),
+          timetaken,
+          status
+          ]).draw();
+      });
+    });
+  });
+});
+
+function vcallback(id) {
+	window.sessionStorage.setItem('dag_id', id);
+}

http://git-wip-us.apache.org/repos/asf/tez/blob/cf3318e1/tez-ui/original/application_page.html
----------------------------------------------------------------------
diff --git a/tez-ui/original/application_page.html b/tez-ui/original/application_page.html
new file mode 100644
index 0000000..482d70e
--- /dev/null
+++ b/tez-ui/original/application_page.html
@@ -0,0 +1,40 @@
+<!-- /**
+ * 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>
+  <script src="lib/jquery.js"></script>
+  <script src="application_page.js"></script>
+  <link rel="stylesheet" type="text/css" href="css/jquery.dataTables.min.css">
+  <script type="text/javascript" charset="utf8" src="lib/jquery.dataTables.min.js"></script>
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+    <title>TEZ UI</title>
+  </head>
+  <body>
+    <table id="table_id" class="display">
+      <thead>
+        <tr>
+          <th>Submit Time</th>
+          <th>Start Time</th>
+          <th>Application ID</th>
+          <th>User</th>
+        </tr>
+      </thead>
+    </table>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/tez/blob/cf3318e1/tez-ui/original/application_page.js
----------------------------------------------------------------------
diff --git a/tez-ui/original/application_page.js b/tez-ui/original/application_page.js
new file mode 100644
index 0000000..2df5466
--- /dev/null
+++ b/tez-ui/original/application_page.js
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+$(document).ready( function () {
+   var t = $('#table_id').DataTable();
+   var hostname=window.sessionStorage.getItem('hostname');
+   var port=window.sessionStorage.getItem('port');
+   var url='http://'+hostname+':'+port+'/ws/v1/timeline/TEZ_APPLICATION_ATTEMPT';
+
+   $.ajax({
+		type:'GET',
+		url:url,
+		dataType:'json',
+		success: function(data)
+		{
+			$.each(data.entities,function(i,entity){
+				var submittime,starttime, epoch_time, id, usr;
+				epoch_time=entity.otherinfo.appSubmitTime;
+				submittime=new Date(epoch_time);
+				epoch_time=entity.starttime;
+				starttime=new Date(epoch_time);
+				id=entity.entity;
+				usr=entity.primaryfilters.user[0];
+				var callback= 'cookiegen("'+ id+'");>';
+				t.row.add([
+					submittime.toGMTString(),
+					starttime.toGMTString(),
+					'<a href="application_attempt_page.html" onclick='+ callback + id+" </a>",
+					usr,
+				]).draw();
+			});	
+		},
+	});
+
+} );
+function cookiegen(id){
+	window.sessionStorage.setItem('application_attempt_id',id);
+}

http://git-wip-us.apache.org/repos/asf/tez/blob/cf3318e1/tez-ui/original/css/jquery.dataTables.min.css
----------------------------------------------------------------------
diff --git a/tez-ui/original/css/jquery.dataTables.min.css b/tez-ui/original/css/jquery.dataTables.min.css
new file mode 100644
index 0000000..a2c5489
--- /dev/null
+++ b/tez-ui/original/css/jquery.dataTables.min.css
@@ -0,0 +1 @@
+table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting{cursor:pointer;*cursor:hand}table.dataTable thead .sorting{background:url("../images/sort_both.png") no-repeat center right}table.dataTable thead .sorting_asc{background:url("../images/sort_asc.png") no-repeat center right}table.dataTable thead .sorting_desc{background:url("../images/sort_desc.png") no-repeat center right}table.dataTable thead .sorting_asc_disabled{background:url("../images/sort_asc_disabled.png") no-repeat center right}table.dataTable 
 thead .sorting_desc_disabled{background:url("../images/sort_desc_disabled.png") no-repeat center right}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbod
 y tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover,table.dataTable.hover tbody tr.odd:hover,table.dataTable.hover tbody tr.even:hover,table.dataTable.display tbody tr:hover,table.dataTable.display tbody tr.odd:hover,table.dataTable.display tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected,table.dataTable.hover tbody tr.odd:hover.selected,table.dataTable.hover tbody tr.even:hover.selected,table.dataTable.display tbody tr:hover.selected,table.dataTable.display tbody tr.odd:hover.selected,table.dataTable.display tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,tabl
 e.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.s
 tripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable
 .order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.display tbody tr.odd:hover>.sorting_1,table.dataTable.display tbody tr.even:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1,table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.display tbody tr.odd:hover>.sorting_2,table.dataTable.display tbody tr.even:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2,table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTa
 ble.display tbody tr:hover>.sorting_3,table.dataTable.display tbody tr.odd:hover>.sorting_3,table.dataTable.display tbody tr.even:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3,table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.display tbody tr.odd:hover.selected>.sorting_1,table.dataTable.display tbody tr.even:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.display tbody tr.odd:hover.selected>.sorting_2,table.dataTable.display tbody tr.even:hover.selected>.sorting_2,table.dataTable.orde
 r-column.hover tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.display tbody tr.odd:hover.selected>.sorting_3,table.dataTable.display tbody tr.even:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th,table.dataTa
 ble.compact tbody td{padding:4px 5px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-he
 ad-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:
 both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #cacaca;background-color:#fff;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradien
 t(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0
 %, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), c
 olor-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_
 wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width:
  640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}

http://git-wip-us.apache.org/repos/asf/tez/blob/cf3318e1/tez-ui/original/dag_page.html
----------------------------------------------------------------------
diff --git a/tez-ui/original/dag_page.html b/tez-ui/original/dag_page.html
new file mode 100644
index 0000000..9dbe9cc
--- /dev/null
+++ b/tez-ui/original/dag_page.html
@@ -0,0 +1,74 @@
+<!-- /**
+ * 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 http-equiv="content-type" content="text/html; charset=utf-8" />
+    <title>TEZ UI</title>
+    <script src="lib/jquery.js"></script>
+    <script src="dag_page.js"></script>
+    <link rel="stylesheet" type="text/css" href="css/jquery.dataTables.min.css">
+    <script type="text/javascript" charset="utf8" src="lib/jquery.dataTables.min.js"></script>
+  </head>
+
+  <body>
+    <div>
+      <center><h2 id=dagid>DAG Id</h2></center>
+      <table id="dag_overview" class="display">
+        <caption>Dag Overview</caption>
+        <thead>
+          <tr>
+            <th>Dag Id</th>
+            <th>Dag Name</th>
+            <th>Start Time</th>
+            <th>End Time</th>
+            <th>Time Taken</th>
+            <th>Status</th>
+          </tr>
+        </thead>
+      </table>
+    </div>
+    <div>
+      <table id='dag_vertex' class='display'>
+        <thead>
+          <tr>
+            <th>Vertex Id</th>
+            <th>Name</th>
+            <th>Start Time</th>
+            <th>End Time</th>
+            <th>Time Taken</th>
+            <th>Task Count</th>
+            <th>Status</th>
+          </tr>
+        </thead>
+      </table>
+    </div>
+    <div id="counters">
+      <table id='counter' class='display'>
+        <thead>
+          <tr>
+            <th>Counter Group</th>
+            <th>Counters</th>
+          </tr>
+        </thead>
+        <tbody id="counterbody">
+        </tbody>
+      </table>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/tez/blob/cf3318e1/tez-ui/original/dag_page.js
----------------------------------------------------------------------
diff --git a/tez-ui/original/dag_page.js b/tez-ui/original/dag_page.js
new file mode 100644
index 0000000..eb75fee
--- /dev/null
+++ b/tez-ui/original/dag_page.js
@@ -0,0 +1,85 @@
+/**
+ * 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.
+ */
+$(document).ready( function () {
+  var dag_id=window.sessionStorage.getItem('dag_id');
+  var hostname=window.sessionStorage.getItem('hostname');
+  var port=window.sessionStorage.getItem('port');
+  var dag_name,start_time,status,initTime,timetaken,epoch;
+  var vertex_table,counters_table,dct;
+  var dagurl= 'http://'+hostname+':'+port+'/ws/v1/timeline/TEZ_DAG_ID/'+dag_id;
+  $.getJSON(dagurl, function(dagent) {
+    dag_name=dagent.otherinfo.dagPlan.dagName;					
+    $('#dagid').text("DAG Id - " + dag_id);
+    startEpoch=dagent.otherinfo.startTime;
+    startTime=new Date(startEpoch);
+    endEpoch=dagent.otherinfo.initTime;
+    endTime=new Date(endEpoch);
+    timeTaken=dagent.otherinfo.timeTaken;
+    status=dagent.otherinfo.status;
+    var dag_overview = $('#dag_overview').DataTable(
+      { "paging": false,
+        "searching": false,
+        "ordering": false,
+        "info": false,
+      });
+    dag_overview.row.add([
+      dag_id,
+      dag_name,
+      startTime.toGMTString(),
+      endTime.toGMTString(),
+      timeTaken,
+      status
+      ]).draw();
+    vertex_table=$('#dag_vertex').DataTable();
+    var vurl='http://'+hostname+':'+port+'/ws/v1/timeline/TEZ_VERTEX_ID?primaryFilter=TEZ_DAG_ID:' + dag_id;
+
+    $.getJSON(vurl, function(vertex_entities) {
+      $.each(vertex_entities.entities, function(i, vertex) {
+        var callback ='vcallback("'+ vertex.entity +'");>';
+        var vertex_id='<a href="vertex_page.html" onclick='+ callback + vertex.entity +" </a>";
+        var vertexStartEpoch=vertex.otherinfo.startTime;
+        var vertexStartTime=new Date(vertexStartEpoch);
+        var vertexEndEpoch=vertex.otherinfo.endTime;
+        var vertexEndTime=new Date(vertexEndEpoch);
+        vertex_table.row.add([vertex_id, vertex.otherinfo.vertexName, vertexStartTime.toGMTString(), vertexEndTime.toGMTString(), vertex.otherinfo.timeTaken, vertex.otherinfo.numTasks, vertex.otherinfo.status]);
+      });
+      vertex_table.draw();
+    });
+    var counterGroupNum = 0;
+    $.each(dagent.otherinfo.counters.counterGroups, function(i, counterGroup){
+      $("<th>Counters</th></tr></thead><tbody><th>" + counterGroup.counterGroupDisplayName + "</th>");
+      $("<tr><th>Counters</th></tr></thead><tbody><th>" + counterGroup.counterGroupDisplayName + "</th><td class='table'><table id='countergroup" + counterGroupNum + "'><thead><tr><th>Name</th><th>Value</th></tr></thead></table></td></tr>").appendTo('#counterbody');
+      var counterGroupDT = $('#countergroup' + counterGroupNum).DataTable();
+      counterGroupNum++;
+      $.each(counterGroup.counters, function(i, counter) {
+        counterGroupDT.row.add([counter.counterDisplayName, counter.counterValue]);
+      });
+      counterGroupDT.draw();
+    });
+    counters_table=$('#counter').DataTable(
+        { "paging": false,
+          "searching": false,
+          "ordering": false,
+          "info": false,
+        });
+  });
+});
+
+function vcallback(id) {
+  window.sessionStorage.setItem('vertid', id);
+}