From 43cb9878cfbc113f5a88f8bd8c3ad059ad417593 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 24 Feb 2021 16:55:06 +0000 Subject: [PATCH 1/2] Fixing an issue where the table that a view was attached to was not being retrieved correctly, inhibiting the ability to enrich with relationships. --- packages/server/src/api/controllers/row.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/server/src/api/controllers/row.js b/packages/server/src/api/controllers/row.js index 54f4e4508e..4ce664413e 100644 --- a/packages/server/src/api/controllers/row.js +++ b/packages/server/src/api/controllers/row.js @@ -202,6 +202,11 @@ exports.fetchView = async function(ctx) { const db = new CouchDB(appId) const { calculation, group, field } = ctx.query + const designDoc = await db.get("_design/database") + const viewInfo = designDoc.views[viewName] + if (!viewInfo) { + ctx.throw(400, "View does not exist.") + } const response = await db.query(`database/${viewName}`, { include_docs: !calculation, group, @@ -211,7 +216,7 @@ exports.fetchView = async function(ctx) { response.rows = response.rows.map(row => row.doc) let table try { - table = await db.get(ctx.params.tableId) + table = await db.get(viewInfo.meta.tableId) } catch (err) { table = { schema: {}, From 2b87f8bbb8afdf397af3728e95427807986b899b Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 24 Feb 2021 17:21:53 +0000 Subject: [PATCH 2/2] Updating group by functionality, so that relationships aren't an option. --- .../backend/DataTable/popovers/GroupByPopover.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/builder/src/components/backend/DataTable/popovers/GroupByPopover.svelte b/packages/builder/src/components/backend/DataTable/popovers/GroupByPopover.svelte index 36fde06d77..8c3b81dd53 100644 --- a/packages/builder/src/components/backend/DataTable/popovers/GroupByPopover.svelte +++ b/packages/builder/src/components/backend/DataTable/popovers/GroupByPopover.svelte @@ -2,6 +2,7 @@ import { Button, Input, Select } from "@budibase/bbui" import { backendUiStore } from "builderStore" import { notifier } from "builderStore/store/notifications" + import { FIELDS } from "constants/backend" export let view = {} export let onClosed @@ -9,7 +10,11 @@ $: viewTable = $backendUiStore.tables.find( ({ _id }) => _id === $backendUiStore.selectedView.tableId ) - $: fields = viewTable && Object.keys(viewTable.schema) + $: fields = + viewTable && + Object.entries(viewTable.schema) + .filter(entry => entry[1].type !== FIELDS.LINK.type) + .map(([key]) => key) function saveView() { backendUiStore.actions.views.save(view)