You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by xi...@apache.org on 2014/07/15 01:27:28 UTC
git commit: AMBARI-6480. Ability to show history of more than 10
background operations.(xiwang)
Repository: ambari
Updated Branches:
refs/heads/trunk c5b0e4833 -> f3f4876f7
AMBARI-6480. Ability to show history of more than 10 background operations.(xiwang)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f3f4876f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f3f4876f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f3f4876f
Branch: refs/heads/trunk
Commit: f3f4876f7e42162089953c93e15ae12db7264d69
Parents: c5b0e48
Author: Xi Wang <xi...@apache.org>
Authored: Mon Jul 14 16:14:17 2014 -0700
Committer: Xi Wang <xi...@apache.org>
Committed: Mon Jul 14 16:26:58 2014 -0700
----------------------------------------------------------------------
.../global/background_operations_controller.js | 17 ++++++++++++++---
ambari-web/app/messages.js | 1 +
ambari-web/app/styles/application.less | 11 +++++++++++
.../app/templates/common/host_progress_popup.hbs | 9 ++++++---
ambari-web/app/utils/ajax/ajax.js | 2 +-
ambari-web/app/utils/db.js | 19 +++++++++++++++++++
ambari-web/app/utils/host_progress_popup.js | 16 ++++++++++++++++
7 files changed, 68 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3f4876f/ambari-web/app/controllers/global/background_operations_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/background_operations_controller.js b/ambari-web/app/controllers/global/background_operations_controller.js
index c1d0e78..a52c7ac 100644
--- a/ambari-web/app/controllers/global/background_operations_controller.js
+++ b/ambari-web/app/controllers/global/background_operations_controller.js
@@ -71,6 +71,7 @@ App.BackgroundOperationsController = Em.Controller.extend({
});
return !this.isInitLoading();
},
+
/**
* indicate whether data for current level has already been loaded or not
* @return {Boolean}
@@ -89,10 +90,13 @@ App.BackgroundOperationsController = Em.Controller.extend({
*/
getQueryParams: function () {
var levelInfo = this.get('levelInfo');
+ var count = App.db.getBGOOperationsCount();
var result = {
name: 'background_operations.get_most_recent',
successCallback: 'callBackForMostRecent',
- data: {}
+ data: {
+ 'operationsCount': count
+ }
};
if (levelInfo.get('name') === 'TASK_DETAILS' && !App.testMode) {
result.name = 'background_operations.get_by_task';
@@ -176,13 +180,16 @@ App.BackgroundOperationsController = Em.Controller.extend({
callBackForMostRecent: function (data) {
var runningServices = 0;
var currentRequestIds = [];
-
+ var countIssued = App.db.getBGOOperationsCount();
+ var countGot = data.itemTotal;
+
data.items.forEach(function (request) {
var rq = this.get("services").findProperty('id', request.Requests.id);
var isRunning = this.isRequestRunning(request);
var requestParams = this.parseRequestContext(request.Requests.request_context);
this.assignScheduleId(request, requestParams);
currentRequestIds.push(request.Requests.id);
+
if (rq) {
rq.set('progress', Math.ceil(request.Requests.progress_percent));
rq.set('status', request.Requests.request_status);
@@ -207,16 +214,20 @@ App.BackgroundOperationsController = Em.Controller.extend({
contextCommand: requestParams.contextCommand
});
this.get("services").unshift(rq);
+ //To sort DESC by request id
+ this.set("services", this.get("services").sort( function(a,b) { return b.get('id') - a.get('id'); })) ;
}
runningServices += ~~isRunning;
}, this);
this.removeOldRequests(currentRequestIds);
this.set("allOperationsCount", runningServices);
+ this.set('isShowMoreAvailable', countGot >= countIssued);
this.set('serviceTimestamp', App.dateTime());
},
+ isShowMoreAvailable: null,
/**
* remove old requests
- * as API returns 10 latest request, the requests that absent in response should be removed
+ * as API returns 10, or 20 , or 30 ...etc latest request, the requests that absent in response should be removed
* @param currentRequestIds
*/
removeOldRequests: function (currentRequestIds) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3f4876f/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 85c893a..214870f 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -246,6 +246,7 @@ Em.I18n.translations = {
'hostPopup.status.category.aborted':'Aborted ({0})',
'hostPopup.status.category.timedout':'Timedout ({0})',
'hostPopup.header.postFix':' Background Operations Running',
+ 'hostPopup.serviceInfo.showMore':'Show more...',
'hostPopup.bgop.sourceRequestSchedule.running': 'Future operations of this batch request can be aborted',
'hostPopup.bgop.sourceRequestSchedule.aborted': 'Future operations of this batch request have been aborted',
'hostPopup.bgop.abort.rollingRestart': 'Abort Rolling Restart',
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3f4876f/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 70ced0e..e09711a 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -1877,6 +1877,17 @@ width:100%;
text-align: left;
}
}
+ #service-info{
+ .show-more {
+ width: 98.8%;
+ min-height: 20px;
+ cursor: pointer;
+ border-top: 1px solid #CCC;
+ text-align: center;
+ padding: 10px 10px 10px 0px;
+ font-size: 16px;
+ }
+ }
#host-info, #service-info{
overflow: auto;
max-height: 340px;
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3f4876f/ambari-web/app/templates/common/host_progress_popup.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/host_progress_popup.hbs b/ambari-web/app/templates/common/host_progress_popup.hbs
index 33fde90..26dcc6f 100644
--- a/ambari-web/app/templates/common/host_progress_popup.hbs
+++ b/ambari-web/app/templates/common/host_progress_popup.hbs
@@ -19,7 +19,7 @@
<div class="host-component-popup-wrap">
{{#if view.parentView.isLoaded}}
- <!-- SERVICES --->
+ {{!-- SERVICES --}}
<div {{bindAttr class="view.isServiceListHidden:hidden :task-list-main-warp"}}>
<div class="task-top-wrap">
@@ -62,11 +62,14 @@
</div>
{{/each}}
{{/if}}
+ {{#if view.isShowMore}}
+ <div class="show-more" {{action requestMoreOperations}}><a href="#">{{t hostPopup.serviceInfo.showMore}}</a></div>
+ {{/if}}
</div>
</div>
- <!-- HOSTS --->
+ {{!-- HOSTS ---}}
<div {{bindAttr class="view.isHostListHidden:hidden :task-list-main-warp"}}>
<div class="task-top-wrap">
@@ -134,7 +137,7 @@
</div>
- <!-- TASKS --->
+ {{!-- TASKS ---}}
<div {{bindAttr class="view.isTaskListHidden:hidden :task-list-main-warp"}}>
<div class="task-top-wrap">
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3f4876f/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 73b66d5..8139e15 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -221,7 +221,7 @@ var urls = {
'mock': '/data/alerts/HDP2/host_alerts.json'
},
'background_operations.get_most_recent': {
- 'real': '/clusters/{clusterName}/requests?to=end&page_size=10&fields=Requests',
+ 'real': '/clusters/{clusterName}/requests?to=end&page_size={operationsCount}&fields=Requests',
'mock': '/data/background_operations/list_on_start.json',
'testInProduction': true
},
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3f4876f/ambari-web/app/utils/db.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/db.js b/ambari-web/app/utils/db.js
index b77ee1a..b39c5f2 100644
--- a/ambari-web/app/utils/db.js
+++ b/ambari-web/app/utils/db.js
@@ -167,6 +167,16 @@ App.db.setAuthenticated = function (authenticated) {
console.log('Now present value of authentication is: ' + App.db.data.app.authenticated);
};
+App.db.setBGOOperationsCount = function(count) {
+ console.log('TRACE: Entering db:setBGOOperationsCount function');
+ App.db.data = localStorage.getObject('ambari');
+ if (!App.db.data.app.BGOOperationsCount) {
+ App.db.data.app.BGOOperationsCount = 10;
+ }
+ App.db.data.app.BGOOperationsCount = count;
+ localStorage.setObject('ambari', App.db.data);
+};
+
App.db.setFilterConditions = function(name, filterConditions) {
console.log('TRACE: Entering db:setFilterConditions function');
App.db.data = localStorage.getObject('ambari');
@@ -551,6 +561,15 @@ App.db.getAuthenticated = function () {
return App.db.data.app.authenticated;
};
+App.db.getBGOOperationsCount = function () {
+ console.log('Trace: Entering db:getBGOOperationsCount function');
+ App.db.data = localStorage.getObject('ambari');
+ if (App.db.data.app.BGOOperationsCount) {
+ return App.db.data.app.BGOOperationsCount;
+ }
+ return 10;
+};
+
App.db.getFilterConditions = function(name) {
console.log('TRACE: Entering db:getFilterConditions function');
App.db.data = localStorage.getObject('ambari');
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3f4876f/ambari-web/app/utils/host_progress_popup.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/host_progress_popup.js b/ambari-web/app/utils/host_progress_popup.js
index 3c63965..56ca788 100644
--- a/ambari-web/app/utils/host_progress_popup.js
+++ b/ambari-web/app/utils/host_progress_popup.js
@@ -789,6 +789,22 @@ App.HostPopup = Em.Object.create({
},
/**
+ * Onclick handler for Show more ..
+ */
+ requestMoreOperations: function () {
+ var count = App.db.getBGOOperationsCount();
+ App.db.setBGOOperationsCount(count + 10);
+ App.router.get('backgroundOperationsController').requestMostRecent();
+ },
+
+ setShowMoreAvailable: function () {
+ if (this.get('parentView.isOpen')) {
+ this.set('isShowMore', App.router.get("backgroundOperationsController.isShowMoreAvailable"));
+ }
+ }.observes('parentView.isOpen', 'App.router.backgroundOperationsController.isShowMoreAvailable'),
+ isShowMore: true,
+
+ /**
* Onclick handler for selected Service
* @param {Object} event
*/