Skip to content

Commit a398ea8

Browse files
authored
Merge pull request #7413 from IgniteUI/dmdimitrov/issue7343-9.0.x
fix(grid): end grid edit on advanced filtering clear/apply - 9.0.x
2 parents 7fc569a + f9adcf4 commit a398ea8

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed

projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,6 +1062,7 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
10621062
* @hidden @internal
10631063
*/
10641064
public onClearButtonClick() {
1065+
this.grid.endEdit(false);
10651066
this.grid.advancedFilteringExpressionsTree = null;
10661067
}
10671068

@@ -1078,6 +1079,7 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
10781079
* @hidden @internal
10791080
*/
10801081
public applyChanges() {
1082+
this.grid.endEdit(false);
10811083
this.exitOperandEdit();
10821084
this.grid.advancedFilteringExpressionsTree = this.createExpressionsTreeFromGroupItem(this.rootGroup);
10831085
}

projects/igniteui-angular/src/lib/grids/grid/grid-cell-editing.spec.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,44 @@ describe('IgxGrid - Cell Editing #grid', () => {
264264
expect(editCell.nativeElement.value).toBe('test');
265265
expect(firstCell.editMode).toBeTruthy();
266266
}));
267+
268+
it('should end cell editing when clearing or applying advanced filter', () => {
269+
const cell = grid.getCellByColumn(0, 'fullName');
270+
271+
// Enter cell edit mode
272+
UIInteractions.simulateDoubleClickAndSelectEvent(cell);
273+
fixture.detectChanges();
274+
expect(cell.editMode).toBe(true);
275+
276+
// Open Advanced Filtering dialog.
277+
grid.openAdvancedFilteringDialog();
278+
fixture.detectChanges();
279+
280+
// Clear the filters.
281+
GridFunctions.clickAdvancedFilteringClearFilterButton(fixture);
282+
fixture.detectChanges();
283+
284+
expect(cell.editMode).toBe(false);
285+
286+
// Close the dialog.
287+
GridFunctions.clickAdvancedFilteringCancelButton(fixture);
288+
fixture.detectChanges();
289+
290+
// Enter cell edit mode
291+
UIInteractions.simulateDoubleClickAndSelectEvent(cell);
292+
fixture.detectChanges();
293+
expect(cell.editMode).toBe(true);
294+
295+
// Open Advanced Filtering dialog.
296+
grid.openAdvancedFilteringDialog();
297+
fixture.detectChanges();
298+
299+
// Apply the filters.
300+
GridFunctions.clickAdvancedFilteringApplyButton(fixture);
301+
fixture.detectChanges();
302+
303+
expect(cell.editMode).toBe(false);
304+
});
267305
});
268306

269307
describe('Scroll, pin and blur', () => {

projects/igniteui-angular/src/lib/grids/grid/grid-row-editing.spec.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,46 @@ describe('IgxGrid - Row Editing #grid', () => {
340340
cell.setEditMode(false);
341341
tick(16);
342342
}));
343+
344+
it('should end row editing when clearing or applying advanced filter', () => {
345+
fix.detectChanges();
346+
const row = grid.getRowByIndex(2);
347+
const cell = grid.getCellByColumn(2, 'ProductName');
348+
349+
// Enter row edit mode
350+
UIInteractions.simulateDoubleClickAndSelectEvent(cell);
351+
fix.detectChanges();
352+
expect(row.inEditMode).toBe(true);
353+
354+
// Open Advanced Filtering dialog.
355+
grid.openAdvancedFilteringDialog();
356+
fix.detectChanges();
357+
358+
// Clear the filters.
359+
GridFunctions.clickAdvancedFilteringClearFilterButton(fix);
360+
fix.detectChanges();
361+
362+
expect(row.inEditMode).toBe(false);
363+
364+
// Close the dialog.
365+
GridFunctions.clickAdvancedFilteringCancelButton(fix);
366+
fix.detectChanges();
367+
368+
// Enter row edit mode
369+
UIInteractions.simulateDoubleClickAndSelectEvent(cell);
370+
fix.detectChanges();
371+
expect(row.inEditMode).toBe(true);
372+
373+
// Open Advanced Filtering dialog.
374+
grid.openAdvancedFilteringDialog();
375+
fix.detectChanges();
376+
377+
// Apply the filters.
378+
GridFunctions.clickAdvancedFilteringApplyButton(fix);
379+
fix.detectChanges();
380+
381+
expect(row.inEditMode).toBe(false);
382+
});
343383
});
344384

345385
describe('Navigation - Keyboard', () => {

0 commit comments

Comments
 (0)