From fcb1575da5bec4216d7286e23fe4a9ecbb0056df Mon Sep 17 00:00:00 2001 From: Dean Date: Mon, 25 Sep 2023 10:59:34 +0100 Subject: [PATCH 1/3] Added default config values for buttons on auto screen creation. Added behaviour to accomodate screens created without defaults set. --- .../src/builderStore/store/screenTemplates/rowListScreen.js | 2 ++ packages/client/src/components/app/blocks/TableBlock.svelte | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js b/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js index bbefe65fc8..751f79ef44 100644 --- a/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js +++ b/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js @@ -33,6 +33,8 @@ const generateTableBlock = datasource => { showTitleButton: true, titleButtonText: "Create row", titleButtonClickBehaviour: "new", + sidePanelSaveLabel: "Save", + sidePanelDeleteLabel: "Delete" }) .instanceName(`${datasource.label} - Table block`) return tableBlock diff --git a/packages/client/src/components/app/blocks/TableBlock.svelte b/packages/client/src/components/app/blocks/TableBlock.svelte index 5d8f1b71ae..0ecd8fe98c 100644 --- a/packages/client/src/components/app/blocks/TableBlock.svelte +++ b/packages/client/src/components/app/blocks/TableBlock.svelte @@ -249,7 +249,7 @@ props={{ dataSource, saveButtonLabel: sidePanelSaveLabel || "Save", //always show - deleteButtonLabel: deleteLabel, //respect config + deleteButtonLabel: deleteLabel == "" ? "" : "Delete", actionType: "Update", rowId: `{{ ${safe("state")}.${safe(stateKey)} }}`, fields: sidePanelFields || normalFields, From a04dd3a66d1594c14a945bff3f2b7753bed7dd74 Mon Sep 17 00:00:00 2001 From: Dean Date: Mon, 25 Sep 2023 11:40:54 +0100 Subject: [PATCH 2/3] Linting --- .../src/builderStore/store/screenTemplates/rowListScreen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js b/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js index 751f79ef44..b17bd99e10 100644 --- a/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js +++ b/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js @@ -34,7 +34,7 @@ const generateTableBlock = datasource => { titleButtonText: "Create row", titleButtonClickBehaviour: "new", sidePanelSaveLabel: "Save", - sidePanelDeleteLabel: "Delete" + sidePanelDeleteLabel: "Delete", }) .instanceName(`${datasource.label} - Table block`) return tableBlock From d6ae511edac190307be7a2c887bfcee258fd9f7e Mon Sep 17 00:00:00 2001 From: Dean Date: Mon, 25 Sep 2023 12:43:43 +0100 Subject: [PATCH 3/3] Refactor of the delete label logic into a block --- .../components/app/blocks/TableBlock.svelte | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/client/src/components/app/blocks/TableBlock.svelte b/packages/client/src/components/app/blocks/TableBlock.svelte index 0ecd8fe98c..1cb77cb3e5 100644 --- a/packages/client/src/components/app/blocks/TableBlock.svelte +++ b/packages/client/src/components/app/blocks/TableBlock.svelte @@ -45,8 +45,21 @@ let enrichedSearchColumns let schemaLoaded = false - // Accommodate old config to ensure delete button does not reappear - $: deleteLabel = sidePanelShowDelete === false ? "" : sidePanelDeleteLabel + $: deleteLabel = setDeleteLabel(sidePanelDeleteLabel, sidePanelShowDelete) + + const setDeleteLabel = sidePanelDeleteLabel => { + // Accommodate old config to ensure delete button does not reappear + let labelText = sidePanelShowDelete === false ? "" : sidePanelDeleteLabel + + // Empty text is considered hidden. + if (labelText?.trim() === "") { + return "" + } + + // Default to "Delete" if the value is unset + return labelText || "Delete" + } + $: isDSPlus = dataSource?.type === "table" || dataSource?.type === "viewV2" $: fetchSchema(dataSource) $: enrichSearchColumns(searchColumns, schema).then( @@ -249,7 +262,7 @@ props={{ dataSource, saveButtonLabel: sidePanelSaveLabel || "Save", //always show - deleteButtonLabel: deleteLabel == "" ? "" : "Delete", + deleteButtonLabel: deleteLabel, actionType: "Update", rowId: `{{ ${safe("state")}.${safe(stateKey)} }}`, fields: sidePanelFields || normalFields,