From 139c642199b77b7d723a842832619c6f1043bc8a Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Fri, 8 Sep 2023 23:53:15 +0100 Subject: [PATCH 1/4] Don't send S3 image data url to rows endpoint --- .../src/components/app/forms/S3Upload.svelte | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/client/src/components/app/forms/S3Upload.svelte b/packages/client/src/components/app/forms/S3Upload.svelte index 795e2e4332..dfc5032de9 100644 --- a/packages/client/src/components/app/forms/S3Upload.svelte +++ b/packages/client/src/components/app/forms/S3Upload.svelte @@ -2,6 +2,7 @@ import Field from "./Field.svelte" import { CoreDropzone, ProgressCircle } from "@budibase/bbui" import { getContext, onMount, onDestroy } from "svelte" + import { cloneDeep } from "../../../../../bbui/src/helpers" export let datasourceId export let bucket @@ -14,6 +15,7 @@ let fieldState let fieldApi + let localFiles = [] const { API, notificationStore, uploadStore } = getContext("sdk") const component = getContext("component") @@ -90,9 +92,17 @@ } const handleChange = e => { - const changed = fieldApi.setValue(e.detail) + localFiles = e.detail + let files = cloneDeep(e.detail) || [] + // remove URL as it contains the full base64 image data + files.forEach(file => { + if (file.type?.startsWith("image")) { + delete file.url + } + }) + const changed = fieldApi.setValue(files) if (onChange && changed) { - onChange({ value: e.detail }) + onChange({ value: files }) } } @@ -118,7 +128,7 @@
{#if fieldState} Date: Fri, 8 Sep 2023 23:59:25 +0100 Subject: [PATCH 2/4] S3 upload field is now simple input --- .../src/components/design/settings/componentSettings.js | 3 ++- packages/client/manifest.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/design/settings/componentSettings.js b/packages/builder/src/components/design/settings/componentSettings.js index 8b151564a1..6d673cbd3d 100644 --- a/packages/builder/src/components/design/settings/componentSettings.js +++ b/packages/builder/src/components/design/settings/componentSettings.js @@ -1,4 +1,4 @@ -import { Checkbox, Select, RadioGroup, Stepper } from "@budibase/bbui" +import { Checkbox, Select, RadioGroup, Stepper, Input } from "@budibase/bbui" import DataSourceSelect from "./controls/DataSourceSelect.svelte" import S3DataSourceSelect from "./controls/S3DataSourceSelect.svelte" import DataProviderSelect from "./controls/DataProviderSelect.svelte" @@ -60,6 +60,7 @@ const componentMap = { "field/longform": FormFieldSelect, "field/datetime": FormFieldSelect, "field/attachment": FormFieldSelect, + "field/s3": Input, "field/link": FormFieldSelect, "field/array": FormFieldSelect, "field/json": FormFieldSelect, diff --git a/packages/client/manifest.json b/packages/client/manifest.json index 229d344d55..75fe287b2a 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -3721,7 +3721,7 @@ }, "settings": [ { - "type": "field/attachment", + "type": "field/s3", "label": "Field", "key": "field", "required": true From c860a7597815e609b5a7fb0067ad936657a1498d Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Sat, 9 Sep 2023 00:04:42 +0100 Subject: [PATCH 3/4] Use asterisk instead of null --- .../_components/EditDatasourceConfigButton.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte b/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte index 9e50ab8da3..54937f9415 100644 --- a/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte +++ b/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte @@ -31,7 +31,7 @@ datasource.source === IntegrationTypes.DYNAMODB || datasource.source === IntegrationTypes.S3 ) { - return `${datasource.config.endpoint}:${datasource.config.region}` + return `${datasource.config.endpoint || "*"}:${datasource.config.region}` } if (datasource.source === IntegrationTypes.ELASTICSEARCH) { return datasource.config.url From 260e0b6f99616ce81d06e25ecdb49977ff061e5f Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Tue, 12 Sep 2023 10:25:10 +0100 Subject: [PATCH 4/4] Improve default S3 subtitle --- .../_components/EditDatasourceConfigButton.svelte | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte b/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte index 54937f9415..9654b27b50 100644 --- a/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte +++ b/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/EditDatasourceConfigButton.svelte @@ -27,11 +27,13 @@ if (datasource.source === IntegrationTypes.COUCHDB) { return datasource.config.database } - if ( - datasource.source === IntegrationTypes.DYNAMODB || - datasource.source === IntegrationTypes.S3 - ) { - return `${datasource.config.endpoint || "*"}:${datasource.config.region}` + if (datasource.source === IntegrationTypes.DYNAMODB) { + return `${datasource.config.endpoint}:${datasource.config.region}` + } + if (datasource.source === IntegrationTypes.S3) { + return datasource.config.endpoint + ? `${datasource.config.endpoint}:${datasource.config.region}` + : `s3.${datasource.config.region}.amazonaws.com` } if (datasource.source === IntegrationTypes.ELASTICSEARCH) { return datasource.config.url