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 2015/08/18 13:13:18 UTC
ambari git commit: AMBARI-12805. Filtering in the "Select
Configuration Group Hosts"-popup is too slow,
when there are more than 1000 hosts (onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/branch-2.1 82117f7f0 -> 6481861a4
AMBARI-12805. Filtering in the "Select Configuration Group Hosts"-popup is too slow, when there are more than 1000 hosts (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6481861a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6481861a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6481861a
Branch: refs/heads/branch-2.1
Commit: 6481861a43847a89ba869d3b5bdd1b5532e86345
Parents: 82117f7
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Tue Aug 18 14:12:44 2015 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Tue Aug 18 14:13:05 2015 +0300
----------------------------------------------------------------------
ambari-web/app/utils/hosts.js | 53 ++++++++++++++++++++++++++++++++------
1 file changed, 45 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/6481861a/ambari-web/app/utils/hosts.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/hosts.js b/ambari-web/app/utils/hosts.js
index c559214..b89bd84 100644
--- a/ambari-web/app/utils/hosts.js
+++ b/ambari-web/app/utils/hosts.js
@@ -50,11 +50,17 @@ module.exports = {
popupDescription = $.extend(true, defaultPopupDescription, popupDescription);
}
App.ModalPopup.show({
+
classNames: [ 'sixty-percent-width-modal' ],
+
header: popupDescription.header,
+
dialogMessage: popupDescription.dialogMessage,
+
warningMessage: null,
+
availableHosts: [],
+
onPrimary: function () {
this.set('warningMessage', null);
var arrayOfSelectedHosts = this.get('availableHosts').filterProperty('selected', true).mapProperty('host.id');
@@ -63,26 +69,43 @@ module.exports = {
return;
}
callback(arrayOfSelectedHosts);
- console.debug('(new-selectedHosts)=', arrayOfSelectedHosts);
this.hide();
},
+
disablePrimary: function () {
return !this.get('isLoaded');
}.property('isLoaded'),
+
onSecondary: function () {
callback(null);
this.hide();
},
+
bodyClass: App.TableView.extend({
+
templateName: require('templates/common/configs/overrideWindow'),
+
controllerBinding: 'App.router.mainServiceInfoConfigsController',
+
isPaginate: true,
- filteredContent: function() {
- return this.get('parentView.availableHosts').filterProperty('filtered') || [];
- }.property('parentView.availableHosts.@each.filtered'),
+
+ filteredContent: [],
+
+ filteredContentObs: function() {
+ Em.run.once(this, this.filteredContentObsOnce);
+ }.observes('parentView.availableHosts.@each.filtered'),
+
+ filteredContentObsOnce: function() {
+ var filteredContent = this.get('parentView.availableHosts').filterProperty('filtered') || [];
+ this.set('filteredContent', filteredContent);
+ },
+
filterText: '',
+
filterTextPlaceholder: Em.I18n.t('hosts.selectHostsDialog.filter.placeHolder'),
+
filterColumn: null,
+
filterColumns: Ember.A([
Ember.Object.create({id: 'ip', name: 'IP Address', selected: true}),
Ember.Object.create({id: 'cpu', name: 'CPU', selected: false}),
@@ -92,19 +115,25 @@ module.exports = {
Ember.Object.create({id: 'diskTotal', name: 'Total Disks Capacity', selected: false}),
Ember.Object.create({id: 'disksMounted', name: '# of Disk Mounts', selected: false})
]),
+
showOnlySelectedHosts: false,
+
filterComponents: validComponents,
+
filterComponent: null,
+
isDisabled: function () {
return !this.get('parentView.isLoaded');
}.property('parentView.isLoaded'),
- didInsertElement: function(){
+
+ didInsertElement: function() {
var defaultFilterColumn = this.get('filterColumns').findProperty('selected');
this.set('filterColumn', defaultFilterColumn);
initialHosts.setEach('filtered', true);
this.set('parentView.availableHosts', initialHosts);
this.set('parentView.isLoaded', true);
},
+
filterHosts: function () {
var filterText = this.get('filterText');
var showOnlySelectedHosts = this.get('showOnlySelectedHosts');
@@ -133,11 +162,13 @@ module.exports = {
this.set('startIndex', 1);
}.observes('parentView.availableHosts', 'filterColumn', 'filterText', 'filterComponent', 'filterComponent.componentName', 'showOnlySelectedHosts'),
+
hostSelectMessage: function () {
var hosts = this.get('parentView.availableHosts');
var selectedHosts = hosts.filterProperty('selected', true);
return this.t('hosts.selectHostsDialog.selectedHostsLink').format(selectedHosts.get('length'), hosts.get('length'))
}.property('parentView.availableHosts.@each.selected'),
+
selectFilterColumn: function (event) {
if (event != null && event.context != null && event.context.id != null) {
var filterColumn = this.get('filterColumn');
@@ -148,6 +179,7 @@ module.exports = {
this.set('filterColumn', event.context);
}
},
+
selectFilterComponent: function (event) {
if (event != null && event.context != null && event.context.componentName != null) {
var currentFilter = this.get('filterComponent');
@@ -163,18 +195,23 @@ module.exports = {
}
}
},
+
allHostsSelected: false,
+
toggleSelectAllHosts: function (event) {
this.get('parentView.availableHosts').filterProperty('filtered').setEach('selected', this.get('allHostsSelected'));
}.observes('allHostsSelected'),
+
toggleShowSelectedHosts: function () {
var currentFilter = this.get('filterComponent');
if (currentFilter != null) {
currentFilter.set('selected', false);
}
- this.set('filterComponent', null);
- this.set('filterText', null);
- this.set('showOnlySelectedHosts', !this.get('showOnlySelectedHosts'));
+ this.setProperties({
+ filterComponent: null,
+ filterText: null
+ });
+ this.toggleProperty('showOnlySelectedHosts');
}
})
});