From 4b367bf505966e8cfa9b870b26bb26c9233a45c6 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 3 Sep 2024 09:06:12 +0100 Subject: [PATCH] Add row action button actions --- .../actions/RowAction.svelte | 118 ++++++++++++++++++ .../ButtonActionEditor/actions/index.js | 1 + .../controls/ButtonActionEditor/manifest.json | 5 + packages/client/src/utils/buttonActions.js | 10 ++ 4 files changed, 134 insertions(+) create mode 100644 packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/RowAction.svelte diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/RowAction.svelte b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/RowAction.svelte new file mode 100644 index 0000000000..866dcd2972 --- /dev/null +++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/RowAction.svelte @@ -0,0 +1,118 @@ + + +
+
+ + + +
+ + + {#if parameters.confirm} + + (parameters.customTitleText = e.detail)} + {bindings} + /> + + (parameters.confirmText = e.detail)} + {bindings} + /> + + (parameters.confirmButtonText = e.detail)} + {bindings} + /> + + (parameters.cancelButtonText = e.detail)} + {bindings} + /> + {/if} +
+
+ + diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js index 606ee41d02..b171b34111 100644 --- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js +++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js @@ -25,3 +25,4 @@ export { default as OpenModal } from "./OpenModal.svelte" export { default as CloseModal } from "./CloseModal.svelte" export { default as ClearRowSelection } from "./ClearRowSelection.svelte" export { default as DownloadFile } from "./DownloadFile.svelte" +export { default as RowAction } from "./RowAction.svelte" diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json index 4022926e7f..631e3119e8 100644 --- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json +++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json @@ -178,6 +178,11 @@ "name": "Download File", "type": "data", "component": "DownloadFile" + }, + { + "name": "Row Action", + "type": "data", + "component": "RowAction" } ] } diff --git a/packages/client/src/utils/buttonActions.js b/packages/client/src/utils/buttonActions.js index 8f0cb575a7..4dae0ad273 100644 --- a/packages/client/src/utils/buttonActions.js +++ b/packages/client/src/utils/buttonActions.js @@ -493,6 +493,15 @@ const downloadFileHandler = async action => { } } +const rowActionHandler = async action => { + const { resourceId, rowId, rowActionId } = action.parameters + await API.rowActions.trigger({ + rowActionId, + tableId: resourceId, + rowId, + }) +} + const handlerMap = { ["Fetch Row"]: fetchRowHandler, ["Save Row"]: saveRowHandler, @@ -514,6 +523,7 @@ const handlerMap = { ["Open Modal"]: openModalHandler, ["Close Modal"]: closeModalHandler, ["Download File"]: downloadFileHandler, + ["Row Action"]: rowActionHandler, } const confirmTextMap = {