From 910ec6446bea1318be60fa73e6fafbebca57404b Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Thu, 9 May 2024 18:03:46 +0200 Subject: [PATCH 1/4] Prevent spamming the column config save button --- .../DataTable/modals/CreateEditColumn.svelte | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte index 81d5545c40..8f91796f6c 100644 --- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte +++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte @@ -12,6 +12,7 @@ OptionSelectDnD, Layout, AbsTooltip, + ProgressCircle, } from "@budibase/bbui" import { SWITCHABLE_TYPES, ValidColumnNameRegex } from "@budibase/shared-core" import { createEventDispatcher, getContext, onMount } from "svelte" @@ -245,11 +246,11 @@ } async function saveColumn() { - savingColumn = true if (errors?.length) { return } + savingColumn = true let saveColumn = cloneDeep(editableColumn) delete saveColumn.fieldId @@ -289,6 +290,8 @@ } } catch (err) { notifications.error(`Error saving column: ${err.message}`) + } finally { + savingColumn = false } } @@ -739,7 +742,20 @@ {/if} - + From 10df6277447ee81548d06ff2fc5b6cca77580ad1 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Thu, 9 May 2024 18:44:07 +0200 Subject: [PATCH 2/4] Keep headers --- packages/server/src/integrations/googlesheets.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/server/src/integrations/googlesheets.ts b/packages/server/src/integrations/googlesheets.ts index 7215c337d7..b1b372b4f5 100644 --- a/packages/server/src/integrations/googlesheets.ts +++ b/packages/server/src/integrations/googlesheets.ts @@ -430,14 +430,6 @@ class GoogleSheetsIntegration implements DatasourcePlus { } } - // clear out deleted columns - for (let key of sheet.headerValues) { - if (!Object.keys(table.schema).includes(key)) { - const idx = updatedHeaderValues.indexOf(key) - updatedHeaderValues.splice(idx, 1) - } - } - try { await sheet.setHeaderRow(updatedHeaderValues) } catch (err) { From 5a45ebcebc97108958ff4896a474302c999d96c0 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Thu, 9 May 2024 19:13:20 +0200 Subject: [PATCH 3/4] Lint anys --- packages/server/src/integrations/googlesheets.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/server/src/integrations/googlesheets.ts b/packages/server/src/integrations/googlesheets.ts index b1b372b4f5..889adfc544 100644 --- a/packages/server/src/integrations/googlesheets.ts +++ b/packages/server/src/integrations/googlesheets.ts @@ -371,9 +371,11 @@ class GoogleSheetsIntegration implements DatasourcePlus { } buildRowObject(headers: string[], values: string[], rowNumber: number) { - const rowObject: { rowNumber: number; [key: string]: any } = { rowNumber } + const rowObject: { rowNumber: number } & Row = { + rowNumber, + _id: rowNumber.toString(), + } for (let i = 0; i < headers.length; i++) { - rowObject._id = rowNumber rowObject[headers[i]] = values[i] } return rowObject @@ -450,7 +452,7 @@ class GoogleSheetsIntegration implements DatasourcePlus { } } - async create(query: { sheet: string; row: any }) { + async create(query: { sheet: string; row: Row }) { try { await this.connect() const sheet = this.client.sheetsByTitle[query.sheet] @@ -466,7 +468,7 @@ class GoogleSheetsIntegration implements DatasourcePlus { } } - async createBulk(query: { sheet: string; rows: any[] }) { + async createBulk(query: { sheet: string; rows: Row[] }) { try { await this.connect() const sheet = this.client.sheetsByTitle[query.sheet] From c0a2482a4ecdbcef442ef4af0617c818fa609391 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Thu, 9 May 2024 19:57:27 +0200 Subject: [PATCH 4/4] Fix test --- .../server/src/integrations/tests/googlesheets.spec.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/server/src/integrations/tests/googlesheets.spec.ts b/packages/server/src/integrations/tests/googlesheets.spec.ts index c6e073d602..97ac35787d 100644 --- a/packages/server/src/integrations/tests/googlesheets.spec.ts +++ b/packages/server/src/integrations/tests/googlesheets.spec.ts @@ -129,10 +129,11 @@ describe("Google Sheets Integration", () => { }) expect(sheet.loadHeaderRow).toHaveBeenCalledTimes(1) expect(sheet.setHeaderRow).toHaveBeenCalledTimes(1) - expect(sheet.setHeaderRow).toHaveBeenCalledWith(["name"]) - - // No undefined are sent - expect((sheet.setHeaderRow as any).mock.calls[0][0]).toHaveLength(1) + expect(sheet.setHeaderRow).toHaveBeenCalledWith([ + "name", + "description", + "location", + ]) }) })