Skip to content

Commit 3e2baef

Browse files
authored
Merge pull request #12614 from IgniteUI/bpachilova/fix-12608
2 parents 006978f + fd14947 commit 3e2baef

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-clear-filters.component.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
[ngClass]="clearFilterClass()"
44
(keydown)="onClearFilterKeyDown($event)"
55
(click)="clearFilter()"
6-
role="menuitem">
6+
role="menuitem"
7+
[attr.aria-disabled]="!this.esf.column.filteringExpressionsTree">
78
<span>{{ esf.grid.resourceStrings.igx_grid_excel_filter_clear }}</span>
89
<igx-icon>clear</igx-icon>
910
</div>

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3442,6 +3442,37 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => {
34423442
expect(grid.filteredData).toBeNull();
34433443
}));
34443444

3445+
it('Should set the \'aria-disabled\' attribute for the ESF dialog clear filter button element with role=\'menuitem\'.', fakeAsync(() => {
3446+
GridFunctions.clickExcelFilterIconFromCode(fix, grid, 'ProductName');
3447+
expect(grid.filteredData).toBeNull();
3448+
let clearFilterButtonMenuTiemRole = GridFunctions.getClearFilterInExcelStyleFiltering(fix);
3449+
expect(clearFilterButtonMenuTiemRole.getAttribute('aria-disabled')).toBe('true');
3450+
3451+
const gridFilteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And);
3452+
const columnsFilteringTree = new FilteringExpressionsTree(FilteringLogic.Or, 'ProductName');
3453+
columnsFilteringTree.filteringOperands = [
3454+
{ fieldName: 'ProductName', searchVal: 'Angular', condition: IgxStringFilteringOperand.instance().condition('contains') },
3455+
{ fieldName: 'ProductName', searchVal: 'Ignite', condition: IgxStringFilteringOperand.instance().condition('contains') }
3456+
];
3457+
gridFilteringExpressionsTree.filteringOperands.push(columnsFilteringTree);
3458+
grid.filteringExpressionsTree = gridFilteringExpressionsTree;
3459+
fix.detectChanges();
3460+
3461+
GridFunctions.clickExcelFilterIconFromCode(fix, grid, 'ProductName');
3462+
expect(grid.filteredData.length).toEqual(2);
3463+
clearFilterButtonMenuTiemRole = GridFunctions.getClearFilterInExcelStyleFiltering(fix);
3464+
expect(clearFilterButtonMenuTiemRole.getAttribute('aria-disabled')).toBe('false');
3465+
3466+
const clearFilterButton = GridFunctions.getClearFilterInExcelStyleFiltering(fix);
3467+
clearFilterButton.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }));
3468+
tick(100);
3469+
fix.detectChanges();
3470+
3471+
expect(grid.filteredData).toBeNull();
3472+
clearFilterButtonMenuTiemRole = GridFunctions.getClearFilterInExcelStyleFiltering(fix);
3473+
expect(clearFilterButtonMenuTiemRole.getAttribute('aria-disabled')).toBe('true');
3474+
}));
3475+
34453476
it('Should update filter icon when dialog is closed and the filter has been changed.', fakeAsync(() => {
34463477
GridFunctions.clickExcelFilterIconFromCode(fix, grid, 'Downloads');
34473478

0 commit comments

Comments
 (0)