Skip to content

Commit 55d8327

Browse files
authored
fix(esf): add empty filter if no filter is applied - 11.1.x (#10275)
* fix(esf): add empty filter if no filter is applied
1 parent 2e747a0 commit 55d8327

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

Diff for: projects/igniteui-angular/src/lib/grids/filtering/grid-filtering.service.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -271,9 +271,10 @@ export class IgxFilteringService implements OnDestroy {
271271
}
272272
}
273273

274+
const emptyFilter = new FilteringExpressionsTree(null, field);
274275
const onFilteringEventArgs: IFilteringEventArgs = {
275276
owner: this.grid,
276-
filteringExpressions: null,
277+
filteringExpressions: emptyFilter,
277278
cancel: false };
278279

279280
this.grid.filtering.emit(onFilteringEventArgs);
@@ -286,7 +287,7 @@ export class IgxFilteringService implements OnDestroy {
286287
this.clear_filter(field);
287288

288289
// Wait for the change detection to update filtered data through the pipes and then emit the event.
289-
requestAnimationFrame(() => this.grid.onFilteringDone.emit(null));
290+
requestAnimationFrame(() => this.grid.onFilteringDone.emit(emptyFilter));
290291

291292
if (field) {
292293
const expressions = this.getExpressions(field);

Diff for: projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts

+12-8
Original file line numberDiff line numberDiff line change
@@ -485,9 +485,10 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
485485
GridFunctions.clickFilterCellChip(fix, columnName);
486486
GridFunctions.resetFilterRow(fix);
487487

488-
expect(grid.filtering.emit).toHaveBeenCalledWith({ owner: grid, cancel: false, filteringExpressions: null });
488+
const emptyFilter = new FilteringExpressionsTree(null, columnName);
489+
expect(grid.filtering.emit).toHaveBeenCalledWith({ owner: grid, cancel: false, filteringExpressions: emptyFilter });
489490
expect(grid.filtering.emit).toHaveBeenCalledTimes(2);
490-
expect(grid.onFilteringDone.emit).toHaveBeenCalledWith(null);
491+
expect(grid.onFilteringDone.emit).toHaveBeenCalledWith(emptyFilter);
491492
expect(grid.onFilteringDone.emit).toHaveBeenCalledTimes(2);
492493

493494
const filterUiRow = fix.debugElement.query(By.css(FILTER_UI_ROW));
@@ -512,9 +513,10 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
512513
tick(100);
513514
fix.detectChanges();
514515

515-
const args = { owner: grid, cancel: false, filteringExpressions: null };
516+
const emptyFilter = new FilteringExpressionsTree(null, columnName);
517+
const args = { owner: grid, cancel: false, filteringExpressions: emptyFilter };
516518
expect(grid.filtering.emit).toHaveBeenCalledWith(args);
517-
expect(grid.onFilteringDone.emit).toHaveBeenCalledWith(null);
519+
expect(grid.onFilteringDone.emit).toHaveBeenCalledWith(emptyFilter);
518520
}));
519521

520522
it('Removing second condition removes the And/Or button', fakeAsync(() => {
@@ -826,13 +828,14 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
826828
spyOn(grid.filtering, 'emit');
827829
spyOn(grid.onFilteringDone, 'emit');
828830

829-
grid.filter('ProductName', 'I', IgxStringFilteringOperand.instance().condition('startsWith'));
831+
const columnName = 'ProductName';
832+
grid.filter(columnName, 'I', IgxStringFilteringOperand.instance().condition('startsWith'));
830833
tick(30);
831834
fix.detectChanges();
832835

833836
expect(grid.rowList.length).toEqual(2);
834837

835-
const filteringExpressions = grid.filteringExpressionsTree.find('ProductName') as FilteringExpressionsTree;
838+
const filteringExpressions = grid.filteringExpressionsTree.find(columnName) as FilteringExpressionsTree;
836839
const args = { owner: grid, cancel: false, filteringExpressions };
837840
expect(grid.filtering.emit).toHaveBeenCalledWith(args);
838841
expect(grid.filtering.emit).toHaveBeenCalledTimes(1);
@@ -849,10 +852,11 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
849852

850853
expect(grid.rowList.length).toEqual(8);
851854

852-
args.filteringExpressions = null;
855+
const emptyFilter = new FilteringExpressionsTree(null, columnName);
856+
args.filteringExpressions = emptyFilter;
853857
expect(grid.filtering.emit).toHaveBeenCalledWith(args);
854858
expect(grid.filtering.emit).toHaveBeenCalledTimes(2);
855-
expect(grid.onFilteringDone.emit).toHaveBeenCalledWith(null);
859+
expect(grid.onFilteringDone.emit).toHaveBeenCalledWith(emptyFilter);
856860
expect(grid.onFilteringDone.emit).toHaveBeenCalledTimes(2);
857861
}));
858862

0 commit comments

Comments
 (0)