Skip to content

Commit cb1aded

Browse files
Merge pull request #7459 from IgniteUI/ibarakov/issue7350-9.1.x
Dont show default filter on custom filter columns #7350
2 parents 77a6047 + f90de74 commit cb1aded

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
@@ -2524,6 +2524,25 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
25242524
expect(GridFunctions.getFilterCell(fix, 'ReleaseDate').query(By.css('.custom-filter'))).not.toBeNull(
25252525
'\`ReleaseDate\` customer filter template was not found.');
25262526
}));
2527+
2528+
it('Should close default filter template when clicking on a column with custom one.', fakeAsync(() => {
2529+
// Click on a column with default filter
2530+
GridFunctions.clickFilterCellChip(fix, 'Licensed');
2531+
fix.detectChanges();
2532+
2533+
// Verify filter row is visible
2534+
let filterUIRow = fix.debugElement.query(By.css(FILTER_UI_ROW));
2535+
expect(filterUIRow).not.toBeNull();
2536+
2537+
// Click on a column with custom filter
2538+
const header = GridFunctions.getColumnHeaderByIndex(fix, 1);
2539+
header.click();
2540+
fix.detectChanges();
2541+
2542+
// Expect the filter row is closed
2543+
filterUIRow = fix.debugElement.query(By.css(FILTER_UI_ROW));
2544+
expect(filterUIRow).toBeNull('Default filter template was found on a column with custom filtering.');
2545+
}));
25272546
});
25282547
});
25292548

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
@@ -162,7 +162,13 @@ export class IgxGridHeaderComponent implements DoCheck, OnInit, OnDestroy {
162162
@HostListener('click', ['$event'])
163163
public onClick(event) {
164164
if (!this.colResizingService.isColumnResizing) {
165+
165166
if (this.grid.filteringService.isFilterRowVisible) {
167+
if (this.column.filterCellTemplate) {
168+
this.grid.filteringRow.close();
169+
return;
170+
}
171+
166172
if (this.column.filterable && !this.column.columnGroup &&
167173
!this.grid.filteringService.isFilterComplex(this.column.field)) {
168174
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
@@ -1159,6 +1159,9 @@ export class IgxGridFilteringESFTemplatesComponent extends BasicGridComponent {
11591159
<igx-column width="100px" [field]="'ReleaseDate'" [header]="'ReleaseDate'" headerClasses="header-release-date"
11601160
[filterable]="filterable" [resizable]="resizable" dataType="date" [filterCellTemplate]="filterTemplate">
11611161
</igx-column>
1162+
<igx-column width="100px" field="Licensed" [filterable]="filterable"
1163+
[resizable]="resizable" dataType="boolean">
1164+
</igx-column>
11621165
</igx-grid>
11631166
<ng-template #filterTemplate igxFilterCellTemplate let-column="column">
11641167
<div class="custom-filter" style="flex-grow: 1;">

0 commit comments

Comments
 (0)