From 61659c4b06c8956950a7c287f8c0f6997c99d88a Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Fri, 25 Sep 2020 14:42:32 -0400 Subject: [PATCH 1/5] Combine translations/languages pane --- api/src/services/fields.ts | 17 +- .../field-detail/components/translations.vue | 339 ++++++++++++------ .../data-model/field-detail/field-detail.vue | 53 ++- .../routes/data-model/field-detail/store.ts | 2 +- 4 files changed, 267 insertions(+), 144 deletions(-) diff --git a/api/src/services/fields.ts b/api/src/services/fields.ts index 09b133e589..08c4b685e5 100644 --- a/api/src/services/fields.ts +++ b/api/src/services/fields.ts @@ -68,9 +68,8 @@ export class FieldsService { }); const aliasQuery = this.knex - .select('*') - .from('directus_fields') - .whereIn('special', ['alias', 'o2m', 'm2m']); + .select('*') + .from('directus_fields'); if (collection) { aliasQuery.andWhere('collection', collection); @@ -78,6 +77,18 @@ export class FieldsService { let aliasFields = await aliasQuery; + const aliasTypes = ['alias', 'o2m', 'm2m', 'translations']; + + aliasFields = aliasFields.filter((field) => { + const specials = (field.special || '').split(','); + + for (const type of aliasTypes) { + if (specials.includes(type)) return true; + } + + return false; + }); + aliasFields = (await this.payloadService.processValues('read', aliasFields)) as FieldMeta[]; const aliasFieldsAsField = aliasFields.map((field) => { diff --git a/app/src/modules/settings/routes/data-model/field-detail/components/translations.vue b/app/src/modules/settings/routes/data-model/field-detail/components/translations.vue index 9b42843aa8..44c03504a8 100644 --- a/app/src/modules/settings/routes/data-model/field-detail/components/translations.vue +++ b/app/src/modules/settings/routes/data-model/field-detail/components/translations.vue @@ -1,84 +1,206 @@