From e4ac832c3236e7d2c5f21527162bb33c109e8d2e Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 29 Sep 2020 18:27:35 +0100 Subject: [PATCH] Add WIP draft of linked records UI allowing single linked record selection --- packages/builder/package.json | 2 +- .../backend/DataTable/ModelDataTable.svelte | 2 +- .../popovers/CreateEditColumn.svelte | 38 +++--- .../popovers/CreateEditRecord.svelte | 5 +- .../popovers/RecordFieldControl.svelte | 42 ++----- .../common/LinkedRecordSelector.svelte | 108 +++++------------- .../builder/src/constants/backend/index.js | 39 ++++--- packages/builder/yarn.lock | 8 +- 8 files changed, 86 insertions(+), 158 deletions(-) diff --git a/packages/builder/package.json b/packages/builder/package.json index 9c0338ba2..5a2a9b6bb 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -63,7 +63,7 @@ } }, "dependencies": { - "@budibase/bbui": "^1.37.1", + "@budibase/bbui": "^1.39.0", "@budibase/client": "^0.1.21", "@budibase/colorpicker": "^1.0.1", "@fortawesome/fontawesome-free": "^5.14.0", diff --git a/packages/builder/src/components/backend/DataTable/ModelDataTable.svelte b/packages/builder/src/components/backend/DataTable/ModelDataTable.svelte index f39eff578..01bd9f43f 100644 --- a/packages/builder/src/components/backend/DataTable/ModelDataTable.svelte +++ b/packages/builder/src/components/backend/DataTable/ModelDataTable.svelte @@ -91,7 +91,7 @@ {#each headers as header} {#if schema[header].type === 'link'} - + {JSON.stringify(row[header])} {:else if schema[header].type === 'attachment'} {:else}{getOr('', header, row)}{/if} diff --git a/packages/builder/src/components/backend/DataTable/popovers/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/popovers/CreateEditColumn.svelte index cad4136b9..d04b1d28b 100644 --- a/packages/builder/src/components/backend/DataTable/popovers/CreateEditColumn.svelte +++ b/packages/builder/src/components/backend/DataTable/popovers/CreateEditColumn.svelte @@ -31,6 +31,9 @@ } let originalName = field.name + $: modelOptions = $backendUiStore.models.filter( + model => model._id !== $backendUiStore.draftModel._id + ) async function saveColumn() { backendUiStore.update(state => { @@ -67,23 +70,27 @@ (field.constraints.presence.allowEmpty = !e.target.checked)} thin text="Required" /> - {#if field.type === 'string' && field.constraints} + {#if field.type === 'string'} - - {:else if field.type === 'datetime' && field.constraints} + {:else if field.type === 'options'} + + {:else if field.type === 'datetime'} - {:else if field.type === 'number' && field.constraints} + {:else if field.type === 'number'} {:else if field.type === 'link'} -
- - -
+ + {/if}