diff --git a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte index a419f5ad46..019a61a3bf 100644 --- a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte +++ b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte @@ -30,9 +30,14 @@ export let allowBindings = true export let allOr = false export let fillWidth = false + export let tableId $: dispatch("change", filters) - $: enrichedSchemaFields = getFields(schemaFields || []) + $: enrichedSchemaFields = getFields( + schemaFields || [], + { allowLinks: true }, + tableId + ) $: fieldOptions = enrichedSchemaFields.map(field => field.name) || [] $: valueTypeOptions = allowBindings ? ["Value", "Binding"] : ["Value"] diff --git a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterEditor.svelte b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterEditor.svelte index ea54afc0ee..72913aeb17 100644 --- a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterEditor.svelte +++ b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterEditor.svelte @@ -88,6 +88,7 @@ filters={initialFilters} {bindings} {schemaFields} + tableId={dataSource.tableId} bind:allOr on:change={event => { toSaveFilters = event.detail diff --git a/packages/builder/src/helpers/searchFields.js b/packages/builder/src/helpers/searchFields.js index a9c837d570..29a5f77a0d 100644 --- a/packages/builder/src/helpers/searchFields.js +++ b/packages/builder/src/helpers/searchFields.js @@ -16,7 +16,11 @@ export function getTableFields(linkField) { })) } -export function getFields(fields, { allowLinks } = { allowLinks: true }) { +export function getFields( + fields, + { allowLinks } = { allowLinks: true }, + tableId +) { let filteredFields = fields.filter( field => !BannedSearchTypes.includes(field.type) ) @@ -30,5 +34,9 @@ export function getFields(fields, { allowLinks } = { allowLinks: true }) { const staticFormulaFields = fields.filter( field => field.type === "formula" && field.formulaType === "static" ) + const table = get(tables).list.find(table => table._id === tableId) + if (table?.type === "external") { + filteredFields = filteredFields.filter(field => field.name !== "_id") + } return filteredFields.concat(staticFormulaFields) }