From deb4092cd38afb49da9c301d7f25fc15f2810a7b Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 27 Jul 2023 14:17:26 +0100 Subject: [PATCH] Refactor grid stores and how config is handled --- .../backend/DataTable/TableDataTable.svelte | 10 ++- packages/frontend-core/src/api/viewsV2.js | 13 +++- .../src/components/grid/cells/DataCell.svelte | 2 +- .../components/grid/cells/GutterCell.svelte | 8 +-- .../components/grid/cells/HeaderCell.svelte | 4 +- .../src/components/grid/layout/Grid.svelte | 15 +++-- .../components/grid/layout/GridBody.svelte | 4 +- .../components/grid/layout/HeaderRow.svelte | 2 +- .../src/components/grid/layout/NewRow.svelte | 4 +- .../grid/layout/StickyColumn.svelte | 4 +- .../grid/overlays/KeyboardManager.svelte | 11 ++-- .../grid/overlays/MenuOverlay.svelte | 9 +-- .../src/components/grid/stores/clipboard.js | 2 +- .../src/components/grid/stores/columns.js | 63 ++++++++++--------- .../src/components/grid/stores/config.js | 47 ++++++++++++-- .../src/components/grid/stores/filter.js | 4 +- .../src/components/grid/stores/index.js | 7 ++- .../src/components/grid/stores/menu.js | 2 +- .../src/components/grid/stores/reorder.js | 2 +- .../src/components/grid/stores/resize.js | 2 +- .../src/components/grid/stores/rows.js | 38 ++++++----- .../src/components/grid/stores/sort.js | 7 ++- .../src/components/grid/stores/ui.js | 52 ++++++--------- .../src/components/grid/stores/users.js | 9 ++- .../src/components/grid/stores/viewport.js | 8 +-- 25 files changed, 193 insertions(+), 136 deletions(-) diff --git a/packages/builder/src/components/backend/DataTable/TableDataTable.svelte b/packages/builder/src/components/backend/DataTable/TableDataTable.svelte index bd8ee258fd..7ef779d300 100644 --- a/packages/builder/src/components/backend/DataTable/TableDataTable.svelte +++ b/packages/builder/src/components/backend/DataTable/TableDataTable.svelte @@ -26,16 +26,14 @@ $: id = $tables.selected?._id $: isUsersTable = id === TableNames.USERS $: isInternal = $tables.selected?.type !== "external" - $: datasource = { + $: gridDatasource = { type: "table", tableId: id, } - - $: datasource = $datasources.list.find(datasource => { + $: tableDatasource = $datasources.list.find(datasource => { return datasource._id === $tables.selected?.sourceId }) - - $: relationshipsEnabled = relationshipSupport(datasource) + $: relationshipsEnabled = relationshipSupport(tableDatasource) const relationshipSupport = datasource => { const integration = $integrations[datasource?.source] @@ -58,7 +56,7 @@
({ /** * Create a new view - * @param tableId the id of the table where the view will be created * @param view the view object */ create: async view => { @@ -10,9 +9,18 @@ export const buildViewV2Endpoints = API => ({ body: view, }) }, + /** + * Updates a view + * @param view the view object + */ + update: async view => { + return await API.put({ + url: `/api/v2/views/${view.id}`, + body: view, + }) + }, /** * Fetches all rows in a view - * @param tableId the id of the table * @param viewId the id of the view */ fetch: async viewId => { @@ -20,7 +28,6 @@ export const buildViewV2Endpoints = API => ({ }, /** * Delete a view - * @param tableId the id of the table * @param viewId the id of the view */ delete: async viewId => { diff --git a/packages/frontend-core/src/components/grid/cells/DataCell.svelte b/packages/frontend-core/src/components/grid/cells/DataCell.svelte index cb8616a735..3a2a5f957f 100644 --- a/packages/frontend-core/src/components/grid/cells/DataCell.svelte +++ b/packages/frontend-core/src/components/grid/cells/DataCell.svelte @@ -34,7 +34,7 @@ column.schema.autocolumn || column.schema.disabled || column.schema.type === "formula" || - (!$config.allowEditRows && row._id) + (!$config.canEditRows && row._id) // Register this cell API if the row is focused $: { diff --git a/packages/frontend-core/src/components/grid/cells/GutterCell.svelte b/packages/frontend-core/src/components/grid/cells/GutterCell.svelte index dd11066b98..5357d4b5cf 100644 --- a/packages/frontend-core/src/components/grid/cells/GutterCell.svelte +++ b/packages/frontend-core/src/components/grid/cells/GutterCell.svelte @@ -40,7 +40,7 @@
@@ -48,14 +48,14 @@ {#if !disableNumber}
{row.__idx + 1}
{/if} {/if} - {#if rowSelected && $config.allowDeleteRows} + {#if rowSelected && $config.canDeleteRows}
dispatch("request-bulk-delete")}>
{:else} -
+
Edit column @@ -175,7 +175,7 @@ icon="Label" on:click={makeDisplayColumn} disabled={idx === "sticky" || - !$config.allowSchemaChanges || + !$config.canEditPrimaryDisplay || bannedDisplayColumnTypes.includes(column.schema.type)} > Use as display column diff --git a/packages/frontend-core/src/components/grid/layout/Grid.svelte b/packages/frontend-core/src/components/grid/layout/Grid.svelte index 556e6ca16e..ea7cd73a4b 100644 --- a/packages/frontend-core/src/components/grid/layout/Grid.svelte +++ b/packages/frontend-core/src/components/grid/layout/Grid.svelte @@ -1,5 +1,6 @@