From 7570c528797b9d2cba00ab7346b8fd168aba2322 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 30 Mar 2023 16:12:28 +0100 Subject: [PATCH] Allow expanding rows using existing edit row modal --- .../DataTable/modals/CreateEditRow.svelte | 4 +- .../modals/sheet/SheetCreateRowModal.svelte | 20 +++- .../src/components/sheet/layout/Sheet.svelte | 14 ++- .../components/sheet/layout/SidePanel.svelte | 20 ---- .../sheet/layout/StickyColumn.svelte | 105 ++++++++++++------ .../src/components/sheet/lib/websocket.js | 5 +- .../src/components/sheet/stores/rows.js | 10 +- .../src/components/sheet/stores/ui.js | 2 - 8 files changed, 109 insertions(+), 71 deletions(-) delete mode 100644 packages/frontend-core/src/components/sheet/layout/SidePanel.svelte diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditRow.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditRow.svelte index 031d3930fd..37aff6ce22 100644 --- a/packages/builder/src/components/backend/DataTable/modals/CreateEditRow.svelte +++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditRow.svelte @@ -23,9 +23,9 @@ async function saveRow() { errors = [] try { - await API.saveRow({ ...row, tableId: table._id }) + const res = await API.saveRow({ ...row, tableId: table._id }) notifications.success("Row saved successfully") - dispatch("updaterows") + dispatch("updaterows", res._id) } catch (error) { if (error.handled) { const response = error.json diff --git a/packages/builder/src/components/backend/DataTable/modals/sheet/SheetCreateRowModal.svelte b/packages/builder/src/components/backend/DataTable/modals/sheet/SheetCreateRowModal.svelte index d236f0ab83..0cc9446b28 100644 --- a/packages/builder/src/components/backend/DataTable/modals/sheet/SheetCreateRowModal.svelte +++ b/packages/builder/src/components/backend/DataTable/modals/sheet/SheetCreateRowModal.svelte @@ -2,13 +2,27 @@ import CreateEditRow from "../../modals/CreateEditRow.svelte" import { getContext, onMount } from "svelte" import { Modal } from "@budibase/bbui" + import { cloneDeep } from "lodash/fp" - const { subscribe } = getContext("sheet") + const { subscribe, rows } = getContext("sheet") let modal - onMount(() => subscribe("add-row", modal.show)) + let row + + onMount(() => + subscribe("add-row", () => { + row = {} + modal.show() + }) + ) + onMount(() => + subscribe("edit-row", rowToEdit => { + row = cloneDeep(rowToEdit) + modal.show() + }) + ) - + rows.actions.refreshRow(e.detail)} /> diff --git a/packages/frontend-core/src/components/sheet/layout/Sheet.svelte b/packages/frontend-core/src/components/sheet/layout/Sheet.svelte index c4e6ef8aff..ab7d6bb4ba 100644 --- a/packages/frontend-core/src/components/sheet/layout/Sheet.svelte +++ b/packages/frontend-core/src/components/sheet/layout/Sheet.svelte @@ -27,7 +27,6 @@ import { clickOutside } from "@budibase/bbui" import AddRowButton from "../controls/AddRowButton.svelte" import SheetControls from "./SheetControls.svelte" - import SidePanel from "./SidePanel.svelte" export let API export let tableId @@ -35,19 +34,21 @@ export let allowSelectRows = true export let allowAddColumns = true export let allowEditColumns = true + export let allowExpandRows = true // Sheet constants const cellHeight = 36 - const gutterWidth = 80 + const gutterWidth = 72 const rand = Math.random() // State stores + const tableIdStore = writable(tableId) const config = writable({ - tableId, allowAddRows, allowSelectRows, allowAddColumns, allowEditColumns, + allowExpandRows, }) // Build up spreadsheet context @@ -58,6 +59,7 @@ cellHeight, gutterWidth, config, + tableId: tableIdStore, } context = { ...context, ...createEventManagers() } context = { ...context, ...createBoundsStores(context) } @@ -76,13 +78,14 @@ // Reference some stores for local use const { isResizing, isReordering, ui, loaded } = context - // Keep config store up to date + // Keep stores up to date + $: tableIdStore.set(tableId) $: config.set({ - tableId, allowAddRows, allowSelectRows, allowAddColumns, allowEditColumns, + allowExpandRows, }) // Set context for children to consume @@ -127,7 +130,6 @@ {/if} {/if} - diff --git a/packages/frontend-core/src/components/sheet/layout/SidePanel.svelte b/packages/frontend-core/src/components/sheet/layout/SidePanel.svelte deleted file mode 100644 index abdd51c622..0000000000 --- a/packages/frontend-core/src/components/sheet/layout/SidePanel.svelte +++ /dev/null @@ -1,20 +0,0 @@ - - -
some content
- - diff --git a/packages/frontend-core/src/components/sheet/layout/StickyColumn.svelte b/packages/frontend-core/src/components/sheet/layout/StickyColumn.svelte index 446bea4f87..782ee58646 100644 --- a/packages/frontend-core/src/components/sheet/layout/StickyColumn.svelte +++ b/packages/frontend-core/src/components/sheet/layout/StickyColumn.svelte @@ -1,6 +1,6 @@