Skip to content

Commit 595c3cb

Browse files
committed
feat(h-grid): set expected return field in nested query and select if match
1 parent 04e5711 commit 595c3cb

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,7 @@
469469
[entities]="(this.selectedEntity ? this.selectedEntity.childEntities : entities[0].childEntities) ?? entities"
470470
[queryBuilder]="this.queryBuilder"
471471
[parentExpression]="expressionItem"
472+
[expectedReturnField]="this.selectedField?.field"
472473
[expressionTree]="expressionItem.inEditMode ? (innerQueryNewExpressionTree ?? getExpressionTreeCopy(expressionItem.expression.searchTree, true)) : expressionItem.expression.searchTree"
473474
(inEditModeChange)="onInEditModeChanged($event)"
474475
[searchValueTemplate]="searchValueTemplate">

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,11 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
242242
return this._resourceStrings;
243243
}
244244

245+
/**
246+
* Gets/sets the expected return field.
247+
*/
248+
@Input() public expectedReturnField: string = null;
249+
245250
/**
246251
* Event fired as the expression tree is changed.
247252
*/
@@ -557,7 +562,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
557562
this.groupContextMenuDropDownOverlaySettings.outlet = this.overlayOutlet;
558563

559564
if (this.isAdvancedFiltering() && this.entities?.length === 1) {
560-
this._selectedEntity = this.entities[0];
565+
this.selectedEntity = this.entities[0].name;
561566
}
562567

563568
// Trigger additional change detection cycle
@@ -629,7 +634,11 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
629634
}
630635
this.fields = this._entityNewValue ? this._entityNewValue.fields : [];
631636

632-
this._selectedReturnFields = this.parentExpression ? [] : this._entityNewValue.fields?.map(f => f.field);
637+
if (this.entities[0].fields.find(f => f.field === this.expectedReturnField)) {
638+
this._selectedReturnFields = [this.expectedReturnField];
639+
} else {
640+
this._selectedReturnFields = this.parentExpression ? [] : this._entityNewValue.fields?.map(f => f.field);
641+
}
633642

634643
if (this._expressionTree) {
635644
this._expressionTree.entity = this._entityNewValue.name;

0 commit comments

Comments
 (0)