From 98963c1505105f2aaf122a25695fe46803de23c5 Mon Sep 17 00:00:00 2001 From: Dean Date: Thu, 4 May 2023 11:21:24 +0100 Subject: [PATCH] Fix for inclusion parsing for arrays and options. View table fix to hide edit button --- .../components/backend/DataTable/Table.svelte | 2 ++ .../backend/DataTable/ViewDataTable.svelte | 1 + .../server/src/api/controllers/table/utils.ts | 16 ++++++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/builder/src/components/backend/DataTable/Table.svelte b/packages/builder/src/components/backend/DataTable/Table.svelte index 4df6e9a306..bf14bdfc0c 100644 --- a/packages/builder/src/components/backend/DataTable/Table.svelte +++ b/packages/builder/src/components/backend/DataTable/Table.svelte @@ -22,6 +22,7 @@ export let rowCount export let disableSorting = false export let customPlaceholder = false + export let allowEditing = true const dispatch = createEventDispatcher() @@ -109,6 +110,7 @@ {rowCount} {disableSorting} {customPlaceholder} + allowEditRows={allowEditing} showAutoColumns={!hideAutocolumns} on:clickrelationship={e => selectRelationship(e.detail)} on:sort diff --git a/packages/builder/src/components/backend/DataTable/ViewDataTable.svelte b/packages/builder/src/components/backend/DataTable/ViewDataTable.svelte index 056bc33994..d239cabd59 100644 --- a/packages/builder/src/components/backend/DataTable/ViewDataTable.svelte +++ b/packages/builder/src/components/backend/DataTable/ViewDataTable.svelte @@ -58,6 +58,7 @@ {loading} {type} rowCount={10} + allowEditing={false} bind:hideAutocolumns > diff --git a/packages/server/src/api/controllers/table/utils.ts b/packages/server/src/api/controllers/table/utils.ts index 1a3eda683b..e57da7ae2d 100644 --- a/packages/server/src/api/controllers/table/utils.ts +++ b/packages/server/src/api/controllers/table/utils.ts @@ -129,17 +129,21 @@ export function importToRows( // the real schema of the table passed in, not the clone used for // incrementing auto IDs for (const [fieldName, schema] of Object.entries(originalTable.schema)) { + const rowVal = Array.isArray(row[fieldName]) ? row[fieldName] : [row[fieldName]] if ( (schema.type === FieldTypes.OPTIONS || - schema.type === FieldTypes.ARRAY) && - row[fieldName] && - (!schema.constraints!.inclusion || - schema.constraints!.inclusion.indexOf(row[fieldName]) === -1) + schema.type === FieldTypes.ARRAY) && + row[fieldName] ) { - schema.constraints!.inclusion = [ + + let merged = [ ...schema.constraints!.inclusion!, - row[fieldName], + ...rowVal ] + + let superSet = new Set(merged); + schema.constraints!.inclusion = Array.from(superSet); + schema.constraints!.inclusion.sort() } }