[ADF-3134] fix increasing search calls issue (#3444)

This commit is contained in:
Suzana Dirla 2018-06-06 20:58:13 +03:00 committed by Denys Vuika
parent bbe0904447
commit 8d363be9b3

View File

@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component, ViewEncapsulation, OnInit } from '@angular/core'; import { Component, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';
import { MatCheckboxChange } from '@angular/material'; import { MatCheckboxChange } from '@angular/material';
import { SearchService, TranslationService } from '@alfresco/adf-core'; import { SearchService, TranslationService } from '@alfresco/adf-core';
import { SearchQueryBuilderService } from '../../search-query-builder.service'; import { SearchQueryBuilderService } from '../../search-query-builder.service';
@ -33,10 +33,11 @@ import { SearchFilterList } from './models/search-filter-list.model';
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
host: { class: 'adf-search-filter' } host: { class: 'adf-search-filter' }
}) })
export class SearchFilterComponent implements OnInit { export class SearchFilterComponent implements OnInit, OnDestroy {
private DEFAULT_PAGE_SIZE = 5; private DEFAULT_PAGE_SIZE = 5;
isAlive = true;
selectedFacetQueries: string[] = []; selectedFacetQueries: string[] = [];
selectedBuckets: FacetFieldBucket[] = []; selectedBuckets: FacetFieldBucket[] = [];
responseFacetQueries: ResponseFacetQueryList; responseFacetQueries: ResponseFacetQueryList;
@ -57,20 +58,28 @@ export class SearchFilterComponent implements OnInit {
this.facetQueriesExpanded = queryBuilder.config.facetQueries.expanded; this.facetQueriesExpanded = queryBuilder.config.facetQueries.expanded;
} }
this.queryBuilder.updated.subscribe(query => { this.queryBuilder.updated
.takeWhile(() => this.isAlive)
.subscribe(query => {
this.queryBuilder.execute(); this.queryBuilder.execute();
}); });
} }
ngOnInit() { ngOnInit() {
if (this.queryBuilder) { if (this.queryBuilder) {
this.queryBuilder.executed.subscribe(data => { this.queryBuilder.executed
.takeWhile(() => this.isAlive)
.subscribe(data => {
this.onDataLoaded(data); this.onDataLoaded(data);
this.searchService.dataLoaded.next(data); this.searchService.dataLoaded.next(data);
}); });
} }
} }
ngOnDestroy() {
this.isAlive = false;
}
get isFacetQueriesDefined() { get isFacetQueriesDefined() {
return this.queryBuilder.hasFacetQueries; return this.queryBuilder.hasFacetQueries;
} }