You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2014/01/08 16:22:02 UTC
git commit: AMBARI-4228. Mirroring: Dataset page redesign. (Mikhail
Bayuk via akovalenko)
Updated Branches:
refs/heads/trunk 366a263c4 -> 7a25e8557
AMBARI-4228. Mirroring: Dataset page redesign. (Mikhail Bayuk via akovalenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7a25e855
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7a25e855
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7a25e855
Branch: refs/heads/trunk
Commit: 7a25e8557f62b5f36b7405eb8f3fbca634725b01
Parents: 366a263
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Wed Jan 8 17:21:15 2014 +0200
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Wed Jan 8 17:21:15 2014 +0200
----------------------------------------------------------------------
.../main/mirroring/jobs_controller.js | 7 +-
ambari-web/app/messages.js | 9 +-
ambari-web/app/models/dataset_job.js | 7 +-
ambari-web/app/styles/application.less | 14 ++-
.../app/templates/main/mirroring/jobs.hbs | 89 ++++++--------------
5 files changed, 54 insertions(+), 72 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/7a25e855/ambari-web/app/controllers/main/mirroring/jobs_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/mirroring/jobs_controller.js b/ambari-web/app/controllers/main/mirroring/jobs_controller.js
index 5cd08d3..01fd720 100644
--- a/ambari-web/app/controllers/main/mirroring/jobs_controller.js
+++ b/ambari-web/app/controllers/main/mirroring/jobs_controller.js
@@ -21,7 +21,12 @@ var App = require('app');
App.MainJobsController = Em.Controller.extend({
name: 'mainJobsController',
jobs: function () {
- return App.DataSetJob.find().filterProperty('dataset', this.get('content'));
+ var jobs = App.DataSetJob.find().filterProperty('dataset', this.get('content')).sort(
+ function(a, b) {
+ return a.get('id') < b.get('id');
+ }
+ );
+ return jobs;
}.property('content'),
actionDesc: function () {
http://git-wip-us.apache.org/repos/asf/ambari/blob/7a25e855/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index aef361b..71aa8b8 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1682,9 +1682,10 @@ Em.I18n.translations = {
'mirroring.dataset.selectTargetClusters':'Select Target Cluster...',
'mirroring.dataset.name':'Name',
'mirroring.dataset.save': 'Save & Run',
- 'mirroring.dataset.sourceDir':'Source Cluster Directory',
- 'mirroring.dataset.target':'Target Cluster',
+ 'mirroring.dataset.sourceDir':'Location',
+ 'mirroring.dataset.target':'Target',
'mirroring.dataset.source':'Source',
+ 'mirroring.dataset.filespec':'Spec',
'mirroring.dataset.avgData':'Avg. Data',
'mirroring.dataset.dateCreated':'Date Created',
'mirroring.dataset.targetDir':'Target Cluster Directory',
@@ -1709,8 +1710,8 @@ Em.I18n.translations = {
'mirroring.table.lastFail':'Last Fail',
'mirroring.table.lastDuration':'Last Duration',
'mirroring.table.avgData':'Avg Data',
- 'mirroring.table.noJobs':'No jobs to display',
- 'mirroring.table.jobId':'Job ID',
+ 'mirroring.table.noJobs':'No instances to display',
+ 'mirroring.table.jobId':'Instance ID',
'mirroring.table.start':'Start',
'mirroring.table.end':'End',
'mirroring.table.duration':'Duration',
http://git-wip-us.apache.org/repos/asf/ambari/blob/7a25e855/ambari-web/app/models/dataset_job.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/dataset_job.js b/ambari-web/app/models/dataset_job.js
index aeb3e98..5ad698d 100644
--- a/ambari-web/app/models/dataset_job.js
+++ b/ambari-web/app/models/dataset_job.js
@@ -28,8 +28,11 @@ App.DataSetJob = DS.Model.extend({
duration: DS.attr('number'),
startDateFormatted: function () {
return date.dateFormatShort(this.get('startDate'));
- }.property('startDate')
+ }.property('startDate'),
//data : DS.attr('string')
+ healthClass: function () {
+ return this.get('status') === 'FAILED' ? 'health-status-DEAD-RED' : 'health-status-LIVE';
+ }.property('status')
});
@@ -42,4 +45,4 @@ App.DataSetJob.FIXTURES = [/*
racks: [1, 2, 3, 4, 5, 6],
max_hosts_per_rack: 10
}*/
-];
\ No newline at end of file
+];
http://git-wip-us.apache.org/repos/asf/ambari/blob/7a25e855/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 05531cf..f07da32 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -3663,6 +3663,16 @@ ul.filter {
margin-bottom: 20px;
}
+.switcher {
+ background-color: #e5e5e5;
+ -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+ -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+ margin-bottom: 20px;
+ border-radius: 4px;
+ border-color: #D8D8D8;
+}
+
.schedule-toggle {
min-width: 190px;
}
@@ -3892,9 +3902,9 @@ ul.filter {
}
}
.jobs-middleportion{
- width: 80%;
+ width: 82%;
height: 100%;
- float:left;
+ float: right;
}
/*End Mirroring*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/7a25e855/ambari-web/app/templates/main/mirroring/jobs.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/mirroring/jobs.hbs b/ambari-web/app/templates/main/mirroring/jobs.hbs
index e26e305..bed8ae3 100644
--- a/ambari-web/app/templates/main/mirroring/jobs.hbs
+++ b/ambari-web/app/templates/main/mirroring/jobs.hbs
@@ -17,43 +17,43 @@
}}
<div class="row-fluid">
<div class="top-portion">
- <ul class="breadcrumb">
- <li><a href="#/main/mirroring">{{t mirroring.dataset.AllDataSets}}</a> <span class="divider">/</span></li>
- <li class="active">{{view.dataset.name}}</li>
- </ul>
+ <div class="pull-left">
+ <strong>{{view.dataset.name}}</strong>
+ <a class="pull-left" href="#/main/mirroring">← {{t common.back}}</a>
+ </div>
{{#if App.isAdmin}}
- <div class="mirroring-top-nav button-section pull-right">
- {{#if isScheduled}}
- <span class="label label-success">{{content.status}}</span>
+ <div class="switcher pull-right">
+ {{#if isScheduled}}
+ <span class="heatmap-host">
<a href="javascript:void(null)" data-toggle="modal"
- class="btn btn-danger" {{action "suspend" target="controller"}}>
- <i class="icon-pause"></i>
+ class="btn btn-danger enabled" {{action "suspend" target="controller"}}>
+ <i class="icon-pause"></i>
{{actionDesc}}
</a>
- {{else}}
- <span class="label label-important">{{content.status}}</span>
+ <span>{{content.status}} </span>
+ </span>
+ {{else}}
+ <span>
+ <span> {{content.status}}</span>
<a href="javascript:void(null)" data-toggle="modal"
class="btn btn-success" {{action "schedule" target="controller"}}>
- <i class="icon-play"></i>
+ <i class="icon-play"></i>
{{actionDesc}}
</a>
- {{/if}}
- </div>
+ </span>
+ {{/if}}
+ </div>
{{/if}}
-
+ <br />
</div>
<div class="jobs-sidebar">
- <h5>{{t common.details}} <span class="pull-right"><a
- href="#" {{action gotoEditDataset view.dataset}}>{{t common.edit}}</a></span></h5>
+ <h5>{{t common.details}}
+ </h5>
<hr/>
- <p>{{t mirroring.dataset.source}}: <span class="pull-right">{{view.dataset.sourceClusterName}}</span></p>
+ <p>{{t mirroring.dataset.target}}: <span class="pull-right">{{view.dataset.targetCluster.clusterName}}</span></p>
+ <p>{{t mirroring.dataset.sourceDir}}: <span class="pull-right">{{view.dataset.sourceDir}}</span></p>
+ <p>{{t mirroring.dataset.filespec}}: <span class="pull-right">{{view.dataset.filespec}}</span></p>
- <p>{{t mirroring.dataset.target}}: <span class="pull-right">{{view.dataset.targetClusterName}}</span></p>
- <h5>{{t common.stats}}</h5>
- <hr/>
- <p>{{t mirroring.dataset.avgData}}: <span class="pull-right">{{view.dataset.avgData}}</span></p>
-
- <p>{{t mirroring.dataset.dateCreated}}: <span class="pull-right">{{view.dataset.createdDate}}</span></p>
</div>
<div class="jobs-middleportion">
<div id="mirroring">
@@ -65,12 +65,6 @@
{{view view.parentView.idSort}}
{{view view.parentView.startSort}}
{{view view.parentView.endSort}}
- {{view view.parentView.durationSort}}
- {{view view.parentView.dataSort}}
- <th>
- {{t common.status}}
- </th>
-
{{/view}}
</tr>
<tr>
@@ -78,8 +72,6 @@
<th>{{view view.idFilterView}}</th>
<th>{{view view.startFilterView}}</th>
<th>{{view view.endFilterView}}</th>
- <th>{{view view.durationFilterView}}</th>
- <th>{{view view.dataFilterView}}</th>
</tr>
</thead>
<tbody>
@@ -88,41 +80,12 @@
{{#view view.JobView contentBinding="job"}}
<td class="first">
+ <span {{ bindAttr class="job.healthClass"}}></span>
</td>
<td>{{unbound job.id}}</td>
<td>{{view.startFormatted}}</td>
<td>{{view.endFormatted}}</td>
-
- <td>
- {{view.durationFormatted}}
- </td>
-
- <td>{{job.data}}</td>
- <td>
-
- {{#if view.canActionBeTaken}}
- <div class="btn-group">
- <a {{bindAttr class="view.statusClass"}} data-toggle="dropdown" href="#">
- {{view.content.status}}
- <span class="caret"></span>
- </a>
- <ul class="dropdown-menu">
- {{#each view.listOfOptions}}
- <li>
- <a href="#" {{action "changeStatus" this target="view" on="click"}}>{{title}}</a>
- </li>
- {{/each}}
- </ul>
- </div>
- {{else}}
- {{#if view.isKilled}}
- <span class="label label-important">{{view.content.status}}</span>
- {{else}}
- <span class="label label-info">{{view.content.status}}</span>
- {{/if}}
- {{/if}}
- </td>
{{/view}}
{{/each}}
{{else}}
@@ -149,4 +112,4 @@
</div>
</div>
</div>
-</div>
\ No newline at end of file
+</div>