From 627d843aedbb306625141d77c09b165d8a442eb6 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Fri, 6 Aug 2021 00:27:26 +0200 Subject: [PATCH] Update/tweak groups (#7229) * Split detail/raw groups, tweak accordion * Add update groups migration --- .../migrations/20210805A-update-groups.ts | 35 +++++ .../group-accordion/group-accordion.vue | 10 +- app/src/interfaces/group-accordion/index.ts | 14 +- .../interfaces/group-detail/group-detail.vue | 125 ++++++++++++++++++ app/src/interfaces/group-detail/index.ts | 56 ++++++++ .../group-raw.vue} | 39 +----- app/src/interfaces/group-raw/index.ts | 13 ++ app/src/interfaces/group-standard/index.ts | 63 --------- app/src/lang/translations/en-US.yaml | 15 ++- 9 files changed, 254 insertions(+), 116 deletions(-) create mode 100644 api/src/database/migrations/20210805A-update-groups.ts create mode 100644 app/src/interfaces/group-detail/group-detail.vue create mode 100644 app/src/interfaces/group-detail/index.ts rename app/src/interfaces/{group-standard/group-standard.vue => group-raw/group-raw.vue} (64%) create mode 100644 app/src/interfaces/group-raw/index.ts delete mode 100644 app/src/interfaces/group-standard/index.ts diff --git a/api/src/database/migrations/20210805A-update-groups.ts b/api/src/database/migrations/20210805A-update-groups.ts new file mode 100644 index 0000000000..350268a52f --- /dev/null +++ b/api/src/database/migrations/20210805A-update-groups.ts @@ -0,0 +1,35 @@ +import { Knex } from 'knex'; + +export async function up(knex: Knex): Promise { + const groups = await knex.select('*').from('directus_fields').where({ interface: 'group-standard' }); + + const raw = []; + const detail = []; + + for (const group of groups) { + const options = typeof group.options === 'string' ? JSON.parse(group.options) : group.options || {}; + + if (options.showHeader === true) { + detail.push(group); + } else { + raw.push(group); + } + } + + for (const field of raw) { + await knex('directus_fields').update({ interface: 'group-raw' }).where({ id: field.id }); + } + + for (const field of detail) { + await knex('directus_fields').update({ interface: 'group-detail' }).where({ id: field.id }); + } +} + +export async function down(knex: Knex): Promise { + await knex('directus_fields') + .update({ + interface: 'group-standard', + }) + .where({ interface: 'group-detail' }) + .orWhere({ interface: 'group-raw' }); +} diff --git a/app/src/interfaces/group-accordion/group-accordion.vue b/app/src/interfaces/group-accordion/group-accordion.vue index dfdb893c97..87a43e0d90 100644 --- a/app/src/interfaces/group-accordion/group-accordion.vue +++ b/app/src/interfaces/group-accordion/group-accordion.vue @@ -1,5 +1,5 @@