Skip to content

Commit ac720a1

Browse files
Merge pull request #9034 from IgniteUI/gedinakova/fix-9013-10.2
fix(AdvancedFilter): Initialize lastActiveNode.
2 parents 5815121 + a75f2bd commit ac720a1

File tree

3 files changed

+57
-3
lines changed

3 files changed

+57
-3
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { AbsoluteScrollStrategy, AutoPositionStrategy } from '../../../services/
1919
import { IgxColumnComponent } from '../../columns/column.component';
2020
import { GridType } from '../../common/grid.interface';
2121
import { DataUtil } from './../../../data-operations/data-util';
22+
import { IActiveNode } from '../../grid-navigation.service';
2223

2324
/**
2425
* @hidden
@@ -132,7 +133,7 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
132133
/**
133134
* @hidden @internal
134135
*/
135-
public lastActiveNode;
136+
public lastActiveNode = {} as IActiveNode;
136137

137138
private _positionSettings = {
138139
horizontalStartPoint: HorizontalAlignment.Right,

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

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import {
1818
IgxGridAdvancedFilteringBindingComponent
1919
} from '../../test-utils/grid-samples.spec';
2020
import { ControlsFunction } from '../../test-utils/controls-functions.spec';
21+
import { IgxHierGridExternalAdvancedFilteringComponent } from '../../test-utils/hierarchical-grid-components.spec';
22+
import { IgxHierarchicalGridModule, IgxHierarchicalGridComponent } from '../hierarchical-grid/public_api';
2123

2224
const ADVANCED_FILTERING_OPERATOR_LINE_AND_CSS_CLASS = 'igx-filter-tree__line--and';
2325
const ADVANCED_FILTERING_OPERATOR_LINE_OR_CSS_CLASS = 'igx-filter-tree__line--or';
@@ -35,11 +37,13 @@ describe('IgxGrid - Advanced Filtering #grid - ', () => {
3537
IgxGridAdvancedFilteringColumnGroupComponent,
3638
IgxGridAdvancedFilteringComponent,
3739
IgxGridExternalAdvancedFilteringComponent,
38-
IgxGridAdvancedFilteringBindingComponent
40+
IgxGridAdvancedFilteringBindingComponent,
41+
IgxHierGridExternalAdvancedFilteringComponent
3942
],
4043
imports: [
4144
NoopAnimationsModule,
42-
IgxGridModule]
45+
IgxGridModule,
46+
IgxHierarchicalGridModule]
4347
}).compileComponents();
4448
}));
4549

@@ -2669,6 +2673,28 @@ describe('IgxGrid - Advanced Filtering #grid - ', () => {
26692673
expect(grid.rowList.length).toBe(1);
26702674
expect(GridFunctions.getCurrentCellFromGrid(grid, 0, 1).value).toBe('Ignite UI for JavaScript');
26712675
}));
2676+
2677+
it('Should allow hosting Advanced Filtering dialog outside of the hierarchical grid without any console errors.', fakeAsync(() => {
2678+
fix = TestBed.createComponent(IgxHierGridExternalAdvancedFilteringComponent);
2679+
const hgrid: IgxHierarchicalGridComponent = fix.componentInstance.hgrid;
2680+
fix.detectChanges();
2681+
spyOn(console, 'error');
2682+
2683+
const advFilterDialog = fix.nativeElement.querySelector('.igx-advanced-filter');
2684+
const applyFilterButton: any = Array.from(advFilterDialog.querySelectorAll('button'))
2685+
.find((b: any) => b.innerText.toLowerCase() === 'apply');
2686+
2687+
applyFilterButton.click();
2688+
tick(100);
2689+
fix.detectChanges();
2690+
2691+
UIInteractions.simulatePointerEvent('pointerenter',
2692+
hgrid.nativeElement.querySelectorAll('igx-hierarchical-grid-cell')[0], 5, 5);
2693+
fix.detectChanges();
2694+
2695+
expect(console.error).not.toHaveBeenCalled();
2696+
}));
2697+
26722698
});
26732699

26742700
describe('Expression tree bindings - ', () => {

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,30 @@ export class IgxHierarchicalGridActionStripComponent extends IgxHierarchicalGrid
235235
@ViewChild('actionStrip2', { read: IgxActionStripComponent, static: true })
236236
public actionStripChild: IgxActionStripComponent;
237237
}
238+
239+
@Component({
240+
template: `
241+
<igx-hierarchical-grid #grid1 [data]="data" [height]="'300px'" [width]="'700px'" #hierarchicalGrid [primaryKey]="'ID'">
242+
<igx-column field="ID" ></igx-column>
243+
<igx-column field="ChildLevels"></igx-column>
244+
<igx-column field="ProductName"></igx-column>
245+
<igx-row-island [key]="'childData'" #rowIsland [primaryKey]="'ID'" [rowSelection]="'single'">
246+
<igx-column field="ID"> </igx-column>
247+
<igx-column field="ChildLevels"></igx-column>
248+
<igx-column field="ProductName"></igx-column>
249+
<igx-row-island [key]="'childData'" #rowIsland2 [primaryKey]="'ID'" [rowSelection]="'none'">
250+
<igx-column field="ID"></igx-column>
251+
<igx-column field="ChildLevels"></igx-column>
252+
<igx-column field="ProductName"></igx-column>
253+
</igx-row-island>
254+
</igx-row-island>
255+
</igx-hierarchical-grid>
256+
<igx-advanced-filtering-dialog [grid]="grid1">
257+
</igx-advanced-filtering-dialog>`
258+
})
259+
export class IgxHierGridExternalAdvancedFilteringComponent extends IgxHierarchicalGridTestBaseComponent {
260+
// @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true })
261+
// public hgrid: IgxHierarchicalGridComponent;
262+
263+
public data = SampleTestData.generateHGridData(5, 3);
264+
}

0 commit comments

Comments
 (0)