diff --git a/packages/bbui/src/Actions/click_outside.js b/packages/bbui/src/Actions/click_outside.js index 43904e0af2..9437681e93 100644 --- a/packages/bbui/src/Actions/click_outside.js +++ b/packages/bbui/src/Actions/click_outside.js @@ -6,6 +6,9 @@ let clickHandlers = [] */ const handleClick = event => { // Ignore click if this is an ignored class + if (event.target.closest('[data-ignore-click-outside="true"]')) { + return + } for (let className of ignoredClasses) { if (event.target.closest(className)) { return @@ -29,7 +32,7 @@ const handleClick = event => { }) } document.documentElement.addEventListener("click", handleClick, true) -document.documentElement.addEventListener("contextmenu", handleClick, true) +// document.documentElement.addEventListener("contextmenu", handleClick, true) /** * Adds or updates a click handler diff --git a/packages/frontend-core/src/components/sheet/cells/DataCell.svelte b/packages/frontend-core/src/components/sheet/cells/DataCell.svelte index 4cda2cf32e..a2eafdac21 100644 --- a/packages/frontend-core/src/components/sheet/cells/DataCell.svelte +++ b/packages/frontend-core/src/components/sheet/cells/DataCell.svelte @@ -3,7 +3,8 @@ import SheetCell from "./SheetCell.svelte" import { getCellRenderer } from "../lib/renderers" - const { rows, selectedCellId, menu, selectedCellAPI } = getContext("sheet") + const { rows, selectedCellId, menu, selectedCellAPI, config } = + getContext("sheet") export let rowSelected export let rowHovered @@ -22,10 +23,13 @@ let api let error + // Determine if the cell is editable + $: readonly = column.schema.autocolumn || (!$config.allowEditRows && row._id) + // Build cell API $: cellAPI = { ...api, - isReadonly: () => !!column.schema.autocolumn, + isReadonly: () => readonly, isRequired: () => !!column.schema.constraints?.presence, updateValue: value => { error = null @@ -80,7 +84,7 @@ schema={column.schema} {selected} onChange={cellAPI.updateValue} - readonly={column.schema.autocolumn} + {readonly} {invert} /> {/if} diff --git a/packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte b/packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte index bc35c74b3e..1392cccfc4 100644 --- a/packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte +++ b/packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte @@ -98,6 +98,7 @@ } textarea.invert { transform: translateY(-100%); + top: calc(100% + 1px); } textarea:focus { outline: none; diff --git a/packages/frontend-core/src/components/sheet/controls/DeleteButton.svelte b/packages/frontend-core/src/components/sheet/controls/DeleteButton.svelte index ac0603e439..f463bfb197 100644 --- a/packages/frontend-core/src/components/sheet/controls/DeleteButton.svelte +++ b/packages/frontend-core/src/components/sheet/controls/DeleteButton.svelte @@ -7,7 +7,7 @@ } from "@budibase/bbui" import { getContext } from "svelte" - const { selectedRows, rows } = getContext("sheet") + const { selectedRows, rows, config } = getContext("sheet") let modal @@ -31,12 +31,13 @@ {#if selectedRowCount} -
- +
+ Delete {selectedRowCount} row{selectedRowCount === 1 ? "" : "s"}
@@ -56,12 +57,16 @@ diff --git a/packages/frontend-core/src/components/sheet/layout/Sheet.svelte b/packages/frontend-core/src/components/sheet/layout/Sheet.svelte index 9616e98317..41c74cc791 100644 --- a/packages/frontend-core/src/components/sheet/layout/Sheet.svelte +++ b/packages/frontend-core/src/components/sheet/layout/Sheet.svelte @@ -36,6 +36,7 @@ export let allowAddColumns = true export let allowEditColumns = true export let allowExpandRows = true + export let allowEditRows = true // Sheet constants const cellHeight = 36 @@ -50,6 +51,7 @@ allowAddColumns, allowEditColumns, allowExpandRows, + allowEditRows, }) // Build up spreadsheet context @@ -88,6 +90,7 @@ allowAddColumns, allowEditColumns, allowExpandRows, + allowEditRows, }) // Set context for children to consume diff --git a/packages/frontend-core/src/components/sheet/overlays/MenuOverlay.svelte b/packages/frontend-core/src/components/sheet/overlays/MenuOverlay.svelte index b90699f4cc..8392bff7be 100644 --- a/packages/frontend-core/src/components/sheet/overlays/MenuOverlay.svelte +++ b/packages/frontend-core/src/components/sheet/overlays/MenuOverlay.svelte @@ -1,14 +1,16 @@