diff --git a/frontend/src/pages/entity-configuration.vue b/frontend/src/pages/entity-configuration.vue
index 6a0537a..c46a42c 100644
--- a/frontend/src/pages/entity-configuration.vue
+++ b/frontend/src/pages/entity-configuration.vue
@@ -149,6 +149,14 @@
editingFieldIdentifier.value = toIdentifier(editingFieldName.value)
}
+ function updateNewFieldType (entityId: number) {
+ newFields[entityId].relationshipType = newFields[entityId].type === 'USER' ? 'ONE_TO_MANY' : 'ONE_TO_ONE'
+ }
+
+ function updateEditingFieldType () {
+ editingRelationshipType.value = editingFieldType.value === 'USER' ? 'ONE_TO_MANY' : 'ONE_TO_ONE'
+ }
+
async function addEntity () {
const name = newEntityName.value.trim()
const identifier = newEntityIdentifier.value.trim()
@@ -208,6 +216,8 @@
if (!draft.targetEntityId) return
values.targetEntityId = String(draft.targetEntityId)
values.relationshipType = draft.relationshipType
+ } else if (draft.type === 'USER') {
+ values.relationshipType = draft.relationshipType
}
const response = await request(`/api/entity-definitions/${entity.id}/fields`, 'POST', values)
if (!response.ok) throw new Error('Field create failed')
@@ -227,7 +237,7 @@
editingFieldIdentifier.value = field.identifier
editingFieldType.value = field.type
editingTargetEntityId.value = field.targetEntityId
- editingRelationshipType.value = field.relationshipType ?? 'ONE_TO_ONE'
+ editingRelationshipType.value = field.relationshipType ?? (field.type === 'USER' ? 'ONE_TO_MANY' : 'ONE_TO_ONE')
}
async function saveField (entity: EntityDefinition, field: EntityField) {
@@ -244,6 +254,8 @@
if (!editingTargetEntityId.value) return
values.targetEntityId = String(editingTargetEntityId.value)
values.relationshipType = editingRelationshipType.value
+ } else if (editingFieldType.value === 'USER') {
+ values.relationshipType = editingRelationshipType.value
}
const response = await request(`/api/entity-definitions/${entity.id}/fields/${field.id}`, 'PATCH', values)
if (!response.ok) throw new Error('Field update failed')
@@ -346,6 +358,10 @@
return type === 'ONE_TO_MANY' ? 'One to many' : 'One to one'
}
+ function userRelationshipLabel (type?: RelationshipType) {
+ return type === 'ONE_TO_ONE' ? 'One to one' : 'Many to one'
+ }
+
function targetName (field: EntityField) {
return field.targetEntityName
?? entities.value.find(entity => entity.id === field.targetEntityId)?.name
@@ -488,7 +504,7 @@
-
+
+
+
+