diff --git a/packages/builder/src/components/backend/DataTable/Table.svelte b/packages/builder/src/components/backend/DataTable/Table.svelte
index 4569586762..f8087d8a39 100644
--- a/packages/builder/src/components/backend/DataTable/Table.svelte
+++ b/packages/builder/src/components/backend/DataTable/Table.svelte
@@ -3,13 +3,10 @@
import { goto, params } from "@roxi/routify"
import { Table, Heading, Layout } from "@budibase/bbui"
import Spinner from "components/common/Spinner.svelte"
- import {
- TableNames,
- UNEDITABLE_USER_FIELDS,
- UNSORTABLE_TYPES,
- } from "constants"
+ import { TableNames, UNEDITABLE_USER_FIELDS } from "constants"
import RoleCell from "./cells/RoleCell.svelte"
import { createEventDispatcher } from "svelte"
+ import { canBeSortColumn } from "@budibase/shared-core"
export let schema = {}
export let data = []
@@ -32,12 +29,10 @@
$: isUsersTable = tableId === TableNames.USERS
$: data && resetSelectedRows()
$: {
- UNSORTABLE_TYPES.forEach(type => {
- Object.values(schema || {}).forEach(col => {
- if (col.type === type) {
- col.sortable = false
- }
- })
+ Object.values(schema || {}).forEach(col => {
+ if (!canBeSortColumn(col.type)) {
+ col.sortable = false
+ }
})
}
$: {
diff --git a/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte b/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte
index d70929469a..29f32aa345 100644
--- a/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte
+++ b/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte
@@ -1,5 +1,9 @@
@@ -172,7 +225,9 @@
on:click={dropdownRight.show}
/>
{#if value?.type === "query"}
-
+
+
+
@@ -198,6 +253,29 @@
{/if}
+ {#if value?.type === "custom"}
+
+
+
+
+
+
+
+
+ Provide a JSON array to use as data
+ (tmpCustomData = event.detail)}
+ {bindings}
+ allowJS
+ allowHelpers
+ />
+
+ {/if}
@@ -285,20 +363,27 @@
{/each}
{/if}
- {#if otherSources?.length}
-
-
- Other
-
-
+
+
+ Other
+
+
+ - handleSelected(custom)}>{custom.label}
+ {#if otherSources?.length}
{#each otherSources as source}
- handleSelected(source)}>{source.label}
{/each}
-
- {/if}
+ {/if}
+
+
+
+
+
+
+
diff --git a/packages/builder/src/components/design/settings/controls/SortableFieldSelect.svelte b/packages/builder/src/components/design/settings/controls/SortableFieldSelect.svelte
index 21ed68ce68..350f59f456 100644
--- a/packages/builder/src/components/design/settings/controls/SortableFieldSelect.svelte
+++ b/packages/builder/src/components/design/settings/controls/SortableFieldSelect.svelte
@@ -6,7 +6,7 @@
} from "builderStore/dataBinding"
import { currentAsset } from "builderStore"
import { createEventDispatcher } from "svelte"
- import { UNSORTABLE_TYPES } from "constants"
+ import { canBeSortColumn } from "@budibase/shared-core"
export let componentInstance = {}
export let value = ""
@@ -20,7 +20,7 @@
const getSortableFields = schema => {
return Object.entries(schema || {})
- .filter(entry => !UNSORTABLE_TYPES.includes(entry[1].type))
+ .filter(entry => canBeSortColumn(entry[1].type))
.map(entry => entry[0])
}
diff --git a/packages/builder/src/constants/index.js b/packages/builder/src/constants/index.js
index 66fd926a77..f556ee4b05 100644
--- a/packages/builder/src/constants/index.js
+++ b/packages/builder/src/constants/index.js
@@ -34,8 +34,6 @@ export const UNEDITABLE_USER_FIELDS = [
"lastName",
]
-export const UNSORTABLE_TYPES = ["formula", "attachment", "array", "link"]
-
export const LAYOUT_NAMES = {
MASTER: {
PRIVATE: "layout_private_master",
diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/ComponentSettingsSection.svelte b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/ComponentSettingsSection.svelte
index b4ed8995a0..639cef332e 100644
--- a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/ComponentSettingsSection.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/ComponentSettingsSection.svelte
@@ -1,5 +1,5 @@