Skip to content

Commit e5ba973

Browse files
authored
Merge pull request #7414 from IgniteUI/dmdimitrov/issue7343-8.2.x
fix(grid): end grid edit on advanced filtering clear/apply - 8.2.x
2 parents 02d55ea + dbafa48 commit e5ba973

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-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
@@ -814,6 +814,7 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
814814
this.cancelOperandEdit();
815815
this.currentGroup = null;
816816
this.rootGroup = null;
817+
this.grid.endEdit(false);
817818
this.grid.advancedFilteringExpressionsTree = null;
818819
}
819820

@@ -824,6 +825,7 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
824825
}
825826

826827
public applyChanges() {
828+
this.grid.endEdit(false);
827829
this.exitOperandEdit();
828830
this.grid.advancedFilteringExpressionsTree = this.createExpressionsTreeFromGroupItem(this.rootGroup);
829831
}

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

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

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

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

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

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

0 commit comments

Comments
 (0)