From ab557ad8fbbabfbd824acb5d2aa87ff75ff1925d Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Mon, 2 Nov 2020 10:38:42 -0500 Subject: [PATCH] Default to collection level display template, add translations interface options Fixes #838 --- app/src/interfaces/translations/index.ts | 5 +- app/src/interfaces/translations/options.vue | 71 +++++++++++++++++++ .../interfaces/translations/translations.vue | 9 ++- app/src/lang/en-US/interfaces.json | 5 ++ 4 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 app/src/interfaces/translations/options.vue diff --git a/app/src/interfaces/translations/index.ts b/app/src/interfaces/translations/index.ts index 1bcedfa8ac..1059d0b5e7 100644 --- a/app/src/interfaces/translations/index.ts +++ b/app/src/interfaces/translations/index.ts @@ -1,5 +1,6 @@ import { defineInterface } from '../define'; import InterfaceTranslations from './translations.vue'; +import TranslationsOptions from './options.vue'; export default defineInterface(({ i18n }) => ({ id: 'translations', @@ -8,7 +9,5 @@ export default defineInterface(({ i18n }) => ({ types: ['alias'], relationship: 'translations', component: InterfaceTranslations, - options: [ - /** @todo add custom options component */ - ], + options: TranslationsOptions, })); diff --git a/app/src/interfaces/translations/options.vue b/app/src/interfaces/translations/options.vue new file mode 100644 index 0000000000..8416e5ff17 --- /dev/null +++ b/app/src/interfaces/translations/options.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/app/src/interfaces/translations/translations.vue b/app/src/interfaces/translations/translations.vue index ebb5c79740..41e83ecd34 100644 --- a/app/src/interfaces/translations/translations.vue +++ b/app/src/interfaces/translations/translations.vue @@ -35,6 +35,7 @@ import api from '@/api'; import { Relation } from '@/types'; import getFieldsFromTemplate from '@/utils/get-fields-from-template'; import DrawerItem from '@/views/private/components/drawer-item/drawer-item.vue'; +import { useCollection } from '../../composables/use-collection'; export default defineComponent({ components: { DrawerItem }, @@ -166,9 +167,15 @@ export default defineComponent({ const loading = ref(false); const error = ref(null); + const { info: languagesCollectionInfo } = useCollection(languagesCollection); + const template = computed(() => { if (!languagesPrimaryKeyField.value) return ''; - return props.template || `{{ ${languagesPrimaryKeyField.value} }}`; + return ( + props.template || + languagesCollectionInfo.value?.meta?.display_template || + `{{ ${languagesPrimaryKeyField.value} }}` + ); }); watch(languagesCollection, fetchLanguages, { immediate: true }); diff --git a/app/src/lang/en-US/interfaces.json b/app/src/lang/en-US/interfaces.json index 66c5ad6922..c65bdba6eb 100644 --- a/app/src/lang/en-US/interfaces.json +++ b/app/src/lang/en-US/interfaces.json @@ -190,6 +190,11 @@ "label_placeholder": "Enter a label...", "label_default": "Enabled" }, + "translations": { + "translations": "Translations", + "display_template": "Display Template", + "no_collection": "No Collection" + }, "user": { "user": "User", "description": "Select an existing directus user",