From 6001ff801e211e8385966d2f2b773e59b4667dd9 Mon Sep 17 00:00:00 2001 From: Vito Date: Mon, 6 Jul 2020 11:53:23 +0100 Subject: [PATCH] [ADF-5175] - perform the search when at least one filter is active (#5836) * [ADF-5175] - perform the search when at least one filter is active * [ADF-5175] - removed wrong attempt * [ADF-5175] - removed unused import --- .../search-header.component.spec.ts | 25 +++++++++++++++++++ .../search-header/search-header.component.ts | 6 ++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts b/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts index 8856d5856f..3ce1e1e833 100644 --- a/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-header/search-header.component.spec.ts @@ -109,6 +109,7 @@ describe('SearchHeaderComponent', () => { expect(newNodePaging).toBe(fakeNodePaging); done(); }); + const maxItem = new SimpleChange(10, 20, false); component.ngOnChanges({ 'maxItems': maxItem }); fixture.detectChanges(); @@ -122,6 +123,7 @@ describe('SearchHeaderComponent', () => { expect(newNodePaging).toBe(fakeNodePaging); done(); }); + const skipCount = new SimpleChange(0, 10, false); component.ngOnChanges({ 'skipCount': skipCount }); fixture.detectChanges(); @@ -137,6 +139,7 @@ describe('SearchHeaderComponent', () => { component.clear.subscribe(() => { done(); }); + const menuButton: HTMLButtonElement = fixture.nativeElement.querySelector('#filter-menu-button'); menuButton.click(); fixture.detectChanges(); @@ -144,5 +147,27 @@ describe('SearchHeaderComponent', () => { const clearButton = fixture.debugElement.query(By.css('#clear-filter-button')); clearButton.triggerEventHandler('click', fakeEvent); fixture.detectChanges(); + await fixture.whenStable(); + }); + + it('should execute the query again if there are more filter actives after a clear', async (done) => { + spyOn(queryBuilder, 'isNoFilterActive').and.returnValue(false); + spyOn(alfrescoApiService.searchApi, 'search').and.returnValue(Promise.resolve(fakeNodePaging)); + spyOn(queryBuilder, 'buildQuery').and.returnValue({}); + spyOn(component.widgetContainer, 'resetInnerWidget').and.stub(); + const fakeEvent = jasmine.createSpyObj('event', ['stopPropagation']); + const menuButton: HTMLButtonElement = fixture.nativeElement.querySelector('#filter-menu-button'); + component.update.subscribe((newNodePaging) => { + expect(newNodePaging).toBe(fakeNodePaging); + done(); + }); + + menuButton.click(); + fixture.detectChanges(); + await fixture.whenStable(); + const clearButton = fixture.debugElement.query(By.css('#clear-filter-button')); + clearButton.triggerEventHandler('click', fakeEvent); + fixture.detectChanges(); + await fixture.whenStable(); }); }); diff --git a/lib/content-services/src/lib/search/components/search-header/search-header.component.ts b/lib/content-services/src/lib/search/components/search-header/search-header.component.ts index 7af2865cea..900d1af331 100644 --- a/lib/content-services/src/lib/search/components/search-header/search-header.component.ts +++ b/lib/content-services/src/lib/search/components/search-header/search-header.component.ts @@ -149,7 +149,11 @@ export class SearchHeaderComponent implements OnInit, OnChanges, OnDestroy { if (this.widgetContainer) { this.widgetContainer.resetInnerWidget(); this.searchHeaderQueryBuilder.removeActiveFilter(this.category.columnKey); - this.clear.emit(); + if (this.searchHeaderQueryBuilder.isNoFilterActive()) { + this.clear.emit(); + } else { + this.searchHeaderQueryBuilder.execute(); + } } }