You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2012/11/08 03:40:50 UTC

svn commit: r1406897 - in /incubator/ambari/branches/AMBARI-666: ./ ambari-web/app/models/ ambari-web/app/styles/ ambari-web/app/templates/main/ ambari-web/app/templates/main/apps/ ambari-web/app/templates/main/apps/item/ ambari-web/app/utils/ ambari-w...

Author: yusaku
Date: Thu Nov  8 02:40:49 2012
New Revision: 1406897

URL: http://svn.apache.org/viewvc?rev=1406897&view=rev
Log:
AMBARI-990. Refactor App Browser. (yusaku)

Modified:
    incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt
    incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/bar.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/dag.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/list_row.hbs
    incubator/ambari/branches/AMBARI-666/ambari-web/app/utils/data_table.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/bar_view.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/dag_view.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item_view.js
    incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps_view.js

Modified: incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt (original)
+++ incubator/ambari/branches/AMBARI-666/AMBARI-666-CHANGES.txt Thu Nov  8 02:40:49 2012
@@ -388,6 +388,8 @@ AMBARI-666 branch (unreleased changes)
   AMBARI-676. Seperate directory for ambari-server. (jitendra)
 
   IMPROVEMENTS
+ 
+  AMBARI-990. Refactor App Browser. (yusaku)
 
   AMBARI-979. More refactoring of App Browser code. (yusaku)
 

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js Thu Nov  8 02:40:49 2012
@@ -18,6 +18,7 @@
 
 
 var App = require('app');
+var date = require('utils/date');
 
 App.Job = DS.Model.extend({
   jobId:DS.attr('string'),
@@ -44,10 +45,13 @@ App.Job = DS.Model.extend({
   mapCounters:DS.attr('number'),
   reduceCounters:DS.attr('number'),
   jobCounters:DS.attr('number'),
-  jobTimeline:DS.attr('string'),
-  jobTaskview:DS.attr('string'),
   input:DS.attr('number'),
-  output:DS.attr('number')
+  output:DS.attr('number'),
+  duration: function() {
+    return date.dateFormatInterval(parseInt((parseInt(this.get('finishTime')) - parseInt(this.get('launchTime')))/1000));
+  }.property('launchTime', 'finishTime'),
+  jobTimeline:DS.attr('string'),
+  jobTaskview:DS.attr('string')
 });
 
 App.Job.FIXTURES = [
@@ -63,20 +67,20 @@ App.Job.FIXTURES = [
     conf_path:'hdfs://localhost:9000/tmp/hadoop-jsmith/mapred/staging/jsmith/\.staging/job_201209201356_0001/job\.xml',
     submit_time:1348174627119,
     launch_time:1348174627650,
-    finishTime:1348174669539,
-    maps:2,
-    reduces:1,
+    finish_time:1348174669539,
+    maps:20,
+    reduces:11,
     status:'RUNNING',
     priority:null,
-    finishedMaps:2,
-    finishedReduces:1,
-    failedMaps:null,
-    failedReduces:null,
+    finished_maps:12,
+    finished_reduces:5,
+    failed_maps:null,    failed_reduces:null,
+
     maps_runtime:22299,
-    reducesRuntime:11470,
-    mapCounters:null,
-    reduceCounters:null,
-    jobCounters:null,
+    reduces_runtime:11470,
+    map_counters:null,
+    reduce_counters:null,
+    job_counters:null,
     job_timeline:'[[{"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x"
 :65,"y":0},{"x":66,"y":0},{"x":67,"y":0},{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x"
 :129,"y":0},{"x":130,"y":0},{"x":131,"y":0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":2},{"x":146,"y":2},{"x":147,"y":2},{"x":148,"y":2},{"x":149,"y":2},{"x":150,"y":2},{"x":151,"y":2},{"x":152,"y":2},{"x":153,"y":2},{"x":154,"y":2},{"x":155,"y":2},{"x":156,"y":2},{"x":157,"y":2},{"x":158,"y":2},{"x":159,"y":2},{"x":160,"y":2},{"x":161,"y":2},{"x":162,"y":2},{"x":163,"y":2},{"x":164,"y":2},{"x":165,"y":2},{"x":166,"y":2},{"x":167,"y":2},{"x":168,"y":2},{"x":169,"y":2},{"x":170,"y":2},{"x":171,"y":2},{"x":172,"y":2},{"x":173,"y":2},{"x":174,"y":2},{"x":175,"y":2},{"x":176,"y":2},{"x":177,"y":2},{"x":178,"y":2},{"x":179,"y":2},{"x":180,"y":2},{"x":181,"y":2},{"x":182,"y":2},{"x":183,"y":2},{"x":184,"y":2},{"x":185,"y":2},{"x":186,"y":2},{"x":187,"y":2},{"x":188,"y":2},{"x":189,"y":2},{"x":190,"y":2},{
 "x":191,"y":2},{"x":192,"y":2},{"x":193,"y":2},{"x":194,"y":2},{"x":195,"y":2},{"x":196,"y":2},{"x":197,"y":2},{"x":198,"y":2},{"x":199,"y":2},{"x":200,"y":2},{"x":201,"y":2},{"x":202,"y":2},{"x":203,"y":2},{"x":204,"y":2},{"x":205,"y":2},{"x":206,"y":2},{"x":207,"y":2},{"x":208,"y":2},{"x":209,"y":2},{"x":210,"y":2},{"x":211,"y":2},{"x":212,"y":2},{"x":213,"y":2},{"x":214,"y":2},{"x":215,"y":2},{"x":216,"y":2},{"x":217,"y":2},{"x":218,"y":2},{"x":219,"y":2},{"x":220,"y":2},{"x":221,"y":2},{"x":222,"y":2},{"x":223,"y":2},{"x":224,"y":2},{"x":225,"y":2},{"x":226,"y":2},{"x":227,"y":2},{"x":228,"y":2},{"x":229,"y":2},{"x":230,"y":2},{"x":231,"y":2},{"x":232,"y":2},{"x":233,"y":2},{"x":234,"y":2},{"x":235,"y":2},{"x":236,"y":2},{"x":237,"y":2},{"x":238,"y":2},{"x":239,"y":2},{"x":240,"y":2},{"x":241,"y":2},{"x":242,"y":2},{"x":243,"y":2},{"x":244,"y":2},{"x":245,"y":2},{"x":246,"y":2},{"x":247,"y":2},{"x":248,"y":2},{"x":249,"y":2},{"x":250,"y":2},{"x":251,"y":2},{"x":252,"y":2
 },{"x":253,"y":2},{"x":254,"y":2},{"x":255,"y":2},{"x":256,"y":2},{"x":257,"y":2},{"x":258,"y":2},{"x":259,"y":2},{"x":260,"y":2},{"x":261,"y":2},{"x":262,"y":2},{"x":263,"y":2},{"x":264,"y":2},{"x":265,"y":2},{"x":266,"y":2},{"x":267,"y":2},{"x":268,"y":2},{"x":269,"y":2},{"x":270,"y":2},{"x":271,"y":2},{"x":272,"y":2},{"x":273,"y":2},{"x":274,"y":1},{"x":275,"y":1},{"x":276,"y":1},{"x":277,"y":1},{"x":278,"y":1},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":0},{"x":289,"y":0},{"x":290,"y":0},{"x":291,"y":0},{"x":292,"y":0},{"x":293,"y":0},{"x":294,"y":0},{"x":295,"y":0},{"x":296,"y":0},{"x":297,"y":0},{"x":298,"y":0},{"x":299,"y":0},{"x":300,"y":0},{"x":301,"y":0},{"x":302,"y":0},{"x":303,"y":0},{"x":304,"y":0},{"x":305,"y":0},{"x":306,"y":0},{"x":307,"y":0},{"x":308,"y":0},{"x":309,"y":0},{"x":310,"y":0},{"x":311,"y":0},{"x":312,"y":0},{"x":313,"y":0},{"x":314,"y
 ":0},{"x":315,"y":0},{"x":316,"y":0},{"x":317,"y":0},{"x":318,"y":0},{"x":319,"y":0},{"x":320,"y":0},{"x":321,"y":0},{"x":322,"y":0},{"x":323,"y":0},{"x":324,"y":0},{"x":325,"y":0},{"x":326,"y":0},{"x":327,"y":0},{"x":328,"y":0},{"x":329,"y":0},{"x":330,"y":0},{"x":331,"y":0},{"x":332,"y":0},{"x":333,"y":0},{"x":334,"y":0},{"x":335,"y":0},{"x":336,"y":0},{"x":337,"y":0},{"x":338,"y":0},{"x":339,"y":0},{"x":340,"y":0},{"x":341,"y":0},{"x":342,"y":0},{"x":343,"y":0},{"x":344,"y":0},{"x":345,"y":0},{"x":346,"y":0},{"x":347,"y":0},{"x":348,"y":0},{"x":349,"y":0},{"x":350,"y":0},{"x":351,"y":0},{"x":352,"y":0},{"x":353,"y":0},{"x":354,"y":0},{"x":355,"y":0},{"x":356,"y":0},{"x":357,"y":0},{"x":358,"y":0},{"x":359,"y":0},{"x":360,"y":0},{"x":361,"y":0},{"x":362,"y":0},{"x":363,"y":0},{"x":364,"y":0},{"x":365,"y":0},{"x":366,"y":0},{"x":367,"y":0},{"x":368,"y":0},{"x":369,"y":0},{"x":370,"y":0},{"x":371,"y":0},{"x":372,"y":0},{"x":373,"y":0},{"x":374,"y":0},{"x":375,"y":0},{"x":376
 ,"y":0},{"x":377,"y":0},{"x":378,"y":0},{"x":379,"y":0},{"x":380,"y":0},{"x":381,"y":0},{"x":382,"y":0},{"x":383,"y":0},{"x":384,"y":0},{"x":385,"y":0},{"x":386,"y":0},{"x":387,"y":0},{"x":388,"y":0},{"x":389,"y":0},{"x":390,"y":0},{"x":391,"y":0},{"x":392,"y":0},{"x":393,"y":0},{"x":394,"y":0},{"x":395,"y":0},{"x":396,"y":0},{"x":397,"y":0},{"x":398,"y":0},{"x":399,"y":0},{"x":400,"y":0},{"x":401,"y":0},{"x":402,"y":0},{"x":403,"y":0},{"x":404,"y":0},{"x":405,"y":0},{"x":406,"y":0},{"x":407,"y":0},{"x":408,"y":0},{"x":409,"y":0},{"x":410,"y":0},{"x":411,"y":0},{"x":412,"y":0},{"x":413,"y":0},{"x":414,"y":0},{"x":415,"y":0},{"x":416,"y":0},{"x":417,"y":0},{"x":418,"y":0},{"x":419,"y":0},{"x":420,"y":0},{"x":421,"y":0},{"x":422,"y":0},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":
 438,"y":0},{"x":439,"y":0},{"x":440,"y":0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}],[
 {"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x":65,"y":0},{"x":66,"
 y":0},{"x":67,"y":0},{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x":129,"y":0},{"x":130
 ,"y":0},{"x":131,"y":0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":0},{"x":146,"y":0},{"x":147,"y":0},{"x":148,"y":0},{"x":149,"y":0},{"x":150,"y":0},{"x":151,"y":0},{"x":152,"y":0},{"x":153,"y":0},{"x":154,"y":0},{"x":155,"y":0},{"x":156,"y":0},{"x":157,"y":0},{"x":158,"y":0},{"x":159,"y":0},{"x":160,"y":0},{"x":161,"y":0},{"x":162,"y":0},{"x":163,"y":0},{"x":164,"y":0},{"x":165,"y":0},{"x":166,"y":0},{"x":167,"y":0},{"x":168,"y":0},{"x":169,"y":0},{"x":170,"y":0},{"x":171,"y":0},{"x":172,"y":0},{"x":173,"y":0},{"x":174,"y":0},{"x":175,"y":0},{"x":176,"y":0},{"x":177,"y":0},{"x":178,"y":0},{"x":179,"y":0},{"x":180,"y":0},{"x":181,"y":0},{"x":182,"y":0},{"x":183,"y":0},{"x":184,"y":0},{"x":185,"y":0},{"x":186,"y":0},{"x":187,"y":0},{"x":188,"y":0},{"x":189,"y":0},{"x":190,"y":0},{"x":191,"y":0},{"x":
 192,"y":0},{"x":193,"y":0},{"x":194,"y":0},{"x":195,"y":0},{"x":196,"y":0},{"x":197,"y":0},{"x":198,"y":0},{"x":199,"y":0},{"x":200,"y":0},{"x":201,"y":0},{"x":202,"y":0},{"x":203,"y":0},{"x":204,"y":0},{"x":205,"y":0},{"x":206,"y":0},{"x":207,"y":0},{"x":208,"y":0},{"x":209,"y":0},{"x":210,"y":0},{"x":211,"y":0},{"x":212,"y":0},{"x":213,"y":0},{"x":214,"y":0},{"x":215,"y":0},{"x":216,"y":0},{"x":217,"y":0},{"x":218,"y":0},{"x":219,"y":0},{"x":220,"y":0},{"x":221,"y":0},{"x":222,"y":0},{"x":223,"y":0},{"x":224,"y":0},{"x":225,"y":0},{"x":226,"y":0},{"x":227,"y":0},{"x":228,"y":0},{"x":229,"y":0},{"x":230,"y":0},{"x":231,"y":0},{"x":232,"y":0},{"x":233,"y":0},{"x":234,"y":0},{"x":235,"y":0},{"x":236,"y":0},{"x":237,"y":0},{"x":238,"y":0},{"x":239,"y":0},{"x":240,"y":0},{"x":241,"y":0},{"x":242,"y":0},{"x":243,"y":0},{"x":244,"y":0},{"x":245,"y":0},{"x":246,"y":0},{"x":247,"y":0},{"x":248,"y":0},{"x":249,"y":0},{"x":250,"y":0},{"x":251,"y":0},{"x":252,"y":0},{"x":253,"y":0},{"
 x":254,"y":0},{"x":255,"y":0},{"x":256,"y":0},{"x":257,"y":0},{"x":258,"y":0},{"x":259,"y":0},{"x":260,"y":0},{"x":261,"y":0},{"x":262,"y":0},{"x":263,"y":0},{"x":264,"y":0},{"x":265,"y":0},{"x":266,"y":0},{"x":267,"y":0},{"x":268,"y":0},{"x":269,"y":0},{"x":270,"y":0},{"x":271,"y":0},{"x":272,"y":0},{"x":273,"y":0},{"x":274,"y":0},{"x":275,"y":0},{"x":276,"y":0},{"x":277,"y":0},{"x":278,"y":0},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":1},{"x":289,"y":1},{"x":290,"y":1},{"x":291,"y":1},{"x":292,"y":1},{"x":293,"y":1},{"x":294,"y":1},{"x":295,"y":1},{"x":296,"y":1},{"x":297,"y":1},{"x":298,"y":1},{"x":299,"y":1},{"x":300,"y":1},{"x":301,"y":1},{"x":302,"y":1},{"x":303,"y":1},{"x":304,"y":1},{"x":305,"y":1},{"x":306,"y":1},{"x":307,"y":1},{"x":308,"y":1},{"x":309,"y":1},{"x":310,"y":1},{"x":311,"y":1},{"x":312,"y":1},{"x":313,"y":1},{"x":314,"y":1},{"x":315,"y":1}
 ,{"x":316,"y":1},{"x":317,"y":1},{"x":318,"y":1},{"x":319,"y":1},{"x":320,"y":1},{"x":321,"y":1},{"x":322,"y":1},{"x":323,"y":1},{"x":324,"y":1},{"x":325,"y":1},{"x":326,"y":1},{"x":327,"y":1},{"x":328,"y":1},{"x":329,"y":1},{"x":330,"y":1},{"x":331,"y":1},{"x":332,"y":1},{"x":333,"y":1},{"x":334,"y":1},{"x":335,"y":1},{"x":336,"y":1},{"x":337,"y":1},{"x":338,"y":1},{"x":339,"y":1},{"x":340,"y":1},{"x":341,"y":1},{"x":342,"y":1},{"x":343,"y":1},{"x":344,"y":1},{"x":345,"y":1},{"x":346,"y":1},{"x":347,"y":1},{"x":348,"y":1},{"x":349,"y":1},{"x":350,"y":1},{"x":351,"y":1},{"x":352,"y":1},{"x":353,"y":1},{"x":354,"y":1},{"x":355,"y":1},{"x":356,"y":1},{"x":357,"y":1},{"x":358,"y":1},{"x":359,"y":1},{"x":360,"y":1},{"x":361,"y":1},{"x":362,"y":1},{"x":363,"y":1},{"x":364,"y":1},{"x":365,"y":1},{"x":366,"y":1},{"x":367,"y":1},{"x":368,"y":1},{"x":369,"y":1},{"x":370,"y":1},{"x":371,"y":1},{"x":372,"y":1},{"x":373,"y":1},{"x":374,"y":1},{"x":375,"y":1},{"x":376,"y":1},{"x":377,"y"
 :1},{"x":378,"y":1},{"x":379,"y":1},{"x":380,"y":1},{"x":381,"y":1},{"x":382,"y":1},{"x":383,"y":1},{"x":384,"y":1},{"x":385,"y":1},{"x":386,"y":1},{"x":387,"y":1},{"x":388,"y":0},{"x":389,"y":0},{"x":390,"y":0},{"x":391,"y":0},{"x":392,"y":0},{"x":393,"y":0},{"x":394,"y":0},{"x":395,"y":0},{"x":396,"y":0},{"x":397,"y":0},{"x":398,"y":0},{"x":399,"y":0},{"x":400,"y":0},{"x":401,"y":0},{"x":402,"y":0},{"x":403,"y":0},{"x":404,"y":0},{"x":405,"y":0},{"x":406,"y":0},{"x":407,"y":0},{"x":408,"y":0},{"x":409,"y":0},{"x":410,"y":0},{"x":411,"y":0},{"x":412,"y":0},{"x":413,"y":0},{"x":414,"y":0},{"x":415,"y":0},{"x":416,"y":0},{"x":417,"y":0},{"x":418,"y":0},{"x":419,"y":0},{"x":420,"y":0},{"x":421,"y":0},{"x":422,"y":0},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":438,"y":0},{"x":439,
 "y":0},{"x":440,"y":0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}],[{"x":0,"y":0},{"x":1
 ,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x":65,"y":0},{"x":66,"y":0},{"x":67,"y":0}
 ,{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x":129,"y":0},{"x":130,"y":0},{"x":131,"y"
 :0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":0},{"x":146,"y":0},{"x":147,"y":0},{"x":148,"y":0},{"x":149,"y":0},{"x":150,"y":0},{"x":151,"y":0},{"x":152,"y":0},{"x":153,"y":0},{"x":154,"y":0},{"x":155,"y":0},{"x":156,"y":0},{"x":157,"y":0},{"x":158,"y":0},{"x":159,"y":0},{"x":160,"y":0},{"x":161,"y":0},{"x":162,"y":0},{"x":163,"y":0},{"x":164,"y":0},{"x":165,"y":0},{"x":166,"y":0},{"x":167,"y":0},{"x":168,"y":0},{"x":169,"y":0},{"x":170,"y":0},{"x":171,"y":0},{"x":172,"y":0},{"x":173,"y":0},{"x":174,"y":0},{"x":175,"y":0},{"x":176,"y":0},{"x":177,"y":0},{"x":178,"y":0},{"x":179,"y":0},{"x":180,"y":0},{"x":181,"y":0},{"x":182,"y":0},{"x":183,"y":0},{"x":184,"y":0},{"x":185,"y":0},{"x":186,"y":0},{"x":187,"y":0},{"x":188,"y":0},{"x":189,"y":0},{"x":190,"y":0},{"x":191,"y":0},{"x":192,"y":0},{"x":193,
 "y":0},{"x":194,"y":0},{"x":195,"y":0},{"x":196,"y":0},{"x":197,"y":0},{"x":198,"y":0},{"x":199,"y":0},{"x":200,"y":0},{"x":201,"y":0},{"x":202,"y":0},{"x":203,"y":0},{"x":204,"y":0},{"x":205,"y":0},{"x":206,"y":0},{"x":207,"y":0},{"x":208,"y":0},{"x":209,"y":0},{"x":210,"y":0},{"x":211,"y":0},{"x":212,"y":0},{"x":213,"y":0},{"x":214,"y":0},{"x":215,"y":0},{"x":216,"y":0},{"x":217,"y":0},{"x":218,"y":0},{"x":219,"y":0},{"x":220,"y":0},{"x":221,"y":0},{"x":222,"y":0},{"x":223,"y":0},{"x":224,"y":0},{"x":225,"y":0},{"x":226,"y":0},{"x":227,"y":0},{"x":228,"y":0},{"x":229,"y":0},{"x":230,"y":0},{"x":231,"y":0},{"x":232,"y":0},{"x":233,"y":0},{"x":234,"y":0},{"x":235,"y":0},{"x":236,"y":0},{"x":237,"y":0},{"x":238,"y":0},{"x":239,"y":0},{"x":240,"y":0},{"x":241,"y":0},{"x":242,"y":0},{"x":243,"y":0},{"x":244,"y":0},{"x":245,"y":0},{"x":246,"y":0},{"x":247,"y":0},{"x":248,"y":0},{"x":249,"y":0},{"x":250,"y":0},{"x":251,"y":0},{"x":252,"y":0},{"x":253,"y":0},{"x":254,"y":0},{"x":2
 55,"y":0},{"x":256,"y":0},{"x":257,"y":0},{"x":258,"y":0},{"x":259,"y":0},{"x":260,"y":0},{"x":261,"y":0},{"x":262,"y":0},{"x":263,"y":0},{"x":264,"y":0},{"x":265,"y":0},{"x":266,"y":0},{"x":267,"y":0},{"x":268,"y":0},{"x":269,"y":0},{"x":270,"y":0},{"x":271,"y":0},{"x":272,"y":0},{"x":273,"y":0},{"x":274,"y":0},{"x":275,"y":0},{"x":276,"y":0},{"x":277,"y":0},{"x":278,"y":0},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":0},{"x":289,"y":0},{"x":290,"y":0},{"x":291,"y":0},{"x":292,"y":0},{"x":293,"y":0},{"x":294,"y":0},{"x":295,"y":0},{"x":296,"y":0},{"x":297,"y":0},{"x":298,"y":0},{"x":299,"y":0},{"x":300,"y":0},{"x":301,"y":0},{"x":302,"y":0},{"x":303,"y":0},{"x":304,"y":0},{"x":305,"y":0},{"x":306,"y":0},{"x":307,"y":0},{"x":308,"y":0},{"x":309,"y":0},{"x":310,"y":0},{"x":311,"y":0},{"x":312,"y":0},{"x":313,"y":0},{"x":314,"y":0},{"x":315,"y":0},{"x":316,"y":0},{"x
 ":317,"y":0},{"x":318,"y":0},{"x":319,"y":0},{"x":320,"y":0},{"x":321,"y":0},{"x":322,"y":0},{"x":323,"y":0},{"x":324,"y":0},{"x":325,"y":0},{"x":326,"y":0},{"x":327,"y":0},{"x":328,"y":0},{"x":329,"y":0},{"x":330,"y":0},{"x":331,"y":0},{"x":332,"y":0},{"x":333,"y":0},{"x":334,"y":0},{"x":335,"y":0},{"x":336,"y":0},{"x":337,"y":0},{"x":338,"y":0},{"x":339,"y":0},{"x":340,"y":0},{"x":341,"y":0},{"x":342,"y":0},{"x":343,"y":0},{"x":344,"y":0},{"x":345,"y":0},{"x":346,"y":0},{"x":347,"y":0},{"x":348,"y":0},{"x":349,"y":0},{"x":350,"y":0},{"x":351,"y":0},{"x":352,"y":0},{"x":353,"y":0},{"x":354,"y":0},{"x":355,"y":0},{"x":356,"y":0},{"x":357,"y":0},{"x":358,"y":0},{"x":359,"y":0},{"x":360,"y":0},{"x":361,"y":0},{"x":362,"y":0},{"x":363,"y":0},{"x":364,"y":0},{"x":365,"y":0},{"x":366,"y":0},{"x":367,"y":0},{"x":368,"y":0},{"x":369,"y":0},{"x":370,"y":0},{"x":371,"y":0},{"x":372,"y":0},{"x":373,"y":0},{"x":374,"y":0},{"x":375,"y":0},{"x":376,"y":0},{"x":377,"y":0},{"x":378,"y":0},
 {"x":379,"y":0},{"x":380,"y":0},{"x":381,"y":0},{"x":382,"y":0},{"x":383,"y":0},{"x":384,"y":0},{"x":385,"y":0},{"x":386,"y":0},{"x":387,"y":0},{"x":388,"y":1},{"x":389,"y":1},{"x":390,"y":1},{"x":391,"y":1},{"x":392,"y":1},{"x":393,"y":1},{"x":394,"y":1},{"x":395,"y":1},{"x":396,"y":1},{"x":397,"y":1},{"x":398,"y":1},{"x":399,"y":1},{"x":400,"y":1},{"x":401,"y":1},{"x":402,"y":1},{"x":403,"y":1},{"x":404,"y":1},{"x":405,"y":1},{"x":406,"y":1},{"x":407,"y":1},{"x":408,"y":1},{"x":409,"y":1},{"x":410,"y":1},{"x":411,"y":1},{"x":412,"y":1},{"x":413,"y":1},{"x":414,"y":1},{"x":415,"y":1},{"x":416,"y":1},{"x":417,"y":1},{"x":418,"y":1},{"x":419,"y":1},{"x":420,"y":1},{"x":421,"y":1},{"x":422,"y":1},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":438,"y":0},{"x":439,"y":0},{"x":440,"y":
 0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}]]',

[... 282 lines stripped ...]
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js Thu Nov  8 02:40:49 2012
@@ -34,7 +34,7 @@ App.Run = DS.Model.extend({
   appId:DS.attr('number'),
   jobs:DS.hasMany('App.Job'),
   duration: function() {
-    return date.dateFormatInterval(((parseInt(this.get('lastUpdateTime')) - parseInt(this.get('startTime')))/1000));
+    return date.dateFormatInterval(parseInt((parseInt(this.get('lastUpdateTime')) - parseInt(this.get('startTime')))/1000));
   }.property('lastUpdateTime', 'startTime'),
   isRunning: function () {
     if (!this.get('isLoaded')) {

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less Thu Nov  8 02:40:49 2012
@@ -18,11 +18,14 @@
   .dropdown-menu label.checkbox {
     margin-left: 10px;
   }
-  span.icon-star{
+  .icon-star{
     color: gray;
     &.stared {
       color: inherit;
     }
+    &:hover {
+      text-decoration: none;
+    }
   }
   a.a {
     cursor: pointer;
@@ -54,12 +57,15 @@
   .clear {
     clear:both;
   }
-  .dataTable {
+  > div > .dataTable {
     border: 1px solid silver;
     th {
       border-top:none;
     }
   }
+  .content {
+    padding: 0;
+  }
   .app-table-row.hover{
     opacity:0.8 ;
   }
@@ -69,6 +75,12 @@
   #filter_info {
     float:left;
     padding-top:10px;
+
+    > .span3 > a.selected{
+      cursor: default;
+      text-decoration: none;
+      color: #000;
+    }
   }
   .page-bar {
     border: 1px solid silver;
@@ -93,5 +105,61 @@
       }
     }
   }
+  #graph1 {
+    margin-left: 30px;
+  }
+  #graph2 {
+    margin-right: 30px;
+  }
+
+  tr.containerRow > td{
+    background: #f9f9f9;
+  }
+
+  svg{
+    vertical-align: top; //remove extra spaces after svg element
+  }
+
+  ul.nav-tabs{
+    margin-bottom: 0;
+  }
+
+  #jobs, #bars{
+    border: 1px solid #ddd;
+    border-top: none;
+    background: #fff;
+    padding: 10px;
+    box-sizing: border-box;
+  }
+
+  #jobs h2{
+    margin-top: 0;
+  }
+//fix stripped in inner table
+  .table-striped tbody tr:nth-child(odd)
+  td .table-striped tbody
+  tr:nth-child(odd) td,
+  tr:nth-child(even) th{
+    background: none;
+  }
+
+  .sorting_asc { background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAEwATAwERAAIRAQMRAf/EAHgAAAMBAQAAAAAAAAAAAAAAAAAFCAYKAQACAQUAAAAAAAAAAAAAAAAABQMCBAYHCBAAAQUAAQMEAwAAAAAAAAAAAwECBAUGABESByExIghBMxQRAAIBAwMDAwUAAAAAAAAAAAECAwAEBRESBiExUUHhB2GBIhMU/9oADAMBAAIRAxEAPwDvA8k+Qc54sxGj32qlNi0ucrjTj/JqGlmROyJXQ2u/bOsZTmBExPd70/HXmQcW41lOX5+145h0L391KEHhR3Z28Ii6sx9AKgubiO1gaeU6Io19h9TUg/S/7eP+wia3NbBIFbuqiyn3VTCjIMArHHTJarEDGGiNU8vOKVsc7/VxBuGR3yV683X86/Cq/GpssrhP2S8emiSKRm1JS5VfyLH0WfQug7KwZR0CilWHy39++ObQTgkgeV9ux+xq9uc6U8pLfZzP6mClZpKWrvq1DilJAt4Mewh/0hRyBOsaUMoVKLvXtVU6t6+nL/HZTJYi4/rxU81tdbSu+N2Rtp7jcpB0OnUa9aoeOOVdsgDL4I1pFS+NPHmcsQ2+fw+UpLWOwwwWNVQ1kCaIcgaiONkmLGEZrDDXtcnXo5PfjC+5VybKWrWWSyF5cWbEEpJNI6kqdQSrMRqD1B9KjS2t423xoqt5AArb8
 QVPRwoo4UUcKK//2Q==) no-repeat 85% 50%; }
+  .sorting_desc { background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAEwATAwERAAIRAQMRAf/EAIEAAAIDAQAAAAAAAAAAAAAAAAAGBwgJCgEBAAIDAQAAAAAAAAAAAAAAAAMFBAYHCBAAAAUDAwMFAAAAAAAAAAAAAQIDBAUABgcSNTYRFQgTZFUWZhEAAAQEAggGAwAAAAAAAAAAAAECAxEhBAYSMjFBYRMzFDQFUZFSYmMHJFRk/9oADAMBAAIRAxEAPwDv4oAKACgCKc1tMmusb3Eph6cSgsgx7fucEZxGRks2llGIGVWgVm8q1dt0+6ogKaapSgdNbQPXTqAdwsN602bopk3vTnUW24rduwccbU2S5E8Sm1JM92czSZwNOKUYDFrCqTp1corDUFMpEcYap+Ipb4P5O8n81y9xXXlG50yY+thR3AEivqFvRDmduvSUrhuLtrFNXqCFvJm1LAQ5RMuchB6gBy13f7+tP6lsOipuz2jSGdy1ZJeNzmXnEtU+pWFTikmbxyTEjgglKKZpMU3ZanudYtTtSr8dMoYSKKvKMte0aUV5YGxgoASbD2iQ4Tyi6uB7Rvz/AHD9R8r7/wBWr64uta6/pKfq+JwUZP5/1/hwCFjIeTMrLo0np93q2xDtVCJh/9k=) no-repeat 85% 50%; }
+  .sorting { background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAEwATAwERAAIRAQMRAf/EAGgAAAIDAQAAAAAAAAAAAAAAAAUHAAYICgEBAQAAAAAAAAAAAAAAAAAAAAEQAAEEAQIFAgcAAAAAAAAAAAECAwQFABEGIRI0NQcTFDFBMmNUZRYRAQEBAQAAAAAAAAAAAAAAAAABEUH/2gAMAwEAAhEDEQA/AO93cd/XbXpLC9tHQ1Dr46nljUBby/gzGZB+p+Q6QhA+ZOApfDnllW/ha1tv6Ee7iyH5kRlvlbTIqHndWkNJ0HO7XFQbWeJUkpUeOpySrZh65UUnyFUW1ztaexRmIbaPyzoLE6vg2UWW9GC1e0XHnsSGEqfQohCwApK9OIGuAjfBP9VuG0m39vGqINVUe4r2xF21TVsuXZOI9N9lMmLBYkttQ21auBKhqtSUngCMkW5xqjKiYASh6SR2Tulr2HpOvf6j9p+V9/mwDeB//9k=) no-repeat 85% 50%; }
+
+  a.paginate_disabled_next, a.paginate_disabled_previous {
+    color: gray;
+    &:hover {
+      color: gray;
+      text-decoration: none;
+    }
+  }
+
+  a.paginate_enabled_next, a.paginate_enabled_previous {
+    &:hover {
+      text-decoration: none;
+    }
+  }
+
 }
 

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs Thu Nov  8 02:40:49 2012
@@ -16,10 +16,10 @@
 * limitations under the License.
 -->
 <div id="apps">
-  <div class="breadcrumb">
+  <!--<div class="breadcrumb">
     <li><a href='#' {{action "routeHome" target="controller"}}><i class="icon-home"></i></a><span class="divider">/</span></li>
     <li class="active">Apps</li>
-  </div>
+  </div>-->
   <table class="table table-bordered table-stripe avg-table" >
             <tbody>
             <tr >
@@ -54,7 +54,11 @@
             </tbody>
   </table>
     <div id="filter_info" class="row">
-      <div class="span3">Show: <a href="javascript:void(0)">Filtered ({{view.filtered}})</a>&nbsp;&#124;&nbsp;<a href="javascript:void(0)">Starred ({{view.staredData.count}})</a></div>
+      <div class="span3">Show:
+        <a href="javascript:void(0)" class="selected" {{action "changeViewType" target="view"}} data-view-type="all">All ({{view.content.length}})</a> &#124;
+        <a href="javascript:void(0)" {{action "changeViewType" target="view"}} data-view-type="filtered">Filtered ({{view.filtered}})</a> &#124;
+        <a href="javascript:void(0)" {{action "changeViewType" target="view"}} data-view-type="starred">Starred ({{view.staredData.count}})</a>
+      </div>
       <div class="span2"><a href="#" {{action "clearFilters" target="view"}}>Clear filters</a>&nbsp;&#124;&nbsp;<a href="#" {{action "clearStars" target="controller"}}>Clear stars</a></div>
     </div>
     <div>
@@ -62,27 +66,29 @@
     <table class="table table-striped" id="dataTable">
     <thead>
     <tr>
-      <th>App ID <i class="icon-question-sign"></i></th>
-      <th>Name <i class="icon-question-sign"></i></th>
-      <th>Type <i class="icon-question-sign"></i></th>
-      <th>User <i class="icon-question-sign"></i></th>
-      <th>Jobs <i class="icon-question-sign"></i></th>
-      <th>Input <i class="icon-question-sign"></i></th>
-      <th>Output <i class="icon-question-sign"></i></th>
-      <th>Duration <i class="icon-question-sign"></i></th>
+      <th></th>
+      <th>App ID</th>
+      <th>Name</th>
+      <th>Type</th>
+      <th>User</th>
+      <th>Jobs</th>
+      <th>Input</th>
+      <th>Output</th>
+      <th>Duration</th>
       <th>Run Date</th>
     </tr>
     <tr>
-          <th>{{view view.appidFilterView}}</th>
-          <th>{{view view.nameFilterView}}</th>
-          <th>{{view view.typeSelectView}}</th>
-          <th>{{view view.userFilterView}}<input id="user_filter" type="hidden"></th>
-          <th>{{view view.jobsFilterView}}</th>
-          <th>{{view view.inputFilterView}}</th>
-          <th>{{view view.outputFilterView}}</th>
-          <th>{{view view.durationFilterView}}</th>
-          <th>{{view view.rundateSelectView}}</th>
-        </tr>
+      <th></th>
+      <th>{{view view.appidFilterView}}</th>
+      <th>{{view view.nameFilterView}}</th>
+      <th>{{view view.typeSelectView}}</th>
+      <th>{{view view.userFilterView}}<input id="user_filter" type="hidden"></th>
+      <th>{{view view.jobsFilterView}}</th>
+      <th>{{view view.inputFilterView}}</th>
+      <th>{{view view.outputFilterView}}</th>
+      <th>{{view view.durationFilterView}}</th>
+      <th>{{view view.rundateSelectView}}</th>
+    </tr>
     </thead>
     <tbody>
     {{#each run in view.content}}

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item.hbs?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item.hbs Thu Nov  8 02:40:49 2012
@@ -15,17 +15,17 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<td colspan="9">
-<ul class="nav nav-tabs">
-  {{#each tab in view.menuTabs}}
-  <li {{bindAttr class="tab.active"}} {{action "switchTab" tab target="view" }}>
-  <a href="javascript:void(0)">{{tab.label}}</a>
-  </li>
-  {{/each}}
-</ul>
-<div id="content">
-  {{view view.containerView currentViewBinding="App.MainAppsItemDagView"}}
-</div>
+<td colspan="10">
+  <ul class="nav nav-tabs">
+    {{#each tab in view.menuTabs}}
+    <li {{bindAttr class="tab.active"}} {{action "switchTab" tab target="view" }}>
+      <a href="javascript:void(0)">{{tab.label}}</a>
+    </li>
+    {{/each}}
+  </ul>
+  <div class="content">
+    {{view view.containerView currentViewBinding="App.MainAppsItemDagView"}}
+  </div>
  </td>
 
 

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/bar.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/bar.hbs?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/bar.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/bar.hbs Thu Nov  8 02:40:49 2012
@@ -16,42 +16,40 @@
 * limitations under the License.
 -->
 
-<h2>Bar</h2>
 <div class="btn-group">
   <button class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
-    Job
+    Job {{view.activeJob.id}} - {{view.activeJob.jobId}}
     <span class="caret"></span>
   </button>
   <ul class="dropdown-menu">
     {{#each job in view.content}}
-    <li><a {{action "selectJob" job target="view"}} href="javascript:void(null)">{{job.id}}</a></li>
+    <li><a {{action "selectJob" job target="view"}} href="javascript:void(null)">Job {{job.id}} - {{job.jobId}}</a></li>
     {{/each}}
   </ul>
 </div>
 <div></div>
-<div id="graph1">
+<div id="graph1" class="pull-left">
   <div style="float:left">
     <div id="graph1_desc" class="graph_desc">
-      Job Timeline
+      <h4>Job Timeline</h4>
     </div>
     <div id="chart"></div>
     <div id="timeline1"></div>
   </div>
-  <div id="legend_container" style="float:left;margin-top:60px">
+  <div id="legend_container" style="margin-top:60px">
     <div id="legend"></div>
   </div>
-  <div style="clear: both"></div>
 </div>
-<div id="graph2">
+<div id="graph2" class="pull-right">
   <div style="float:left">
     <div id="graph2_desc" class="graph_desc">
-      Job Tasks' View
+      <h4>Job Tasks' View</h4>
     </div>
     <div id="job_tasks"></div>
     <div id="timeline2"></div>
   </div>
-  <div id="tasks_legend_container" style="float:left;margin-top:60px">
+  <div id="tasks_legend_container" style="margin-top:60px">
     <div id="tasks_legend"></div>
   </div>
-  <div style="clear: both"></div>
-</div>
\ No newline at end of file
+</div>
+<div class="clearfix"></div>
\ No newline at end of file

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/dag.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/dag.hbs?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/dag.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/item/dag.hbs Thu Nov  8 02:40:49 2012
@@ -15,12 +15,8 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<div id="jobs" class="box">
-  <div class="box-header">
-    <div>
-      <div id="dag_viewer"></div>
-    </div>
-    <h2>Jobs list</h2>
+    <div id="dag_viewer"></div>
+
     <table class="table table-bordered table-striped" id="innerTable">
       <thead>
       <tr>
@@ -40,15 +36,14 @@
         <td>{{job.id}}</td>
         <td>{{job.jobId}}</td>
         <td>{{job.status}}</td>
-        <td>{{job.maps}}</td>
-        <td>{{job.reduces}}</td>
+        <td>{{job.maps}}&nbsp;({{job.mapsProgress}}%)</td>
+        <td>{{job.reduces}}&nbsp;({{job.reducesProgress}}%)</td>
         <td>{{job.input}}</td>
         <td>{{job.output}}</td>
-        <td>{{job.mapsRuntime}}</td>
+        <td>{{job.duration}}</td>
       </tr>
       {{/each}}
       </tbody>
     </table>
-  </div>
-</div>
+
 

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/list_row.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/list_row.hbs?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/list_row.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps/list_row.hbs Thu Nov  8 02:40:49 2012
@@ -16,7 +16,8 @@
 * limitations under the License.
 -->
 
-<td><a href='#' {{action "starClick" target="controller"}}"><span class="icon-star"></span><span class="hidden">{{run.id}}</span></a>&nbsp;<a href="javascript:void(0)">ID&nbsp;{{run.appId}}</a></td>
+<td><a href="#" {{action "starClick" target="controller"}}"><span class="icon-star"></span><span class="hidden">{{run.id}}</span></a></td>
+<td><a href="javascript:void(0)">ID&nbsp;{{run.appId}}</a></td>
 <td>{{run.appName}}</td>
 <td>{{run.type}}</td>
 <td>{{run.userName}}</td>

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/utils/data_table.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/utils/data_table.js?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/utils/data_table.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/utils/data_table.js Thu Nov  8 02:40:49 2012
@@ -113,12 +113,12 @@ jQuery.extend(jQuery.fn.dataTableExt.oAp
 jQuery.extend($.fn.dataTableExt.afnFiltering.push(
     function (oSettings, aData, iDataIndex) {
       var inputFilters = [
-        {iColumn: '3', elementId: 'user_filter', type: 'multiple'},
-        {iColumn: '4', elementId: 'jobs_filter', type: 'number' },
-        {iColumn: '5', elementId: 'input_filter', type: 'number' },
-        {iColumn: '6', elementId: 'output_filter', type: 'number' },
-        {iColumn: '7', elementId: 'duration_filter', type: 'time' },
-        {iColumn: '8', elementId: 'rundate_filter', type: 'date' }
+        {iColumn: '4', elementId: 'user_filter', type: 'multiple'},
+        {iColumn: '5', elementId: 'jobs_filter', type: 'number' },
+        {iColumn: '6', elementId: 'input_filter', type: 'number' },
+        {iColumn: '7', elementId: 'output_filter', type: 'number' },
+        {iColumn: '8', elementId: 'duration_filter', type: 'time' },
+        {iColumn: '9', elementId: 'rundate_filter', type: 'date' }
       ];
       var match = true;
       for (i = 0; i < inputFilters.length; i++) {
@@ -246,7 +246,6 @@ jQuery.extend($.fn.dataTableExt.afnFilte
 )
 );
 
-
 jQuery.extend(jQuery.fn.dataTableExt.oApi, {
   "fnFilterClear": function (oSettings) {
     /* Remove global filter */

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/bar_view.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/bar_view.js?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/bar_view.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/bar_view.js Thu Nov  8 02:40:49 2012
@@ -20,6 +20,7 @@ var App = require('app');
 var graph = require('utils/graph');
 
 App.MainAppsItemBarView = Em.View.extend({
+    elementId: 'bars',
     templateName: require('templates/main/apps/item/bar'),
     content:function(){
         return this.get('parentView.jobs');

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/dag_view.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/dag_view.js?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/dag_view.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item/dag_view.js Thu Nov  8 02:40:49 2012
@@ -20,17 +20,26 @@ var App = require('app');
 
 App.MainAppsItemDagView = Em.View.extend({
   templateName: require('templates/main/apps/item/dag'),
+  elementId : 'jobs',
   content:function(){
-    return this.get('parentView.jobs');
+    var content = this.get('parentView.jobs');
+    content.forEach(function(job){
+      job.set('mapsProgress', Math.round((job.get('finishedMaps') / job.get('maps'))*100));
+      job.set('reducesProgress', Math.round((job.get('finishedReduces') / job.get('reduces'))*100));
+    });
+    return content;
   }.property('parentView.jobs'),
   classNames:['table','dataTable'],
+  /**
+   * convert content to special jobs object for DagViewer
+   */
   jobs: function(){
     var c = this.get('content');
-    var result = new Array();
+    var result = [];
     c.forEach(function(item, index){
       result[index] = new Object({
         'name' : item.get('id'),
-        'status' : (item.get('status') == 'COMPLETE')? true : false,
+        'status' : item.get('status') == 'COMPLETE',
         'info' : [],
         'input' : 2,
         'output' : 3
@@ -39,12 +48,25 @@ App.MainAppsItemDagView = Em.View.extend
     return result;
   }.property('content'),
   didInsertElement:function (){
-    var innerTable = this.$('#innerTable').dataTable({});
-    var dagSchema = this.get('parentView.parentView.run').get('workflowContext');
-    var jobs = this.get('content');
-    var graph = new DagViewer(false,'dag_viewer')
-        .setPhysicalParametrs(800,250,-800,0.01)
-        .setData(dagSchema,jobs)
-        .drawDag(10,20,100);
+    var innerTable = this.$('#innerTable').dataTable({
+      "sDom": 'rt<"page-bar"lip><"clear">',
+      "oLanguage": {
+        "sSearch": "<i class='icon-question-sign'>&nbsp;Search</i>",
+        "sLengthMenu": "Show: _MENU_",
+        "sInfo": "_START_ - _END_ of _TOTAL_",
+        "oPaginate":{
+          "sPrevious": "<i class='icon-arrow-left'></i>",
+          "sNext": "<i class='icon-arrow-right'></i>"
+        }
+      },
+      "iDisplayLength": 5,
+      "aLengthMenu": [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]]
+    });
+    var dagSchema = this.get('parentView.parentView.content').get('workflowContext');
+    var jobs = this.get('jobs');
+    var graph = new DagViewer(false, 'dag_viewer')
+        .setPhysicalParametrs(800, 250, -800, 0.01)
+        .setData(dagSchema, jobs)
+        .drawDag(10, 20, 100);
   }
 });

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item_view.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item_view.js?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item_view.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps/item_view.js Thu Nov  8 02:40:49 2012
@@ -20,6 +20,7 @@ var App = require('app');
 
 App.MainAppsItemView = Em.View.extend({
   tagName: 'tr',
+  classNames : ['containerRow'],
   templateName:require('templates/main/apps/item'),
   menuTabs:[
     Em.Object.create({
@@ -28,39 +29,42 @@ App.MainAppsItemView = Em.View.extend({
       content:'App.MainAppsItemDagView'
     }),
     Em.Object.create({
-      label:'Jobs',
+      label:'Charts',
       active:'',
       content:'App.MainAppsItemBarView'
     })
   ],
-  run:function(){
-    return this.get('parentView.run');
-  }.property('parentView.run'),
+  content:function(){
+    return App.router.get('mainAppsItemController.content');
+  }.property('App.router.mainAppsItemController.content'),
   activeTab:null,
   switchTab:function(event){
     var tabs = this.get('menuTabs');
     for(var i = 0; i < tabs.length; i++){
-      if(tabs[i] === event.context) tabs[i].set('active', 'active');
-      else tabs[i].set('active', '');
+      if(tabs[i] === event.context){
+        tabs[i].set('active', 'active');
+      }
+      else {
+        tabs[i].set('active', '');
+      }
     }
     this.set('activeTab', event.context);
   },
+  didInsertElement: function(){
+    var tabs = this.get('menuTabs');
+    tabs[0].set('active', 'active');
+    tabs[1].set('active', '');
+  },
   containerView:Em.ContainerView.extend({
-    elementId:'cont',
     jobs:function(){
-      return this.get('parentView.run').get('jobs');
-    }.property('parentView.run'),
+      return this.get('parentView.content').get('jobs');
+    }.property('parentView.content'),
     onchange:function(){
-      var view;
-      if(this.get('parentView.activeTab').get('label') === 'DAG'){
-        var view = App.MainAppsItemDagView.create();
-      }
-      if(this.get('parentView.activeTab').get('label') === 'Jobs'){
-        var view = App.MainAppsItemBarView.create();
-      }
+      var view = this.get('parentView.activeTab.content').split('.')[1];
+      view = App[view].create();
+
       if(this.get('childViews')){
         this.get('childViews').get('firstObject').destroy();
-        this.get('childViews').removeObject(this.get('childViews').get('firstObject'));
       }
       this.get('childViews').pushObject(view);
     }.observes('parentView.activeTab')

Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps_view.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps_view.js?rev=1406897&r1=1406896&r2=1406897&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps_view.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/views/main/apps_view.js Thu Nov  8 02:40:49 2012
@@ -27,16 +27,26 @@ App.MainAppsView = Em.View.extend({
    */
   content:function () {
     var content =  this.get('controller').get('content');
-    content.forEach(function(item){
-      var app = App.store.find(App.App, item.get('appId'));
-      item.set('appName', app.get('appName'));
-      item.set('type', app.get('type'));
-      item.set('numJobsTotal' ,item.get('jobs').get('content').length);
-      item.get('jobs').forEach(function(item) {
+    content.forEach(function(run){
+      var app = App.store.find(App.App, run.get('appId'));
+      run.set('appName', app.get('appName'));
+      run.set('type', app.get('type'));
+      run.set('numJobsTotal' ,run.get('jobs').get('content').length);
+      run.get('jobs').forEach(function(job) {
+
       });
     });
     return content;
   }.property('App.router.mainAppsController.content'),
+
+  /**
+   * Choose view type for apps list:
+   * all - show all runs
+   * filtered - show only filtered runs
+   * starred - show only filtered runs with stars selected
+   */
+  viewType : 'all',
+
   /**
    * List of users
    */
@@ -194,37 +204,61 @@ App.MainAppsView = Em.View.extend({
     return ret;
   },
   /**
-   * Reset filters
-   * @param event
-   */
-  clearFilters:function(event) {
-    this._childViews.forEach(function(item){
-      if(item.get('tagName') === 'input') {
-          item.set('value','');
-      }
-      if(item.get('tagName') === 'select') {
-        item.set('value','Any');
-      }
-    });
-    this.get('oTable').fnFilterClear();
-    this.set('filtered',this.get('oTable').fnSettings().fnRecordsDisplay());
-  },
-  /**
    * Click on big star on the avg block
    */
   avgStarClick: function() {
     this.set('whatAvgShow', !this.get('whatAvgShow'));
-    event.srcElement.classList.toggle('active');
+    $('a.icon-star.a').toggleClass('active');
   },
   /**
    * "turn off" stars in the table
    */
-  clearStars: function(){
+  clearStars: function() {
     if (this.get('controller.staredRunsLength') == 0 && this.get('smallStarsIcons') != null) {
       this.get('smallStarsIcons').removeClass('stared');
+      this.set('whatAvgShow', true);
+      $('a.icon-star.a').removeClass('active');
     }
   }.observes('controller.staredRunsLength'),
   /**
+   * Reset filters and "turn off" stars
+   */
+  showAll: function() {
+    this.clearFilters();
+    this.clearStars();
+  },
+
+  /**
+   * Onclick handler for <code>Show All/Filtered/Starred</code> links
+   */
+  changeViewType: function(event){
+    if($(event.toElement).hasClass('selected')){
+      return;
+    }
+
+    $(event.toElement).parent().children('.selected').removeClass('selected');
+    $(event.toElement).addClass('selected');
+
+    var viewType = $(event.toElement).data('view-type');
+    console.log(viewType);
+
+    switch(viewType){
+      case 'all':
+        //do stuff here
+        break;
+
+      case 'starred':
+        break;
+
+      case 'filtered':
+      default:
+        //do stuff here
+        break;
+    };
+
+  },
+
+  /**
    * jQuery dataTable init
    */
   didInsertElement:function () {
@@ -237,9 +271,11 @@ App.MainAppsView = Em.View.extend({
         // no need more. 31.10.2012
       },
       "oLanguage": {
-        "sSearch": "<i class='icon-question-sign'>&nbsp;Search</i>",
+        "sSearch": "Search:",
         "sLengthMenu": "Show: _MENU_",
-        "sInfo": "_START_ - _END_ of _TOTAL_",
+        "sInfo": "_START_ - _END_ of _TOTAL_ (_TOTAL_ total)",
+        "sInfoEmpty": "0 - _END_ of _TOTAL_ (_TOTAL_ total)",
+        "sInfoFiltered": "",
         "oPaginate":{
           "sPrevious": "<i class='icon-arrow-left'></i>",
           "sNext": "<i class='icon-arrow-right'></i>"
@@ -249,6 +285,7 @@ App.MainAppsView = Em.View.extend({
       "iDisplayLength": 10,
       "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
       "aoColumns":[
+        { "bSortable": false  },
         null,
         null,
         null,
@@ -316,9 +353,9 @@ App.MainAppsView = Em.View.extend({
     content:['Any', 'Pig', 'Hive', 'mapReduce'],
     change:function(event){
       if(this.get('selection') === 'Any') {
-        this._parentView.get('oTable').fnFilter('', 2);
+        this._parentView.get('oTable').fnFilter('', 3);
       } else {
-      this._parentView.get('oTable').fnFilter(this.get('selection'), 2);
+      this._parentView.get('oTable').fnFilter(this.get('selection'), 3);
       }
       this._parentView.set('filtered',this._parentView.get('oTable').fnSettings().fnRecordsDisplay());
     }
@@ -335,7 +372,7 @@ App.MainAppsView = Em.View.extend({
     classNames:['input-medium'],
     elementId: 'rundate_filter',
     change:function(event) {
-      this.get('parentView').get('applyFilter')(this.get('parentView'), 8);
+      this.get('parentView').get('applyFilter')(this.get('parentView'), 9);
     }
   }),
   /**
@@ -345,8 +382,9 @@ App.MainAppsView = Em.View.extend({
     classNames:['input-small'],
     type:'text',
     placeholder: 'Any ID',
-    filtering:function(){
-        this.get('parentView').get('applyFilter')(this.get('parentView'), 0, this.get('value'));
+    elementId:'appid_filter',
+    filtering:function() {
+      this.get('parentView').get('applyFilter')(this.get('parentView'), 1, this.get('value'));
     }.observes('value')
   }),
   /**
@@ -357,7 +395,7 @@ App.MainAppsView = Em.View.extend({
     type:'text',
     placeholder: 'Any Name',
     filtering:function(){
-      this.get('parentView').get('applyFilter')(this.get('parentView'), 1, this.get('value'));
+      this.get('parentView').get('applyFilter')(this.get('parentView'), 2, this.get('value'));
     }.observes('value')
   }),
   /**
@@ -369,7 +407,7 @@ App.MainAppsView = Em.View.extend({
     placeholder: 'Any ',
     elementId:'jobs_filter',
     filtering:function(){
-      this.get('parentView').get('applyFilter')(this.get('parentView'), 4);
+      this.get('parentView').get('applyFilter')(this.get('parentView'), 5);
     }.observes('value')
   }),
   /**
@@ -381,7 +419,7 @@ App.MainAppsView = Em.View.extend({
     placeholder: 'Any ',
     elementId: 'input_filter',
     filtering:function(){
-      this.get('parentView').get('applyFilter')(this.get('parentView'), 5);
+      this.get('parentView').get('applyFilter')(this.get('parentView'), 6);
     }.observes('value')
   }),
   /**
@@ -393,7 +431,7 @@ App.MainAppsView = Em.View.extend({
     placeholder: 'Any ',
     elementId: 'output_filter',
     filtering:function(){
-        this.get('parentView').get('applyFilter')(this.get('parentView'), 6);
+        this.get('parentView').get('applyFilter')(this.get('parentView'), 7);
     }.observes('value')
   }),
   /**
@@ -405,7 +443,7 @@ App.MainAppsView = Em.View.extend({
     placeholder: 'Any ',
     elementId: 'duration_filter',
     filtering:function(){
-      this.get('parentView').get('applyFilter')(this.get('parentView'), 7);
+      this.get('parentView').get('applyFilter')(this.get('parentView'), 8);
     }.observes('value')
   }),
   /**
@@ -457,7 +495,7 @@ App.MainAppsView = Em.View.extend({
       jQuery('#user_filter').val([]);
       self.get('parentView').get('oTable').fnFilter('', 3);
     },
-    applyFilter:function(){
+    applyFilter:function() {
       var chosenUsers = new Array();
       this.set('open', !this.get('open'));
       this.set('isApplyDisabled', !this.get('isApplyDisabled'));
@@ -481,27 +519,33 @@ App.MainAppsView = Em.View.extend({
   containerRow : Em.ContainerView.extend({
 
     /**
-     * Uniq row id
+     * Unique row id
      */
-    id: function(){
+    id: function() {
       return this.get('run.id');
     }.property("run.id"),
-
+    /**
+     * Delete expanded row from table
+     *
+     * @param row
+     */
+    deleteRow:function(row){
+      row.get('rowChildView').destroy();
+      row.set('rowView', null);
+      row.set('rowChildView', null);
+    },
     /**
      * Show/hide additional content appropriated for this row
      */
     expandToggle : function(){
       var newView = App.MainAppsItemView.create();
       var expandedView = this.get('parentView.expandedRow');
+      App.router.get('mainAppsItemController').set('content', this.get('run'));
       if(expandedView.get('rowView')) {
         if(this === expandedView.get('rowView')) {
-          expandedView.get('rowView').get('childViews').removeObject(expandedView.get('rowChildView'));
-          expandedView.get('rowChildView').destroy();
-          expandedView.set('rowView', null);
-          expandedView.set('rowChildView', null);
+          this.get('deleteRow')(expandedView);
         } else {
-          //expandedView.get('rowView').get('childViews').removeObject(expandedView.get('rowChildView'));
-          expandedView.get('rowChildView').destroy();
+          this.get('deleteRow')(expandedView);
           expandedView.set('rowView', this);
           expandedView.set('rowChildView', newView);
           this.get('childViews').pushObject(newView);