From 6d294be646543fce3b2094502fe5037b280e3679 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 9 Oct 2024 09:45:47 +0100 Subject: [PATCH] Add saving of calculation view updates --- .../grid/GridViewCalculationButton.svelte | 32 ++++++++++++------- .../_components/CreateViewButton.svelte | 2 +- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/packages/builder/src/components/backend/DataTable/buttons/grid/GridViewCalculationButton.svelte b/packages/builder/src/components/backend/DataTable/buttons/grid/GridViewCalculationButton.svelte index 96a7d0ef8c..3644a846ba 100644 --- a/packages/builder/src/components/backend/DataTable/buttons/grid/GridViewCalculationButton.svelte +++ b/packages/builder/src/components/backend/DataTable/buttons/grid/GridViewCalculationButton.svelte @@ -41,7 +41,7 @@ const open = () => { calculations = extractCalculations(schema) - groupings = extractGroupings(schema) + groupings = calculations.length ? extractGroupings(schema) : [] modal?.show() } @@ -138,18 +138,26 @@ const save = async () => { let schema = {} - const rand = ("" + Math.random()).substring(2) + // Add calculations + for (let calc of calculations) { + const name = `${calc.type} of ${calc.field}` + schema[name] = { + calculationType: calc.type, + field: calc.field, + visible: true, + } + } + + // Add groupings + for (let grouping of groupings) { + schema[grouping.field] = { + visible: true, + } + } await datasource.actions.saveDefinition({ ...$definition, primaryDisplay: null, - schema: { - ["Average game length " + rand]: { - visible: true, - calculationType: CalculationType.AVG, - field: "Game Length", - width: 300, - }, - }, + schema, }) await rows.actions.refreshData() } @@ -168,7 +176,9 @@ > {#if !calculations.length}
- Add your first calculation + + Add your first calculation +
{:else}
diff --git a/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/CreateViewButton.svelte b/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/CreateViewButton.svelte index 253c386b9e..e531e54d87 100644 --- a/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/CreateViewButton.svelte +++ b/packages/builder/src/pages/builder/app/[application]/data/table/[tableId]/_components/CreateViewButton.svelte @@ -39,7 +39,7 @@ const newView = await viewsV2.create({ name: trimmedName, tableId: table._id, - schema: enrichSchema(table.schema), + schema: calculation ? {} : enrichSchema(table.schema), primaryDisplay: calculation ? undefined : table.primaryDisplay, type: calculation ? ViewV2Type.CALCULATION : undefined, })