From 1040407068bc0f32ce1b27a7edaf268447e66c74 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 9 Jun 2023 13:11:18 +0100 Subject: [PATCH 001/120] Reset rows and tick before updating schema when swapping table ID in grids --- .../frontend-core/src/components/grid/stores/rows.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/frontend-core/src/components/grid/stores/rows.js b/packages/frontend-core/src/components/grid/stores/rows.js index 198c05025c..2020708fa8 100644 --- a/packages/frontend-core/src/components/grid/stores/rows.js +++ b/packages/frontend-core/src/components/grid/stores/rows.js @@ -2,6 +2,7 @@ import { writable, derived, get } from "svelte/store" import { fetchData } from "../../../fetch/fetchData" import { notifications } from "@budibase/bbui" import { NewRowID, RowPageSize } from "../lib/constants" +import { tick } from "svelte" const initialSortState = { column: null, @@ -124,13 +125,22 @@ export const deriveStores = context => { }) // Subscribe to changes of this fetch model - unsubscribe = newFetch.subscribe($fetch => { + unsubscribe = newFetch.subscribe(async $fetch => { if ($fetch.loaded && !$fetch.loading) { hasNextPage.set($fetch.hasNextPage) const $instanceLoaded = get(instanceLoaded) const resetRows = $fetch.resetKey !== lastResetKey + const previousResetKey = lastResetKey lastResetKey = $fetch.resetKey + // If resetting rows due to a table change, wipe data and wait for + // derived stores to compute. This prevents stale data being passed + // to cells when we save the new schema. + if (!$instanceLoaded && previousResetKey) { + rows.set([]) + await tick() + } + // Reset state properties when dataset changes if (!$instanceLoaded || resetRows) { table.set($fetch.definition) From 669a05b6406199ebf57508f40fd400aa95beb73b Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 13 Jun 2023 15:07:38 +0100 Subject: [PATCH 002/120] Fix field on change actions not properly checking for unchanged values --- .../client/src/components/app/forms/InnerForm.svelte | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/client/src/components/app/forms/InnerForm.svelte b/packages/client/src/components/app/forms/InnerForm.svelte index 27e854781c..9eb21b0bae 100644 --- a/packages/client/src/components/app/forms/InnerForm.svelte +++ b/packages/client/src/components/app/forms/InnerForm.svelte @@ -283,7 +283,7 @@ // Skip if the value is the same if (!skipCheck && fieldState.value === value) { - return true + return false } // Update field state @@ -295,7 +295,7 @@ return state }) - return !error + return true } // Clears the value of a certain field back to the default value @@ -376,8 +376,9 @@ deregister, validate: () => { // Validate the field by force setting the same value again - const { fieldState } = get(getField(field)) - return setValue(fieldState.value, true) + const fieldInfo = getField(field) + setValue(get(fieldInfo).fieldState.value, true) + return !get(fieldInfo).fieldState.error }, } } From 557e7ad209d9a89e7a483951222da1a541567339 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 13 Jun 2023 16:48:59 +0100 Subject: [PATCH 003/120] Request password on import app --- .../components/start/CreateAppModal.svelte | 174 ++++++++++++------ 1 file changed, 119 insertions(+), 55 deletions(-) diff --git a/packages/builder/src/components/start/CreateAppModal.svelte b/packages/builder/src/components/start/CreateAppModal.svelte index 9e055cd798..ab42d27023 100644 --- a/packages/builder/src/components/start/CreateAppModal.svelte +++ b/packages/builder/src/components/start/CreateAppModal.svelte @@ -1,6 +1,12 @@ - {#if template && !template?.fromFile} - - {/if} - {#if template?.fromFile} - { - $values.file = e.detail?.[0] - $validation.touched.file = true - }} - /> - {/if} - ($validation.touched.name = true)} - on:change={nameToUrl($values.name)} - label="Name" - placeholder={defaultAppName} - /> - - ($validation.touched.url = true)} - on:change={tidyUrl($values.url)} - label="URL" - placeholder={$values.url - ? $values.url - : `/${resolveAppUrl(template, $values.name)}`} - /> - {#if $values.url && $values.url !== "" && !$validation.errors.url} -
- {appUrl} -
+ {#if currentStep === Step.CONFIG} + {#if template && !template?.fromFile} + {/if} -
+ {#if template?.fromFile} + { + $values.file = e.detail?.[0] + $validation.touched.file = true + }} + /> + {/if} + ($validation.touched.name = true)} + on:change={nameToUrl($values.name)} + label="Name" + placeholder={defaultAppName} + /> + + ($validation.touched.url = true)} + on:change={tidyUrl($values.url)} + label="URL" + placeholder={$values.url + ? $values.url + : `/${resolveAppUrl(template, $values.name)}`} + /> + {#if $values.url && $values.url !== "" && !$validation.errors.url} +
+ {appUrl} +
+ {/if} +
+ {/if} + {#if currentStep === Step.SET_PASSWORD} + ($encryptionValidation.touched.encryptionPassword = true)} + error={$encryptionValidation.touched.encryptionPassword && + $encryptionValidation.errors.encryptionPassword} + /> + {/if}
diff --git a/packages/builder/src/pages/builder/portal/users/users/_components/InvitedModal.svelte b/packages/builder/src/pages/builder/portal/users/users/_components/InvitedModal.svelte index c9eadd0a5a..480de0ff5b 100644 --- a/packages/builder/src/pages/builder/portal/users/users/_components/InvitedModal.svelte +++ b/packages/builder/src/pages/builder/portal/users/users/_components/InvitedModal.svelte @@ -1,6 +1,7 @@ - + {#if hasSuccess} Your users should now receive an email invite to get access to their @@ -67,6 +68,9 @@ allowEditColumns={false} allowEditRows={false} allowSelectRows={false} + customRenderers={[ + { column: "reason", component: InviteResponseRenderer }, + ]} /> {/if} From 5545b32c27a76bf5e6dd24c39bb63f2ec5e81f99 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 23 Jun 2023 11:18:01 +0100 Subject: [PATCH 105/120] Update pro ref --- packages/pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pro b/packages/pro index 6db60399fc..4e5506f2e9 160000 --- a/packages/pro +++ b/packages/pro @@ -1 +1 @@ -Subproject commit 6db60399fca9eac8efb35d9a1d511b958860e69a +Subproject commit 4e5506f2e9fe3cac6f054191eb9092849c8100af From 5777a3f506648e806aa9847697e499e00d90a802 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 23 Jun 2023 11:41:03 +0100 Subject: [PATCH 106/120] Update pro ref --- packages/pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pro b/packages/pro index 4e5506f2e9..2c9172685c 160000 --- a/packages/pro +++ b/packages/pro @@ -1 +1 @@ -Subproject commit 4e5506f2e9fe3cac6f054191eb9092849c8100af +Subproject commit 2c9172685cdceef03172bea779e94cb52ff6d1de From a97518ff39b2c7e504cefababf38ed2470e42e3f Mon Sep 17 00:00:00 2001 From: melohagan <101575380+melohagan@users.noreply.github.com> Date: Fri, 23 Jun 2023 11:51:49 +0100 Subject: [PATCH 107/120] Scroll to field button action (#10901) * Scroll To Field WIP * Scroll to the label --- .../actions/ScrollTo.svelte | 50 +++++++++++++++++++ .../ButtonActionEditor/actions/index.js | 1 + .../controls/ButtonActionEditor/manifest.json | 5 ++ packages/client/manifest.json | 3 +- .../src/components/app/forms/InnerForm.svelte | 8 +++ packages/client/src/constants.js | 1 + packages/client/src/utils/buttonActions.js | 12 +++++ 7 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ScrollTo.svelte diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ScrollTo.svelte b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ScrollTo.svelte new file mode 100644 index 0000000000..2198a87ecb --- /dev/null +++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ScrollTo.svelte @@ -0,0 +1,50 @@ + + +
+ +