You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2014/12/18 13:49:45 UTC
ambari git commit: AMBARI-8787. Hosts page: Sorting by host name does
not work (onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 556f1249a -> cd171c7d5
AMBARI-8787. Hosts page: Sorting by host name does not work (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/cd171c7d
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/cd171c7d
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/cd171c7d
Branch: refs/heads/trunk
Commit: cd171c7d5331460ffc8b7257206f19e4c1e58fe9
Parents: 556f124
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Thu Dec 18 14:42:33 2014 +0200
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Thu Dec 18 14:42:33 2014 +0200
----------------------------------------------------------------------
ambari-web/app/controllers/main/host.js | 13 ++++++---
ambari-web/app/views/common/sort_view.js | 6 ++---
ambari-web/app/views/main/host.js | 2 +-
ambari-web/test/controllers/main/host_test.js | 31 ++++++++++++++++++++--
4 files changed, 43 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd171c7d/ambari-web/app/controllers/main/host.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/host.js b/ambari-web/app/controllers/main/host.js
index 989bd05..019ef65 100644
--- a/ambari-web/app/controllers/main/host.js
+++ b/ambari-web/app/controllers/main/host.js
@@ -171,10 +171,16 @@ App.MainHostController = Em.ArrayController.extend(App.TableServerMixin, {
return value;
},
+ /**
+ * Sort by host_name by default
+ * @method getSortProps
+ * @returns {{value: 'asc|desc', name: string, type: 'SORT'}[]}
+ */
getSortProps: function () {
- // sort by host_name by default
- if (App.db.getSortingStatuses(this.get('name')) && App.db.getSortingStatuses(this.get('name')).length === 0) {
- App.db.setSortingStatuses(this.get('name'), {
+ var controllerName = this.get('name'),
+ db = App.db.getSortingStatuses(controllerName);
+ if (db && db.everyProperty('status', 'sorting')) {
+ App.db.setSortingStatuses(controllerName, {
name: 'hostName',
status: 'sorting_asc'
});
@@ -184,6 +190,7 @@ App.MainHostController = Em.ArrayController.extend(App.TableServerMixin, {
/**
* get query parameters computed from filter properties, sort properties and custom properties of view
+ * @param {boolean} [skipNonFilterProperties]
* @return {Array}
* @method getQueryParameters
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd171c7d/ambari-web/app/views/common/sort_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/sort_view.js b/ambari-web/app/views/common/sort_view.js
index 3615af1..4cd8315 100644
--- a/ambari-web/app/views/common/sort_view.js
+++ b/ambari-web/app/views/common/sort_view.js
@@ -219,13 +219,13 @@ var serverWrapperView = Em.View.extend({
},
/**
- * Initialize and save sorting statuses: publicHostName sorting_asc
+ * Initialize and save sorting statuses: hostName sorting_asc
*/
loadSortStatuses: function () {
var statuses = [];
var childViews = this.get('childViews');
childViews.forEach(function (childView) {
- var sortStatus = (childView.get('name') == 'publicHostName' && childView.get('status') == 'sorting') ? 'sorting_asc' : childView.get('status');
+ var sortStatus = (childView.get('name') == 'hostName' && childView.get('status') == 'sorting') ? 'sorting_asc' : childView.get('status');
statuses.push({
name: childView.get('name'),
status: sortStatus
@@ -233,7 +233,7 @@ var serverWrapperView = Em.View.extend({
childView.set('status', sortStatus);
});
App.db.setSortingStatuses(this.get('controller.name'), statuses);
- this.get('controller').set('sortingColumn', childViews.findProperty('name', 'publicHostName'));
+ this.get('controller').set('sortingColumn', childViews.findProperty('name', 'hostName'));
},
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd171c7d/ambari-web/app/views/main/host.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host.js b/ambari-web/app/views/main/host.js
index b44619c..d85296b 100644
--- a/ambari-web/app/views/main/host.js
+++ b/ambari-web/app/views/main/host.js
@@ -496,7 +496,7 @@ App.MainHostView = App.TableView.extend(App.TableServerViewMixin, {
sortView: sort.serverWrapperView,
nameSort: sort.fieldView.extend({
column: 1,
- name:'publicHostName',
+ name:'hostName',
displayName: Em.I18n.t('common.name')
}),
ipSort: sort.fieldView.extend({
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd171c7d/ambari-web/test/controllers/main/host_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/host_test.js b/ambari-web/test/controllers/main/host_test.js
index 26cbb86..cb55bb4 100644
--- a/ambari-web/test/controllers/main/host_test.js
+++ b/ambari-web/test/controllers/main/host_test.js
@@ -24,7 +24,7 @@ require('mappers/server_data_mapper');
describe('MainHostController', function () {
- var hostController;
+ var hostController, db;
// @todo add unit tests after bulk ops reimplementing
describe('#bulkOperation', function() {
@@ -213,5 +213,32 @@ describe('MainHostController', function () {
expect(hostController.getQueryParameters().findProperty('key', 'Hosts/host_name').value).to.equal('.*someval.*');
});
});
-
+
+ describe('#getSortProps', function () {
+
+ beforeEach(function () {
+ db = {mainHostController: [
+ {name: 'hostName', status: 'sorting'}
+ ]};
+ hostController = App.MainHostController.create({});
+ sinon.stub(App.db, 'getSortingStatuses', function (k) {
+ return db[k];
+ });
+ sinon.stub(App.db, 'setSortingStatuses', function (k, v) {
+ db[k] = Em.typeOf(v) === 'array' ? v : [v];
+ });
+ });
+
+ afterEach(function () {
+ App.db.getSortingStatuses.restore();
+ App.db.setSortingStatuses.restore();
+ });
+
+ it('should set default sorting condition', function () {
+ hostController.getSortProps();
+ expect(db.mainHostController).to.eql([{name: 'hostName', status: 'sorting_asc'}]);
+ });
+
+ });
+
});