Skip to content

Commit 2a0c918

Browse files
authored
Merge branch '15.0.x' into mkirova/fix-12313
2 parents 04a95e5 + 6601fc3 commit 2a0c918

File tree

4 files changed

+49
-7
lines changed

4 files changed

+49
-7
lines changed

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,8 +1108,8 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirecti
11081108
const nestedColumns = childLayouts.map((layout) => layout.columnList.toArray());
11091109
const colsArray = [].concat.apply([], nestedColumns);
11101110
const colLength = this.columnList.length;
1111-
if (colsArray.length > 0) {
1112-
const topCols = this.columnList.filter((item) => colsArray.indexOf(item) === -1);
1111+
const topCols = this.columnList.filter((item) => colsArray.indexOf(item) === -1);
1112+
if (topCols.length > 0) {
11131113
this.updateColumns(topCols);
11141114
if (recalcColSizes && this.columns.length !== colLength) {
11151115
this.calculateGridSizes(false);

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

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ describe('Basic IgxHierarchicalGrid', () => {
3131
IgxHierarchicalGridCustomRowEditOverlayComponent,
3232
IgxHierarchicalGridAutoSizeColumnsComponent,
3333
IgxHierarchicalGridCustomTemplateComponent,
34-
IgxHierarchicalGridCustomFilteringTemplateComponent
34+
IgxHierarchicalGridCustomFilteringTemplateComponent,
35+
IgxHierarchicalGridToggleRIAndColsComponent
3536
],
3637
imports: [NoopAnimationsModule, IgxHierarchicalGridModule]
3738
}).compileComponents();
@@ -1623,6 +1624,27 @@ describe('Basic IgxHierarchicalGrid', () => {
16231624

16241625
});
16251626

1627+
describe('Columns and row islands runtime change', () => {
1628+
let fixture: ComponentFixture<IgxHierarchicalGridToggleRIAndColsComponent>;
1629+
let hierarchicalGrid: IgxHierarchicalGridComponent;
1630+
it('should allow changing columns runtime in root grid when there are no row islands.', fakeAsync(() => {
1631+
fixture = TestBed.createComponent(IgxHierarchicalGridToggleRIAndColsComponent);
1632+
fixture.detectChanges();
1633+
hierarchicalGrid = fixture.componentInstance.hgrid;
1634+
expect(hierarchicalGrid.childLayoutList.length).toBe(0);
1635+
expect(hierarchicalGrid.columns.length).toBe(0);
1636+
fixture.componentInstance.toggleColumns = true;
1637+
fixture.detectChanges();
1638+
tick();
1639+
fixture.detectChanges();
1640+
expect(hierarchicalGrid.columns.length).toBe(2);
1641+
1642+
fixture.componentInstance.toggleRI = true;
1643+
fixture.detectChanges();
1644+
expect(hierarchicalGrid.childLayoutList.length).toBe(1);
1645+
}));
1646+
});
1647+
16261648
describe('IgxHierarchicalGrid custom template #hGrid', () => {
16271649

16281650
it('should allow setting custom template for expand/collapse icons', async () => {
@@ -1915,7 +1937,21 @@ export class IgxHierarchicalGridSizingComponent {
19151937
export class IgxHierarchicalGridToggleRIComponent extends IgxHierarchicalGridTestBaseComponent {
19161938
public toggleRI = true;
19171939
public toggleChildRI = true;
1940+
}
19181941

1942+
@Component({
1943+
template: `
1944+
<igx-hierarchical-grid #hierarchicalGrid [data]="data"
1945+
[autoGenerate]="false" [height]="'400px'" [width]="'500px'">
1946+
<igx-column field="ID" *ngIf='toggleColumns'></igx-column>
1947+
<igx-column field="ProductName" *ngIf='toggleColumns'></igx-column>
1948+
<igx-row-island *ngIf='toggleRI' [key]="'childData'" [autoGenerate]="true">
1949+
</igx-row-island>
1950+
</igx-hierarchical-grid>`
1951+
})
1952+
export class IgxHierarchicalGridToggleRIAndColsComponent extends IgxHierarchicalGridToggleRIComponent {
1953+
public toggleRI = false;
1954+
public toggleColumns = false;
19191955
}
19201956

19211957
@Component({

src/app/hierarchical-grid/hierarchical-grid.sample.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,17 @@ <h4 class="sample-title">Sample two</h4>
140140
<h4 class="sample-title">Sample three (batch editing)</h4>
141141
<div class="sample-actions">
142142
<button igxButton="raised" (click)='riToggle = !riToggle'>Change row islands runtime</button>
143+
<button igxButton="raised" (click)="columnsReady = !columnsReady">Toggle columns</button>
144+
<button igxButton="raised" (click)="layoutsReady = !layoutsReady">Toggle child layouts</button>
143145
</div>
144146
<igx-hierarchical-grid [batchEditing]="true"
145-
[rowEditable]="true" [primaryKey]="'ID'" [data]="localData" [autoGenerate]="true" [height]="'600px'" [width]="'800px'" #hGrid2>
146-
147-
<igx-row-island [key]="'childData'" [primaryKey]="'ID'" [autoGenerate]="true" [rowSelection]='selectionMode' [batchEditing]="true" [rowEditable]="true"
147+
[rowEditable]="true" [primaryKey]="'ID'" [data]="localData" [height]="'600px'" [width]="'800px'" #hGrid2>
148+
<igx-column *ngIf="columnsReady" field="ID"></igx-column>
149+
<igx-column *ngIf="columnsReady" field="ProductName"></igx-column>
150+
<igx-row-island *ngIf="layoutsReady" [key]="'childData'" [primaryKey]="'ID'" [rowSelection]='selectionMode' [batchEditing]="true" [rowEditable]="true"
148151
[allowFiltering]="true">
152+
<igx-column field="ID"></igx-column>
153+
<igx-column field="ChildLevels"></igx-column>
149154
<div *ngIf='riToggle'>
150155
<igx-row-island [key]="'childData'" [autoGenerate]="true" [rowSelection]='selectionMode' [batchEditing]="true" [rowEditable]="true"
151156
[allowFiltering]="true"></igx-row-island>

src/app/hierarchical-grid/hierarchical-grid.sample.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ import {
1414
templateUrl: 'hierarchical-grid.sample.html'
1515
})
1616
export class HierarchicalGridSampleComponent implements AfterViewInit {
17+
public columnsReady = false;
18+
public layoutsReady = false;
1719
@ViewChild('layout1', { static: true })
1820
private layout1: IgxRowIslandComponent;
1921

2022
@ViewChild('hGrid2', { static: true })
2123
private hGrid2: IgxHierarchicalGridComponent;
22-
2324
public localData = [];
2425
public localData1 = [];
2526
public data1 = [];

0 commit comments

Comments
 (0)