Skip to content

Commit d565fbe

Browse files
Merge pull request #5733 from IgniteUI/astaev/issue5548-master
fix(fitlering): Close filter row when hide current column #5548
2 parents 2822fe3 + d4f8888 commit d565fbe

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { IgxDatePipeComponent } from '../grid.common';
1212
import { IgxColumnComponent } from '../column.component';
1313
import { IFilteringOperation } from '../../data-operations/filtering-condition';
1414
import { GridBaseAPIService } from '../api.service';
15+
import { IColumnVisibilityChangedEventArgs } from '../grid';
1516

1617
const FILTERING_ICONS_FONT_SET = 'filtering-icons';
1718

@@ -113,6 +114,13 @@ export class IgxFilteringService implements OnDestroy {
113114
filterCell.updateFilterCellArea();
114115
});
115116
});
117+
118+
this.grid.onColumnVisibilityChanged.pipe(takeUntil(this.destroy$)).subscribe((eventArgs: IColumnVisibilityChangedEventArgs) => {
119+
if (this.grid.filteringRow && this.grid.filteringRow.column === eventArgs.column ) {
120+
this.grid.filteringRow.close();
121+
122+
}
123+
});
116124
}
117125
}
118126

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3336,6 +3336,44 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
33363336
expect(chips.length).toBe(2);
33373337
expect(grid.rowList.length).toBe(3);
33383338
}));
3339+
3340+
it('Should close filter row when hide the current column', (async () => {
3341+
grid.height = '700px';
3342+
grid.showToolbar = true;
3343+
grid.columnHiding = true;
3344+
fix.detectChanges();
3345+
await wait(16);
3346+
3347+
const prodNameCol = grid.columns.find((col) => col.field === 'ProductName');
3348+
GridFunctions.verifyColumnIsHidden(prodNameCol, false, 6);
3349+
3350+
GridFunctions.clickFilterCellChip(fix, 'ProductName');
3351+
fix.detectChanges();
3352+
3353+
// Check that the filterRow is opened
3354+
const filterUIRow = fix.debugElement.query(By.css(FILTER_UI_ROW));
3355+
expect(filterUIRow).not.toBeNull();
3356+
3357+
// Add first chip.
3358+
GridFunctions.typeValueInFilterRowInput('a', fix);
3359+
await wait(16);
3360+
3361+
const hideButton = GridFunctions.getColumnHidingButton(fix);
3362+
hideButton.focus();
3363+
await wait(100);
3364+
hideButton.click();
3365+
await wait(100);
3366+
fix.detectChanges();
3367+
3368+
const dropDown = fix.debugElement.query(By.css('igx-column-hiding'));
3369+
HelperUtils.getCheckboxInput('ProductName', dropDown, fix).click();
3370+
await wait(100);
3371+
fix.detectChanges();
3372+
3373+
// Check that the filterRow is closed
3374+
expect(fix.debugElement.query(By.css(FILTER_UI_ROW))).toBeNull();
3375+
GridFunctions.verifyColumnIsHidden(prodNameCol, true , 5);
3376+
}));
33393377
});
33403378

33413379
describe(null, () => {

0 commit comments

Comments
 (0)