diff --git a/lerna.json b/lerna.json index 1eeecc5051..e26819bf33 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.1.32-alpha.9", + "version": "2.1.32-alpha.11", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 9f2a1a3888..9f08efc49f 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.1.32-alpha.9", + "version": "2.1.32-alpha.11", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "2.1.32-alpha.9", + "@budibase/types": "2.1.32-alpha.11", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 5e077007b6..2e2a9f7f36 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.1.32-alpha.9", + "version": "2.1.32-alpha.11", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "2.1.32-alpha.9", + "@budibase/string-templates": "2.1.32-alpha.11", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 2ab073e4d6..ec531fe7ec 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.1.32-alpha.9", + "version": "2.1.32-alpha.11", "license": "GPL-3.0", "private": true, "scripts": { @@ -71,10 +71,10 @@ } }, "dependencies": { - "@budibase/bbui": "2.1.32-alpha.9", - "@budibase/client": "2.1.32-alpha.9", - "@budibase/frontend-core": "2.1.32-alpha.9", - "@budibase/string-templates": "2.1.32-alpha.9", + "@budibase/bbui": "2.1.32-alpha.11", + "@budibase/client": "2.1.32-alpha.11", + "@budibase/frontend-core": "2.1.32-alpha.11", + "@budibase/string-templates": "2.1.32-alpha.11", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js index 4e8c480772..6047ab6505 100644 --- a/packages/builder/src/builderStore/store/frontend.js +++ b/packages/builder/src/builderStore/store/frontend.js @@ -20,6 +20,11 @@ import { } from "../componentUtils" import { Helpers } from "@budibase/bbui" import { Utils } from "@budibase/frontend-core" +import { + BUDIBASE_INTERNAL_DB_ID, + DB_TYPE_INTERNAL, + DB_TYPE_EXTERNAL, +} from "constants/backend" const INITIAL_FRONTEND_STATE = { apps: [], @@ -482,8 +487,41 @@ export const getFrontendStore = () => { return null } - // Generate default props + // Flattened settings const settings = getComponentSettings(componentName) + + let dataSourceField = settings.find( + setting => setting.type == "dataSource" || setting.type == "table" + ) + + let defaultDatasource + if (dataSourceField) { + const _tables = get(tables) + const filteredTables = _tables.list.filter( + table => table._id != "ta_users" + ) + + const internalTable = filteredTables.find( + table => + table.sourceId === BUDIBASE_INTERNAL_DB_ID && + table.type == DB_TYPE_INTERNAL + ) + + const defaultSourceTable = filteredTables.find( + table => + table.sourceId !== BUDIBASE_INTERNAL_DB_ID && + table.type == DB_TYPE_INTERNAL + ) + + const defaultExternalTable = filteredTables.find( + table => table.type == DB_TYPE_EXTERNAL + ) + + defaultDatasource = + defaultSourceTable || internalTable || defaultExternalTable + } + + // Generate default props let props = { ...presetProps } settings.forEach(setting => { if (setting.defaultValue !== undefined) { @@ -491,6 +529,15 @@ export const getFrontendStore = () => { } }) + // Set a default datasource + if (dataSourceField && defaultDatasource) { + props[dataSourceField.key] = { + label: defaultDatasource.name, + tableId: defaultDatasource._id, + type: "table", + } + } + // Add any extra properties the component needs let extras = {} if (definition.hasChildren) { diff --git a/packages/builder/src/components/integration/QueryBindingBuilder.svelte b/packages/builder/src/components/integration/QueryBindingBuilder.svelte index 255bee21dd..3a89c4b968 100644 --- a/packages/builder/src/components/integration/QueryBindingBuilder.svelte +++ b/packages/builder/src/components/integration/QueryBindingBuilder.svelte @@ -1,5 +1,5 @@
Bindings - {#if !bindable} - - {/if}
{#if !bindable} diff --git a/packages/builder/src/constants/backend/index.js b/packages/builder/src/constants/backend/index.js index 5ecc7bc324..f3898e1d9e 100644 --- a/packages/builder/src/constants/backend/index.js +++ b/packages/builder/src/constants/backend/index.js @@ -175,6 +175,8 @@ export const SWITCHABLE_TYPES = [ export const BUDIBASE_INTERNAL_DB_ID = "bb_internal" export const BUDIBASE_DATASOURCE_TYPE = "budibase" +export const DB_TYPE_INTERNAL = "internal" +export const DB_TYPE_EXTERNAL = "external" export const IntegrationTypes = { POSTGRES: "POSTGRES", diff --git a/packages/builder/src/pages/builder/app/[application]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/_layout.svelte index a854d09304..5296604dc7 100644 --- a/packages/builder/src/pages/builder/app/[application]/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_layout.svelte @@ -1,7 +1,6 @@