Skip to content

Commit ea6d711

Browse files
authored
fix(*): Renamed nested query condtions (#15401)
* fix(*): Renamed nested query condtions
1 parent 6421e31 commit ea6d711

File tree

7 files changed

+33
-26
lines changed

7 files changed

+33
-26
lines changed

projects/igniteui-angular/src/lib/data-operations/expressions-tree-util.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ describe('Unit testing FilteringUtil', () => {
8080
// misc
8181
tree.filteringOperands.push({
8282
fieldName: 'Id',
83-
conditionName: 'in'
83+
conditionName: 'inQuery'
8484
});
8585

8686
tree.filteringOperands.push({
8787
fieldName: 'Id',
88-
conditionName: 'notIn'
88+
conditionName: 'notInQuery'
8989
});
9090

9191
tree.filteringOperands.push({
@@ -286,7 +286,7 @@ describe('Unit testing FilteringUtil', () => {
286286

287287
tree.filteringOperands.push({
288288
fieldName: 'Id',
289-
conditionName: 'in',
289+
conditionName: 'inQuery',
290290
searchTree: innerTree
291291
});
292292

@@ -295,8 +295,8 @@ describe('Unit testing FilteringUtil', () => {
295295
const firstOperand = deserializedTree.filteringOperands[0] as IFilteringExpression;
296296
const nestedOperand = firstOperand.searchTree.filteringOperands[0] as IFilteringExpression;
297297

298-
expect(firstOperand.conditionName).toBe('in');
299-
expect(firstOperand.condition.name).toBe('in');
298+
expect(firstOperand.conditionName).toBe('inQuery');
299+
expect(firstOperand.condition.name).toBe('inQuery');
300300
expect(nestedOperand.condition.logic(true, nestedOperand.searchVal)).toBe(true);
301301
expect(nestedOperand.conditionName).toBe('true');
302302
expect(nestedOperand.condition.name).toBe('true');

projects/igniteui-angular/src/lib/data-operations/filtering-condition.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,17 @@ export class IgxFilteringOperand {
2222
}, {
2323
name: 'in',
2424
isUnary: false,
25+
iconName: 'filter_in',
26+
hidden: true,
27+
logic: (target: any, searchVal: Set<any>) => this.findValueInSet(target, searchVal)
28+
}, {
29+
name: 'inQuery',
30+
isUnary: false,
2531
isNestedQuery: true,
2632
iconName: 'in',
2733
logic: (target: any, searchVal: Set<any>) => this.findValueInSet(target, searchVal)
28-
},
29-
{
30-
name: 'notIn',
34+
}, {
35+
name: 'notInQuery',
3136
isUnary: false,
3237
isNestedQuery: true,
3338
iconName: 'not-in',

projects/igniteui-angular/src/lib/query-builder/query-builder-functions.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ export class QueryBuilderFunctions {
4343
const tree = new FilteringExpressionsTree(FilteringLogic.And, null, 'Orders', ['*']);
4444
tree.filteringOperands.push({
4545
fieldName: 'OrderId',
46-
condition: IgxStringFilteringOperand.instance().condition('in'),
47-
conditionName: 'in',
46+
condition: IgxStringFilteringOperand.instance().condition('inQuery'),
47+
conditionName: 'inQuery',
4848
searchTree: innerTree
4949
});
5050
tree.filteringOperands.push({
@@ -89,8 +89,8 @@ export class QueryBuilderFunctions {
8989

9090
tree.filteringOperands.push({
9191
fieldName: 'OrderId',
92-
condition: IgxStringFilteringOperand.instance().condition('in'),
93-
conditionName: IgxStringFilteringOperand.instance().condition('in').name,
92+
condition: IgxStringFilteringOperand.instance().condition('inQuery'),
93+
conditionName: IgxStringFilteringOperand.instance().condition('inQuery').name,
9494
searchTree: innerTree
9595
});
9696

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@
356356
#searchValueInput
357357
igxInput
358358
[disabled]="isSearchValueInputDisabled()"
359-
[placeholder]="this.selectedCondition === 'in' || this.selectedCondition === 'notIn' ?
359+
[placeholder]="this.selectedCondition === 'inQuery' || this.selectedCondition === 'notInQuery' ?
360360
this.resourceStrings.igx_query_builder_query_value_placeholder :
361361
this.resourceStrings.igx_query_builder_value_placeholder"
362362
[type]="

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1294,7 +1294,9 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
12941294
* @hidden @internal
12951295
*/
12961296
public getConditionFriendlyName(name: string): string {
1297-
return this.resourceStrings[`igx_query_builder_filter_${name}`] || name;
1297+
// As we have an 'In' condition already used in ESF to search in a Set, we add the 'Query' suffix to the newly introduced nested query condition names.
1298+
// So instead of in/notIn we end up with 'inQuery'/'notInQuery', hence removing the suffix from the friendly name.
1299+
return this.resourceStrings[`igx_query_builder_filter_${name?.replace('Query', '')}`] || name;
12981300
}
12991301

13001302
/**

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -796,12 +796,12 @@ describe('IgxQueryBuilder', () => {
796796
{
797797
"fieldName": "OrderId",
798798
"condition": {
799-
"name": "in",
799+
"name": "inQuery",
800800
"isUnary": false,
801801
"isNestedQuery": true,
802802
"iconName": "in"
803803
},
804-
"conditionName": "in",
804+
"conditionName": "inQuery",
805805
"ignoreCase": true,
806806
"searchVal": null,
807807
"searchTree": {
@@ -873,12 +873,12 @@ describe('IgxQueryBuilder', () => {
873873
{
874874
"fieldName": "OrderId",
875875
"condition": {
876-
"name": "notIn",
876+
"name": "notInQuery",
877877
"isUnary": false,
878878
"isNestedQuery": true,
879879
"iconName": "not-in"
880880
},
881-
"conditionName": "notIn",
881+
"conditionName": "notInQuery",
882882
"ignoreCase": true,
883883
"searchVal": null,
884884
"searchTree": {
@@ -1484,7 +1484,7 @@ describe('IgxQueryBuilder', () => {
14841484

14851485
// Verify the changes in the child query are commited
14861486
let exprTree = JSON.stringify(fix.componentInstance.queryBuilder.expressionTree.filteringOperands[0]);
1487-
expect(exprTree).toBe(`{"fieldName":"OrderId","condition":{"name":"in","isUnary":false,"isNestedQuery":true,"iconName":"in"},"conditionName":"in","searchVal":null,"searchTree":{"filteringOperands":[{"fieldName":"ProductName","condition":{"name":"contains","isUnary":false,"iconName":"filter_contains"},"conditionName":"contains","searchVal":"a"},{"fieldName":"Released","condition":{"name":"false","isUnary":true,"iconName":"filter_false"},"conditionName":"false","searchVal":null,"searchTree":null}],"operator":0,"entity":"Products","returnFields":["Id"]}}`);
1487+
expect(exprTree).toBe(`{"fieldName":"OrderId","condition":{"name":"inQuery","isUnary":false,"isNestedQuery":true,"iconName":"in"},"conditionName":"inQuery","searchVal":null,"searchTree":{"filteringOperands":[{"fieldName":"ProductName","condition":{"name":"contains","isUnary":false,"iconName":"filter_contains"},"conditionName":"contains","searchVal":"a"},{"fieldName":"Released","condition":{"name":"false","isUnary":true,"iconName":"filter_false"},"conditionName":"false","searchVal":null,"searchTree":null}],"operator":0,"entity":"Products","returnFields":["Id"]}}`);
14881488
// Enter edit mode again
14891489
QueryBuilderFunctions.clickQueryBuilderTreeExpressionChip(fix, [0]);
14901490
tick(50);
@@ -1515,7 +1515,7 @@ describe('IgxQueryBuilder', () => {
15151515

15161516
// Verify the changes in the child query are discarded
15171517
exprTree = JSON.stringify(fix.componentInstance.queryBuilder.expressionTree.filteringOperands[0]);
1518-
expect(exprTree).toBe(`{"fieldName":"OrderId","condition":{"name":"in","isUnary":false,"isNestedQuery":true,"iconName":"in"},"conditionName":"in","searchVal":null,"searchTree":{"filteringOperands":[{"fieldName":"ProductName","condition":{"name":"contains","isUnary":false,"iconName":"filter_contains"},"conditionName":"contains","searchVal":"a"},{"fieldName":"Released","condition":{"name":"false","isUnary":true,"iconName":"filter_false"},"conditionName":"false","searchVal":null,"searchTree":null}],"operator":0,"entity":"Products","returnFields":["Id"]}}`);
1518+
expect(exprTree).toBe(`{"fieldName":"OrderId","condition":{"name":"inQuery","isUnary":false,"isNestedQuery":true,"iconName":"in"},"conditionName":"inQuery","searchVal":null,"searchTree":{"filteringOperands":[{"fieldName":"ProductName","condition":{"name":"contains","isUnary":false,"iconName":"filter_contains"},"conditionName":"contains","searchVal":"a"},{"fieldName":"Released","condition":{"name":"false","isUnary":true,"iconName":"filter_false"},"conditionName":"false","searchVal":null,"searchTree":null}],"operator":0,"entity":"Products","returnFields":["Id"]}}`);
15191519
}));
15201520

15211521
it('Should collapse nested query when it is committed.', fakeAsync(() => {
@@ -1845,12 +1845,12 @@ describe('IgxQueryBuilder', () => {
18451845
{
18461846
"fieldName": "OrderId",
18471847
"condition": {
1848-
"name": "in",
1848+
"name": "inQuery",
18491849
"isUnary": false,
18501850
"isNestedQuery": true,
18511851
"iconName": "in"
18521852
},
1853-
"conditionName": "in",
1853+
"conditionName": "inQuery",
18541854
"ignoreCase": true,
18551855
"searchVal": null,
18561856
"searchTree": {
@@ -2760,12 +2760,12 @@ describe('IgxQueryBuilder', () => {
27602760
{
27612761
"fieldName": "OrderId",
27622762
"condition": {
2763-
"name": "in",
2763+
"name": "inQuery",
27642764
"isUnary": false,
27652765
"isNestedQuery": true,
27662766
"iconName": "in"
27672767
},
2768-
"conditionName": "in",
2768+
"conditionName": "inQuery",
27692769
"searchTree": {
27702770
"filteringOperands": [
27712771
{

src/app/query-builder/query-builder.sample.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ export class QueryBuilderComponent implements OnInit {
112112
const tree = new FilteringExpressionsTree(FilteringLogic.And, undefined, 'Entity A', ['*']);
113113
tree.filteringOperands.push({
114114
fieldName: 'Id',
115-
condition: IgxStringFilteringOperand.instance().condition('in'),
116-
conditionName: IgxStringFilteringOperand.instance().condition('in').name,
115+
condition: IgxStringFilteringOperand.instance().condition('inQuery'),
116+
conditionName: IgxStringFilteringOperand.instance().condition('inQuery').name,
117117
searchTree: innerTree
118118
});
119119
tree.filteringOperands.push({

0 commit comments

Comments
 (0)