Skip to content

Commit 095be94

Browse files
ssamulinatanrolnik
authored andcommitted
Added/fixed a filtering option "contains string" for String fields. (#724)
* Added/fixed a filtering option "contains string" for String fields. Case insensitive for now. * Added a new constraint 'stringContainsString' for string queries to avoid changing how array queries work.
1 parent 2fae0fe commit 095be94

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
### NEXT RELEASE
44

55
* _Contributing to this repo? Add info about your change here to be included in next release_
6+
* Improvement: Added/fixed a filtering option "contains string" for String fields. Case insensitive for now.
67

78
### 1.0.27
89
* Improvement: Show notifications upon success or failure of save and delete objects (#718), thanks to [Natan Rolnik](https://github.com/natanrolnik)

src/lib/Filters.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ export const Constraints = {
4848
ends: {
4949
name: 'ends with',
5050
},
51+
stringContainsString: {
52+
name: 'string contains string',
53+
field: 'String',
54+
composable: true,
55+
},
5156
before: {
5257
name: 'is before',
5358
field: 'Date',
@@ -92,7 +97,7 @@ export const FieldConstraints = {
9297
'Pointer': [ 'exists', 'dne', 'eq', 'neq'],
9398
'Boolean': [ 'exists', 'dne', 'eq' ],
9499
'Number': [ 'exists', 'dne', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte' ],
95-
'String': [ 'exists', 'dne', 'eq', 'neq', 'starts', 'ends' ],
100+
'String': [ 'exists', 'dne', 'eq', 'neq', 'starts', 'ends', 'stringContainsString' ],
96101
'Date': [ 'exists', 'dne', 'before', 'after' ],
97102
'Array': [
98103
'exists',

src/lib/queryFromFilters.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ function addConstraint(query, filter) {
7070
case 'containedIn':
7171
query.containedIn(filter.get('field'), filter.get('array'));
7272
break;
73+
case 'stringContainsString':
74+
query.matches(filter.get('field'), filter.get('compareTo'), 'i');
75+
break;
7376
}
7477
return query;
7578
}

0 commit comments

Comments
 (0)