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/07/03 22:14:07 UTC
[2/2] git commit: AMBARI-6376. Excessive requests are sending on
hosts page. (akovalenko)
AMBARI-6376. Excessive requests are sending on hosts page. (akovalenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7e370c3b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7e370c3b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7e370c3b
Branch: refs/heads/trunk
Commit: 7e370c3b632a1b0647b23dd6f290e2b124a0a7d2
Parents: ccc4c3b
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Thu Jul 3 23:13:14 2014 +0300
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Thu Jul 3 23:13:14 2014 +0300
----------------------------------------------------------------------
.../app/mixins/common/tableServerProvider.js | 21 ++++++++------
ambari-web/app/views/common/sort_view.js | 3 +-
ambari-web/app/views/common/table_view.js | 8 ++++--
ambari-web/app/views/main/host.js | 29 ++++++++------------
4 files changed, 31 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e370c3b/ambari-web/app/mixins/common/tableServerProvider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/tableServerProvider.js b/ambari-web/app/mixins/common/tableServerProvider.js
index 113f24e..b1942ce 100644
--- a/ambari-web/app/mixins/common/tableServerProvider.js
+++ b/ambari-web/app/mixins/common/tableServerProvider.js
@@ -83,15 +83,18 @@ App.TableServerProvider = Em.Mixin.create({
*/
updateFilter: function (iColumn, value, type) {
var self = this;
- if (!this.get('filteringComplete')) {
- clearTimeout(this.get('timeOut'));
- this.set('timeOut', setTimeout(function() {
- self.updateFilter(iColumn, value, type);
- }, this.get('filterWaitingTime')));
- } else {
- clearTimeout(this.get('timeOut'));
- this.saveFilterConditions(iColumn, value, type, false);
- this.refresh();
+ this.saveFilterConditions(iColumn, value, type, false);
+ // if initial load finished
+ if (this.get('tableFilteringComplete')) {
+ if (!this.get('filteringComplete')) {
+ clearTimeout(this.get('timeOut'));
+ this.set('timeOut', setTimeout(function () {
+ self.updateFilter(iColumn, value, type);
+ }, this.get('filterWaitingTime')));
+ } else {
+ clearTimeout(this.get('timeOut'));
+ this.refresh();
+ }
}
},
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e370c3b/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 77db481..79ea140 100644
--- a/ambari-web/app/views/common/sort_view.js
+++ b/ambari-web/app/views/common/sort_view.js
@@ -199,7 +199,8 @@ var serverWrapperView = Em.View.extend({
var self = this;
statuses.forEach(function (st) {
if (st.status !== 'sorting') {
- self.sort(childViews.findProperty('name', st.name), (st.status === 'sorting_desc'));
+ self.get('childViews').findProperty('name', childViews.findProperty('name', st.name).get('name')).set('status', st.status);
+ self.saveSortStatuses();
self.get('controller').set('sortingColumn', childViews.findProperty('name', st.name));
} else {
childViews.findProperty('name', st.name).set('status', st.status);
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e370c3b/ambari-web/app/views/common/table_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/table_view.js b/ambari-web/app/views/common/table_view.js
index 3e515bf..087df8f 100644
--- a/ambari-web/app/views/common/table_view.js
+++ b/ambari-web/app/views/common/table_view.js
@@ -82,19 +82,23 @@ App.TableView = Em.View.extend(App.UserPref, {
var childViews = this.get('childViews');
- filterConditions.forEach(function(condition) {
+ filterConditions.forEach(function(condition, index, filteredConditions) {
var view = !Em.isNone(condition.iColumn) && childViews.findProperty('column', condition.iColumn);
if (view) {
view.set('value', condition.value);
Em.run.next(function() {
view.showClearFilter();
+ // check if it is the last iteration
+ if (filteredConditions.length - index - 1 === 0) {
+ self.set('tableFilteringComplete', true);
+ }
});
}
});
} else {
this.clearFilters();
+ this.set('tableFilteringComplete', true);
}
- self.set('tableFilteringComplete', true);
},
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e370c3b/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 c20994c..c315ebf 100644
--- a/ambari-web/app/views/main/host.js
+++ b/ambari-web/app/views/main/host.js
@@ -105,7 +105,7 @@ App.MainHostView = App.TableView.extend(App.TableServerProvider, {
*/
paginationInfo: function () {
return this.t('tableView.filters.paginationInfo').format(this.get('startIndex'), this.get('endIndex'), this.get('filteredCount'));
- }.property('totalCount', 'endIndex', 'filteredCount'),
+ }.property('startIndex', 'endIndex', 'filteredCount'),
paginationLeftClass: function () {
if (this.get("startIndex") > 1 && this.get('filteringComplete')) {
@@ -147,7 +147,7 @@ App.MainHostView = App.TableView.extend(App.TableServerProvider, {
change: function () {
this.get('parentView').saveDisplayLength();
var self = this;
- if (this.get('parentView.startIndex') === 1) {
+ if (this.get('parentView.startIndex') === 1 || this.get('parentView.startIndex') === 0) {
Ember.run.next(function () {
self.get('parentView').updateViewProperty();
});
@@ -178,7 +178,7 @@ App.MainHostView = App.TableView.extend(App.TableServerProvider, {
} else if (!this.get('startIndex')) {
this.set('startIndex', 1);
}
- }.observes('displayLength', 'filteredCount'),
+ },
clearFiltersObs: function() {
@@ -195,21 +195,6 @@ App.MainHostView = App.TableView.extend(App.TableServerProvider, {
willInsertElement: function () {
this._super();
this.set('startIndex', this.get('controller.startIndex'));
- var filterConditions = App.db.getFilterConditions(this.get('controller.name'));
- if (filterConditions) {
- var childViews = this.get('childViews');
- filterConditions.forEach(function(condition) {
- var view = !Em.isNone(condition.iColumn) && childViews.findProperty('column', condition.iColumn);
- if (view) {
- view.set('value', condition.value);
- Em.run.next(function() {
- view.showClearFilter();
- });
- }
- });
- } else {
- this.clearFilters();
- }
this.addObserver('pageContent.@each.selected', this, this.selectedHostsObserver);
},
@@ -234,9 +219,17 @@ App.MainHostView = App.TableView.extend(App.TableServerProvider, {
this.set('controller.isCountersUpdating', true);
this.get('controller').updateStatusCounters();
this.addObserver('filteringComplete', this, this.overlayObserver);
+ this.addObserver('displayLength', this, this.updatePaging);
+ this.addObserver('filteredCount', this, this.updatePaging);
this.overlayObserver();
},
+ onInitialLoad: function () {
+ if (this.get('tableFilteringComplete')) {
+ this.refresh();
+ }
+ }.observes('tableFilteringComplete'),
+
/**
* synchronize properties of view with controller to generate query parameters
*/