From f05277eb3a724ea2d0cffdc9eac0afef6917c166 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Thu, 23 Jul 2020 18:19:07 -0400 Subject: [PATCH] Add m2m config --- .../use-form-fields/use-form-fields.ts | 1 + src/lang/en-US/index.json | 1 + .../field-detail/components/display.vue | 2 +- .../field-detail/components/interface.vue | 2 +- .../components/relationship-m2m.vue | 140 +++++++++++++++++- .../components/relationship-m2o.vue | 3 + .../field-detail/components/schema.vue | 10 +- .../data-model/field-detail/field-detail.vue | 70 ++++++++- src/stores/fields/fields.ts | 2 + src/stores/fields/types.ts | 1 + 10 files changed, 220 insertions(+), 12 deletions(-) diff --git a/src/composables/use-form-fields/use-form-fields.ts b/src/composables/use-form-fields/use-form-fields.ts index 25fc2535eb..3c547cd663 100644 --- a/src/composables/use-form-fields/use-form-fields.ts +++ b/src/composables/use-form-fields/use-form-fields.ts @@ -36,6 +36,7 @@ export default function useFormFields(fields: Ref) { special: null, translation: null, width: 'full', + note: null, }; } diff --git a/src/lang/en-US/index.json b/src/lang/en-US/index.json index 48b61095b4..d43ec1d106 100644 --- a/src/lang/en-US/index.json +++ b/src/lang/en-US/index.json @@ -51,6 +51,7 @@ "not_available_for_type": "Not Available for this Type", "configure_m2o": "Configure your Many-to-One Relationship...", + "configure_m2m": "Configure your Many-to-Many Relationship...", "include_seconds": "Include Seconds", diff --git a/src/modules/settings/routes/data-model/field-detail/components/display.vue b/src/modules/settings/routes/data-model/field-detail/components/display.vue index dbb9339851..19e0c9f674 100644 --- a/src/modules/settings/routes/data-model/field-detail/components/display.vue +++ b/src/modules/settings/routes/data-model/field-detail/components/display.vue @@ -43,7 +43,7 @@ export default defineComponent({ const _field = useSync(props, 'fieldData', emit); const availabledisplays = computed(() => displays.filter((display) => { - const matchesType = display.types.includes(props.fieldData.database.type); + const matchesType = display.types.includes(props.fieldData.database?.type || 'alias'); const matchesRelation = true; // if (props.type === 'standard') { diff --git a/src/modules/settings/routes/data-model/field-detail/components/interface.vue b/src/modules/settings/routes/data-model/field-detail/components/interface.vue index 34673af5dc..c16f143231 100644 --- a/src/modules/settings/routes/data-model/field-detail/components/interface.vue +++ b/src/modules/settings/routes/data-model/field-detail/components/interface.vue @@ -43,7 +43,7 @@ export default defineComponent({ const _field = useSync(props, 'fieldData', emit); const availableInterfaces = computed(() => interfaces.filter((inter) => { - const matchesType = inter.types.includes(props.fieldData.database.type); + const matchesType = inter.types.includes(props.fieldData.database?.type || 'alias'); let matchesRelation = false; if (props.type === 'standard') { diff --git a/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue b/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue index 7095796e8f..8bca9e4395 100644 --- a/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue +++ b/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue @@ -1,9 +1,143 @@ + + diff --git a/src/modules/settings/routes/data-model/field-detail/components/relationship-m2o.vue b/src/modules/settings/routes/data-model/field-detail/components/relationship-m2o.vue index ac8403d16c..2ce16f2328 100644 --- a/src/modules/settings/routes/data-model/field-detail/components/relationship-m2o.vue +++ b/src/modules/settings/routes/data-model/field-detail/components/relationship-m2o.vue @@ -100,6 +100,9 @@ export default defineComponent({