fix(filters): make sure filters are replaced case-insensitively before filtering on the server
Resolves https://community.vikunja.io/t/filtering-startdate-now-is-invalid/2613
This commit is contained in:
parent
12474e5be6
commit
dd8be14fdb
@ -137,6 +137,16 @@ describe('Filter Transformation', () => {
|
|||||||
|
|
||||||
expect(transformed).toBe('labels in 2 || labels in l')
|
expect(transformed).toBe('labels in 2 || labels in l')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should correctly transform the cases of fields', () => {
|
||||||
|
const transformed = transformFilterStringForApi(
|
||||||
|
'startdate > now',
|
||||||
|
nullTitleToIdResolver,
|
||||||
|
nullTitleToIdResolver,
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(transformed).toBe('start_date > now')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('To API', () => {
|
describe('To API', () => {
|
||||||
|
@ -66,10 +66,16 @@ export function transformFilterStringForApi(
|
|||||||
labelResolver: (title: string) => number | null,
|
labelResolver: (title: string) => number | null,
|
||||||
projectResolver: (title: string) => number | null,
|
projectResolver: (title: string) => number | null,
|
||||||
): string {
|
): string {
|
||||||
|
|
||||||
|
filter = filter.trim()
|
||||||
|
|
||||||
if (filter.trim() === '') {
|
if (filter === '') {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AVAILABLE_FILTER_FIELDS.forEach(f => {
|
||||||
|
filter = filter.replace(new RegExp(f, 'ig'), f)
|
||||||
|
})
|
||||||
|
|
||||||
// Transform labels to ids
|
// Transform labels to ids
|
||||||
LABEL_FIELDS.forEach(field => {
|
LABEL_FIELDS.forEach(field => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user