Skip to content

Commit 1266803

Browse files
committed
feat(h-grid): prop rename and return first field if returnFields is empty
1 parent 87eb2de commit 1266803

File tree

7 files changed

+31
-30
lines changed

7 files changed

+31
-30
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDes
200200
if (this.queryBuilder?.entities) {
201201
return this.queryBuilder?.entities;
202202
} else if (this.grid.type === 'hierarchical') {
203-
return (this.grid as IgxHierarchicalGridComponent).filteringEntities;
203+
return (this.grid as IgxHierarchicalGridComponent).schema;
204204
} else {
205205
const entities: EntityType[] = [
206206
{

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3139,7 +3139,7 @@ export abstract class IgxGridBaseDirective implements GridType,
31393139
matchCount: 0,
31403140
content: ''
31413141
};
3142-
protected _hGridFilteringEntities: EntityType[];
3142+
protected _hGridSchema: EntityType[];
31433143
protected gridComputedStyles;
31443144

31453145
/** @hidden @internal */
@@ -7926,8 +7926,8 @@ export abstract class IgxGridBaseDirective implements GridType,
79267926
}
79277927

79287928
private getRecreatedTree(value: IFilteringExpressionsTree): IFilteringExpressionsTree {
7929-
if (this._hGridFilteringEntities) {
7930-
return recreateTree(value, this._hGridFilteringEntities, true) as IFilteringExpressionsTree;
7929+
if (this._hGridSchema) {
7930+
return recreateTree(value, this._hGridSchema, true) as IFilteringExpressionsTree;
79317931
} else {
79327932
return recreateTreeFromFields(value, this._columns) as IFilteringExpressionsTree;
79337933
}

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -568,17 +568,17 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirecti
568568
* This property is required in remote data scenarios.
569569
* @example
570570
* ```typescript
571-
* const remoteEntities = this.grid.remoteEntities;
572-
* this.grid.remoteEntities = [];
571+
* const schema = this.grid.schema;
572+
* this.grid.schema = [];
573573
* ```
574574
*/
575575
@Input()
576-
public set filteringEntities(entities: EntityType[]) {
577-
this._hGridFilteringEntities = entities;
576+
public set schema(entities: EntityType[]) {
577+
this._hGridSchema = entities;
578578
}
579579

580-
public get filteringEntities() {
581-
return this._hGridFilteringEntities;
580+
public get schema() {
581+
return this._hGridSchema;
582582
}
583583

584584
/**
@@ -709,8 +709,8 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirecti
709709
this.showExpandAll = this.parentIsland ?
710710
this.parentIsland.showExpandAll : this.rootGrid.showExpandAll;
711711

712-
if (!this._hGridFilteringEntities) {
713-
this._hGridFilteringEntities = this.generateFilteringEntities();
712+
if (!this._hGridSchema) {
713+
this._hGridSchema = this.generateSchema();
714714
}
715715

716716
}
@@ -1217,7 +1217,7 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirecti
12171217
});
12181218
}
12191219

1220-
private generateFilteringEntities() {
1220+
private generateSchema() {
12211221
const filterableFields = this.columns.filter((column) => !column.columnGroup && column.filterable);
12221222
const entities: EntityType[] = [
12231223
{

projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,10 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
834834
if (innerQuery && this.selectedField?.filters?.condition(this.selectedCondition)?.isNestedQuery) {
835835
innerQuery.exitEditAddMode();
836836
this._editedExpression.expression.searchTree = this.getExpressionTreeCopy(innerQuery.expressionTree);
837-
this._editedExpression.expression.searchTree.returnFields = innerQuery.selectedReturnFields;
837+
const returnFields = innerQuery.selectedReturnFields.length > 0 ?
838+
innerQuery.selectedReturnFields :
839+
[innerQuery.fields[0].field];
840+
this._editedExpression.expression.searchTree.returnFields = returnFields;
838841
} else {
839842
this._editedExpression.expression.searchTree = null;
840843
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ <h4 class="sample-title">Sample One</h4>
33
<igx-hierarchical-grid #hierarchicalGrid [data]="localData" [autoGenerate]="true" [allowAdvancedFiltering]="true">
44
<igx-grid-toolbar></igx-grid-toolbar>
55
<igx-row-island [key]="'Albums'" [autoGenerate]="true">
6-
<igx-row-island [key]="'Songs'" [autoGenerate]="false">
7-
<igx-column [field]="'Number'" [dataType]="'number'"></igx-column>
6+
<igx-row-island [key]="'Songs'" [autoGenerate]="true">
7+
<!-- <igx-column [field]="'Number'" [dataType]="'number'"></igx-column>
88
<igx-column [field]="'Title'" [dataType]="'string'"></igx-column>
9-
<igx-column [field]="'Album'" [dataType]="'string'"></igx-column>
9+
<igx-column [field]="'Album'" [dataType]="'string'"></igx-column> -->
1010
</igx-row-island>
1111
</igx-row-island>
1212
<igx-row-island [key]="'Tours'" [autoGenerate]="true">

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,15 @@
66
[height]="'800px'"
77
[width]="'100%'"
88
[allowAdvancedFiltering]="true"
9-
[filteringEntities]="remoteEntities"
9+
[schema]="remoteEntities"
1010
(advancedFilteringExpressionsTreeChange)="advancedFilteringExprTreeChange()">
1111
<igx-grid-toolbar>
1212
<igx-grid-toolbar-title>Customers</igx-grid-toolbar-title>
1313
</igx-grid-toolbar>
14-
<!-- <igx-column field="customerId"></igx-column>
15-
<igx-column field="CompanyName"></igx-column>
16-
<igx-column field="ContactName"></igx-column>
17-
<igx-column field="ContactTitle"></igx-column>
18-
<igx-column field="Country"></igx-column>
19-
<igx-column field="Phone"></igx-column> -->
14+
<!-- <igx-column field="customerId" [dataType]="'string'"></igx-column>
15+
<igx-column field="companyName" [dataType]="'string'"></igx-column>
16+
<igx-column field="contactName" [dataType]="'string'"></igx-column>
17+
<igx-column field="contactTitle" [dataType]="'string'"></igx-column> -->
2018
<igx-row-island #rowIsland1 [key]="'Orders'" [primaryKey]="'orderId'" [autoGenerate]="false" (gridCreated)="gridCreated($event, rowIsland1)">
2119
<igx-grid-toolbar *igxGridToolbar>
2220
<igx-grid-toolbar-title>Orders</igx-grid-toolbar-title>

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ export class HierarchicalGridRemoteSampleComponent implements OnInit {
2525
public selectionMode;
2626
public remoteData = [];
2727
public primaryKeys = [
28-
{ name: 'Customers', type: 'string', level: 0 },
29-
{ name: 'Orders', type: 'number', level: 1 },
30-
{ name: 'Details', type: 'number', level: 2 }
28+
{ name: 'Customers', key: 'customerId' },
29+
{ name: 'Orders', key: 'orderId' },
30+
{ name: 'Details', key: 'orderId' }
3131
];
3232
public remoteEntities: EntityType[] = [
3333
{
@@ -42,16 +42,16 @@ export class HierarchicalGridRemoteSampleComponent implements OnInit {
4242
{
4343
name: 'Orders',
4444
fields: [
45+
{ field: 'customerId', dataType: 'string' }, // first field will be treated as foreign key
4546
{ field: 'orderId', dataType: 'number' },
46-
{ field: 'customerId', dataType: 'string' },
4747
{ field: 'employeeId', dataType: 'number' },
4848
{ field: 'shipVia', dataType: 'string' }
4949
],
5050
childEntities: [
5151
{
5252
name: 'Details',
5353
fields: [
54-
{ field: 'orderId', dataType: 'number' },
54+
{ field: 'orderId', dataType: 'number' }, // first field will be treated as foreign key
5555
{ field: 'productId', dataType: 'number' },
5656
{ field: 'unitPrice', dataType: 'number' },
5757
{ field: 'quantity', dataType: 'number' },
@@ -132,7 +132,7 @@ export class HierarchicalGridRemoteSampleComponent implements OnInit {
132132
}
133133

134134
private buildUrl(event: IGridCreatedEventArgs, rowIsland: IgxRowIslandComponent) {
135-
const rowIslandKey = this.primaryKeys.find(key => key.level === rowIsland.level).name;
135+
const rowIslandKey = this.primaryKeys.find(key => key.name === rowIsland.key).name;
136136
const parentKey = (event.grid.parent as any).key ?? event.grid.parent.advancedFilteringExpressionsTree.entity;
137137
const url = `${API_ENDPOINT}/${parentKey}/${event.parentID}/${rowIslandKey}`;
138138
return url;

0 commit comments

Comments
 (0)