diff --git a/packages/builder/package.json b/packages/builder/package.json
index 85580fa40b..947bce4b6a 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -63,7 +63,7 @@
}
},
"dependencies": {
- "@budibase/bbui": "^1.58.5",
+ "@budibase/bbui": "^1.58.6",
"@budibase/client": "^0.7.7",
"@budibase/colorpicker": "1.0.1",
"@budibase/string-templates": "^0.7.7",
diff --git a/packages/builder/src/builderStore/store/backend.js b/packages/builder/src/builderStore/store/backend.js
index 69c601cf2b..a5d2a81bad 100644
--- a/packages/builder/src/builderStore/store/backend.js
+++ b/packages/builder/src/builderStore/store/backend.js
@@ -234,7 +234,7 @@ export const getBackendUiStore = () => {
return state
})
},
- saveField: ({ originalName, field, primaryDisplay = false, indexes, oneToMany = false }) => {
+ saveField: ({ originalName, field, primaryDisplay = false, indexes, relationshipType = 'many-to-many' }) => {
store.update(state => {
console.log(state)
// delete the original if renaming
@@ -252,8 +252,8 @@ export const getBackendUiStore = () => {
state.draftTable.primaryDisplay = field.name
}
// Set one-to-many
- if (oneToMany) {
- state.draftTable.oneToMany = field.name
+ if (relationshipType) {
+ state.draftTable.relationshipType = field.name
}
if (indexes) {
diff --git a/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js b/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js
index 83b6391659..f901794b36 100644
--- a/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js
+++ b/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js
@@ -195,7 +195,7 @@ export function makeDatasourceFormComponents(datasource) {
component.customProps({ placeholder: "Choose an option " })
}
if (fieldType === "link") {
- let placeholder = fieldSchema.oneToMany ? 'Choose an option' : 'Choose some options'
+ let placeholder = fieldSchema.relationshipType === 'one-to-many' ? 'Choose an option' : 'Choose some options'
component.customProps({ placeholder })
}
if (fieldType === "boolean") {
diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
index 66317b26ea..96385d62ca 100644
--- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
+++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
@@ -6,6 +6,8 @@
TextButton,
Select,
Toggle,
+ Radio,
+
} from "@budibase/bbui"
import { cloneDeep } from "lodash/fp"
import { backendUiStore } from "builderStore"
@@ -31,8 +33,15 @@
let primaryDisplay =
$backendUiStore.selectedTable.primaryDisplay == null ||
$backendUiStore.selectedTable.primaryDisplay === field.name
-
- let oneToMany = false;
+
+ let relationshipTypes = [
+ {text: 'Many to many (N:N)', value: 'many-to-many',},
+ {text: 'One to many (1:N)', value: 'one-to-many',}
+ ]
+ let relationshipType = 'many-to-many';
+
+ $: console.log(relationshipType)
+
let indexes = [...($backendUiStore.selectedTable.indexes || [])]
let confirmDeleteDialog
let deletion
@@ -51,7 +60,7 @@
originalName,
field,
primaryDisplay,
- oneToMany,
+ relationshipType,
indexes,
})
return state
@@ -187,11 +196,14 @@
label="Max Value"
bind:value={field.constraints.numericality.lessThanOrEqualTo} />
{:else if field.type === 'link'}
-