diff --git a/packages/server/src/api/routes/tests/search.spec.ts b/packages/server/src/api/routes/tests/search.spec.ts index b21fd1fa04a..87d0aa72c76 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 2438e7f8404..1401b75e93f 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 548a5c9766e..985e068be09 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 &&