From b6a7447b150f8bc5290fe6f070eac3b30c82520a Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 13 May 2024 12:13:57 +0200 Subject: [PATCH] Fixes --- packages/server/src/api/routes/tests/search.spec.ts | 9 ++++++--- packages/shared-core/src/filters.ts | 9 +++++++-- packages/shared-core/src/helpers/schema.ts | 4 +++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/server/src/api/routes/tests/search.spec.ts b/packages/server/src/api/routes/tests/search.spec.ts index b21fd1fa04a8..87d0aa72c763 100644 --- a/packages/server/src/api/routes/tests/search.spec.ts +++ b/packages/server/src/api/routes/tests/search.spec.ts @@ -324,19 +324,22 @@ describe.each([ name: "deprecated_single_user", type: FieldType.BB_REFERENCE, subtype: BBReferenceFieldSubType.USER, - constraints: { - type: "array", - }, }, multi_user: { name: "multi_user", type: FieldType.BB_REFERENCE, subtype: BBReferenceFieldSubType.USER, + constraints: { + type: "array", + }, }, deprecated_multi_user: { name: "deprecated_multi_user", type: FieldType.BB_REFERENCE, subtype: BBReferenceFieldSubType.USERS, + constraints: { + type: "array", + }, }, }) await createRows(rows(config.getUser())) diff --git a/packages/shared-core/src/filters.ts b/packages/shared-core/src/filters.ts index 2438e7f8404b..1401b75e93fa 100644 --- a/packages/shared-core/src/filters.ts +++ b/packages/shared-core/src/filters.ts @@ -9,10 +9,11 @@ import { SearchFilterOperator, SortDirection, SortType, + FieldConstraints, } from "@budibase/types" import dayjs from "dayjs" import { OperatorOptions, SqlNumberTypeRangeMap } from "./constants" -import { deepGet } from "./helpers" +import { deepGet, schema } from "./helpers" const HBS_REGEX = /{{([^{].*?)}}/g @@ -24,6 +25,7 @@ export const getValidOperatorsForType = ( type: FieldType subtype?: BBReferenceFieldSubType formulaType?: FormulaType + constraints?: FieldConstraints }, field?: string, datasource?: Datasource & { tableId: any } @@ -68,7 +70,10 @@ export const getValidOperatorsForType = ( ops = numOps } else if (type === FieldType.FORMULA && formulaType === FormulaType.STATIC) { ops = stringOps.concat([Op.MoreThan, Op.LessThan]) - } else if (type === FieldType.BB_REFERENCE_SINGLE) { + } else if ( + type === FieldType.BB_REFERENCE_SINGLE || + schema.isDeprecatedSingleUserColumn(fieldType) + ) { ops = [Op.Equals, Op.NotEquals, Op.Empty, Op.NotEmpty, Op.In] } else if (type === FieldType.BB_REFERENCE) { ops = [Op.Contains, Op.NotContains, Op.ContainsAny, Op.Empty, Op.NotEmpty] diff --git a/packages/shared-core/src/helpers/schema.ts b/packages/shared-core/src/helpers/schema.ts index 548a5c9766eb..985e068be09d 100644 --- a/packages/shared-core/src/helpers/schema.ts +++ b/packages/shared-core/src/helpers/schema.ts @@ -4,7 +4,9 @@ import { FieldType, } from "@budibase/types" -export function isDeprecatedSingleUserColumn(schema: FieldSchema) { +export function isDeprecatedSingleUserColumn( + schema: Pick +) { const result = schema.type === FieldType.BB_REFERENCE && schema.subtype === BBReferenceFieldSubType.USER &&