diff --git a/.changeset/itchy-bulldogs-tan.md b/.changeset/itchy-bulldogs-tan.md new file mode 100644 index 0000000000000..90213bd4c5391 --- /dev/null +++ b/.changeset/itchy-bulldogs-tan.md @@ -0,0 +1,5 @@ +--- +"@directus/app": patch +--- + +Added "Item Link" option to M2O interface diff --git a/app/src/interfaces/select-dropdown-m2o/index.ts b/app/src/interfaces/select-dropdown-m2o/index.ts index 24b5aeae51084..dc6eb69b0b8e4 100644 --- a/app/src/interfaces/select-dropdown-m2o/index.ts +++ b/app/src/interfaces/select-dropdown-m2o/index.ts @@ -65,6 +65,20 @@ export default defineInterface({ }, }, }, + { + field: 'enableLink', + name: '$t:item_link', + schema: { + default_value: false, + }, + meta: { + interface: 'boolean', + options: { + label: '$t:show_link_to_item', + }, + width: 'half', + }, + }, ]; }, recommendedDisplays: ['related-values'], diff --git a/app/src/interfaces/select-dropdown-m2o/select-dropdown-m2o.vue b/app/src/interfaces/select-dropdown-m2o/select-dropdown-m2o.vue index 9a1f7b815b704..a94d284d69099 100644 --- a/app/src/interfaces/select-dropdown-m2o/select-dropdown-m2o.vue +++ b/app/src/interfaces/select-dropdown-m2o/select-dropdown-m2o.vue @@ -13,6 +13,7 @@ import { get } from 'lodash'; import { render } from 'micromustache'; import { computed, inject, ref, toRefs } from 'vue'; import { useI18n } from 'vue-i18n'; +import { getItemRoute } from '@/utils/get-route'; const props = withDefaults( defineProps<{ @@ -26,6 +27,7 @@ const props = withDefaults( enableCreate?: boolean; enableSelect?: boolean; loading?: boolean; + enableLink?: boolean; }>(), { value: null, @@ -35,6 +37,7 @@ const props = withDefaults( filter: null, enableCreate: true, enableSelect: true, + enableLink: false, }, ); @@ -158,6 +161,11 @@ function onSelection(selection: (number | string)[] | null) { selectModalActive.value = false; } + +function getLinkForItem() { + if (!collection.value || !currentPrimaryKey.value || !relationInfo.value) return ''; + return getItemRoute(relationInfo.value.relatedCollection.collection, currentPrimaryKey.value); +}