diff --git a/packages/builder/src/builderStore/dataBinding.js b/packages/builder/src/builderStore/dataBinding.js index bbe116721a..615b032d92 100644 --- a/packages/builder/src/builderStore/dataBinding.js +++ b/packages/builder/src/builderStore/dataBinding.js @@ -734,9 +734,19 @@ export const getSchemaForDatasource = (asset, datasource, options) => { // Determine the schema from the backing entity if not already determined if (table && !schema) { if (type === "view") { - // For views, the schema is pulled from the `views` property of the - // table + // Old views schema = cloneDeep(table.views?.[datasource.name]?.schema) + } else if (type === "viewV2") { + // New views which are DS+ + const view = table.views?.[datasource.name] + schema = cloneDeep(view?.schema) + + // Strip hidden fields + Object.keys(schema || {}).forEach(field => { + if (!schema[field].visible) { + delete schema[field] + } + }) } else if ( type === "query" && (options.formSchema || options.searchableSchema) diff --git a/packages/builder/src/components/backend/DataTable/ViewV2DataTable.svelte b/packages/builder/src/components/backend/DataTable/ViewV2DataTable.svelte index 21b3e1c291..e4e1adda36 100644 --- a/packages/builder/src/components/backend/DataTable/ViewV2DataTable.svelte +++ b/packages/builder/src/components/backend/DataTable/ViewV2DataTable.svelte @@ -13,7 +13,7 @@ } const handleGridViewUpdate = async e => { - viewsV2.replace(id, e.detail) + viewsV2.replaceView(id, e.detail) } diff --git a/packages/builder/src/components/backend/DataTable/buttons/grid/GridCreateViewButton.svelte b/packages/builder/src/components/backend/DataTable/buttons/grid/GridCreateViewButton.svelte index 33c416d7ef..3244ce3277 100644 --- a/packages/builder/src/components/backend/DataTable/buttons/grid/GridCreateViewButton.svelte +++ b/packages/builder/src/components/backend/DataTable/buttons/grid/GridCreateViewButton.svelte @@ -1,7 +1,7 @@