Skip to content

Commit ae0f2c4

Browse files
Merge pull request #7395 from IgniteUI/ibarakov/issue7350-9.0.x
Don't show default filter on custom filter columns
2 parents d5b92a0 + a57b949 commit ae0f2c4

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2504,6 +2504,25 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
25042504
expect(GridFunctions.getFilterCell(fix, 'ReleaseDate').query(By.css('.custom-filter'))).not.toBeNull(
25052505
'\`ReleaseDate\` customer filter tempalte was not found.');
25062506
}));
2507+
2508+
it('Should close default filter template when clicking on a column with custom one.', fakeAsync(() => {
2509+
// Click on a column with default filter
2510+
GridFunctions.clickFilterCellChip(fix, 'Licensed');
2511+
fix.detectChanges();
2512+
2513+
// Verify filter row is visible
2514+
let filterUIRow = fix.debugElement.query(By.css(FILTER_UI_ROW));
2515+
expect(filterUIRow).not.toBeNull();
2516+
2517+
// Click on a column with custom filter
2518+
const header = GridFunctions.getColumnHeaderByIndex(fix, 1);
2519+
header.click();
2520+
fix.detectChanges();
2521+
2522+
// Expect the filter row is closed
2523+
filterUIRow = fix.debugElement.query(By.css(FILTER_UI_ROW));
2524+
expect(filterUIRow).toBeNull('Default filter template was found on a column with custom filtering.');
2525+
}));
25072526
});
25082527
});
25092528

projects/igniteui-angular/src/lib/grids/headers/grid-header.component.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,13 @@ export class IgxGridHeaderComponent implements DoCheck, OnInit, OnDestroy {
163163
public onClick(event) {
164164
if (!this.colResizingService.isColumnResizing) {
165165
event.stopPropagation();
166+
166167
if (this.grid.filteringService.isFilterRowVisible) {
168+
if (this.column.filterCellTemplate) {
169+
this.grid.filteringRow.close();
170+
return;
171+
}
172+
167173
if (this.column.filterable && !this.column.columnGroup &&
168174
!this.grid.filteringService.isFilterComplex(this.column.field)) {
169175
this.grid.filteringService.filteredColumn = this.column;

projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,6 +1120,9 @@ export class IgxGridFilteringESFTemplatesComponent extends BasicGridComponent {
11201120
<igx-column width="100px" [field]="'ReleaseDate'" [header]="'ReleaseDate'" headerClasses="header-release-date"
11211121
[filterable]="filterable" [resizable]="resizable" dataType="date" [filterCellTemplate]="filterTemplate">
11221122
</igx-column>
1123+
<igx-column width="100px" field="Licensed" [filterable]="filterable"
1124+
[resizable]="resizable" dataType="boolean">
1125+
</igx-column>
11231126
</igx-grid>
11241127
<ng-template #filterTemplate igxFilterCellTemplate let-column="column">
11251128
<div class="custom-filter" style="flex-grow: 1;">

0 commit comments

Comments
 (0)