diff --git a/lerna.json b/lerna.json
index bbb6fc9d9e..43001d75a4 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "2.0.10-alpha.1",
+ "version": "2.0.13",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json
index 54c24958f5..5025335b32 100644
--- a/packages/backend-core/package.json
+++ b/packages/backend-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/backend-core",
- "version": "2.0.10-alpha.1",
+ "version": "2.0.13",
"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.0.10-alpha.1",
+ "@budibase/types": "^2.0.13",
"@shopify/jest-koa-mocks": "5.0.1",
"@techpass/passport-openidconnect": "0.3.2",
"aws-sdk": "2.1030.0",
diff --git a/packages/backend-core/src/objectStore/index.ts b/packages/backend-core/src/objectStore/index.ts
index a97aa8f65d..17e002cc49 100644
--- a/packages/backend-core/src/objectStore/index.ts
+++ b/packages/backend-core/src/objectStore/index.ts
@@ -182,6 +182,11 @@ export const streamUpload = async (
...extra,
ContentType: "application/javascript",
}
+ } else if (filename?.endsWith(".svg")) {
+ extra = {
+ ...extra,
+ ContentType: "image",
+ }
}
const params = {
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index bda9472a95..f0d298b018 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.0.10-alpha.1",
+ "version": "2.0.13",
"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.0.10-alpha.1",
+ "@budibase/string-templates": "^2.0.13",
"@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 2829a6e5d9..42487e0c03 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "2.0.10-alpha.1",
+ "version": "2.0.13",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -71,10 +71,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "2.0.10-alpha.1",
- "@budibase/client": "2.0.10-alpha.1",
- "@budibase/frontend-core": "2.0.10-alpha.1",
- "@budibase/string-templates": "2.0.10-alpha.1",
+ "@budibase/bbui": "^2.0.13",
+ "@budibase/client": "^2.0.13",
+ "@budibase/frontend-core": "^2.0.13",
+ "@budibase/string-templates": "^2.0.13",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/builder/src/builderStore/componentUtils.js b/packages/builder/src/builderStore/componentUtils.js
index 2ad7e82075..e7787dea72 100644
--- a/packages/builder/src/builderStore/componentUtils.js
+++ b/packages/builder/src/builderStore/componentUtils.js
@@ -143,7 +143,10 @@ export const getComponentSettings = componentType => {
}
// Ensure whole component name is used
- if (!componentType.startsWith("@budibase")) {
+ if (
+ !componentType.startsWith("plugin/") &&
+ !componentType.startsWith("@budibase")
+ ) {
componentType = `@budibase/standard-components/${componentType}`
}
diff --git a/packages/builder/src/builderStore/dataBinding.js b/packages/builder/src/builderStore/dataBinding.js
index ca36380077..7456ec5691 100644
--- a/packages/builder/src/builderStore/dataBinding.js
+++ b/packages/builder/src/builderStore/dataBinding.js
@@ -243,18 +243,18 @@ export const getDatasourceForProvider = (asset, component) => {
return null
}
- // There are different types of setting which can be a datasource, for
- // example an actual datasource object, or a table ID string.
- // Convert the datasource setting into a proper datasource object so that
- // we can use it properly
- if (datasourceSetting.type === "table") {
+ // For legacy compatibility, we need to be able to handle datasources that are
+ // just strings. These are not generated any more, so could be removed in
+ // future.
+ // TODO: remove at some point
+ const datasource = component[datasourceSetting?.key]
+ if (typeof datasource === "string") {
return {
- tableId: component[datasourceSetting?.key],
+ tableId: datasource,
type: "table",
}
- } else {
- return component[datasourceSetting?.key]
}
+ return datasource
}
/**
diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js
index b74261a7e8..aefdba9fb2 100644
--- a/packages/builder/src/builderStore/store/frontend.js
+++ b/packages/builder/src/builderStore/store/frontend.js
@@ -88,27 +88,12 @@ export const getFrontendStore = () => {
initialise: async pkg => {
const { layouts, screens, application, clientLibPath } = pkg
- // Fetch component definitions.
- // Allow errors to propagate.
- const components = await API.fetchComponentLibDefinitions(
- application.appId
- )
-
- // Filter out custom component keys so we can flag them
- const customComponents = Object.keys(components).filter(name =>
- name.startsWith("plugin/")
- )
+ await store.actions.components.refreshDefinitions(application.appId)
// Reset store state
store.update(state => ({
...state,
libraries: application.componentLibraries,
- components,
- customComponents,
- clientFeatures: {
- ...INITIAL_FRONTEND_STATE.clientFeatures,
- ...components.features,
- },
name: application.name,
description: application.description,
appId: application.appId,
@@ -385,6 +370,29 @@ export const getFrontendStore = () => {
},
},
components: {
+ refreshDefinitions: async appId => {
+ if (!appId) {
+ appId = get(store).appId
+ }
+
+ // Fetch definitions and filter out custom component definitions so we
+ // can flag them
+ const components = await API.fetchComponentLibDefinitions(appId)
+ const customComponents = Object.keys(components).filter(name =>
+ name.startsWith("plugin/")
+ )
+
+ // Update store
+ store.update(state => ({
+ ...state,
+ components,
+ customComponents,
+ clientFeatures: {
+ ...INITIAL_FRONTEND_STATE.clientFeatures,
+ ...components.features,
+ },
+ }))
+ },
getDefinition: componentName => {
if (!componentName) {
return null
@@ -428,7 +436,7 @@ export const getFrontendStore = () => {
_id: Helpers.uuid(),
_component: definition.component,
_styles: { normal: {}, hover: {}, active: {} },
- _instanceName: `New ${definition.name}`,
+ _instanceName: `New ${definition.friendlyName || definition.name}`,
...cloneDeep(props),
...extras,
}
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte b/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte
index 19946a2386..a3531513fb 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte
@@ -13,7 +13,7 @@
customQueryIconColor,
customQueryText,
} from "helpers/data/utils"
- import { getIcon } from "./icons"
+ import IntegrationIcon from "./IntegrationIcon.svelte"
import { notifications } from "@budibase/bbui"
let openDataSources = []
@@ -123,10 +123,10 @@
on:iconClick={() => toggleNode(datasource)}
>
-
{#if datasource._id !== BUDIBASE_INTERNAL_DB}
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/IntegrationIcon.svelte b/packages/builder/src/components/backend/DatasourceNavigator/IntegrationIcon.svelte
new file mode 100644
index 0000000000..e6cfbf7db8
--- /dev/null
+++ b/packages/builder/src/components/backend/DatasourceNavigator/IntegrationIcon.svelte
@@ -0,0 +1,32 @@
+
+
+{#if iconInfo.icon}
+
+{:else if iconInfo.url}
+ {#await getSvgFromUrl(iconInfo) then retrievedSvg}
+
+ {/await}
+{/if}
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/_components/DatasourceCard.svelte b/packages/builder/src/components/backend/DatasourceNavigator/_components/DatasourceCard.svelte
index 6dffc70a63..1e966ebb2b 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/_components/DatasourceCard.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/_components/DatasourceCard.svelte
@@ -1,7 +1,7 @@
+
+{@html substituteSize(svgHtml)}
diff --git a/packages/builder/src/components/design/settings/controls/TableSelect.svelte b/packages/builder/src/components/design/settings/controls/TableSelect.svelte
index b41098da2d..384bbe1e3a 100644
--- a/packages/builder/src/components/design/settings/controls/TableSelect.svelte
+++ b/packages/builder/src/components/design/settings/controls/TableSelect.svelte
@@ -1,26 +1,28 @@
-
-
-
-
-
+