From 1c80faa94d329c3eefaa8863033ed97eae27ae3b Mon Sep 17 00:00:00 2001 From: NGPixel Date: Sun, 12 Apr 2020 18:05:48 -0400 Subject: [PATCH] feat: browse nav + pageTree ancestors --- client/components/admin/admin-navigation.vue | 46 ++++++---- .../themes/default/components/nav-sidebar.vue | 84 ++++++++++++++++--- client/themes/default/components/page.vue | 24 +++--- server/app/data.yml | 2 + server/db/migrations-sqlite/2.3.23.js | 8 ++ server/db/migrations/2.3.23.js | 8 ++ server/graph/resolvers/navigation.js | 25 +++++- server/graph/resolvers/page.js | 54 +++++++----- server/graph/schemas/navigation.graphql | 14 ++++ server/graph/schemas/page.graphql | 2 +- server/jobs/rebuild-tree.js | 5 +- 11 files changed, 210 insertions(+), 62 deletions(-) create mode 100644 server/db/migrations-sqlite/2.3.23.js create mode 100644 server/db/migrations/2.3.23.js diff --git a/client/components/admin/admin-navigation.vue b/client/components/admin/admin-navigation.vue index c2318f4b..4f9bdb00 100644 --- a/client/components/admin/admin-navigation.vue +++ b/client/components/admin/admin-navigation.vue @@ -20,35 +20,35 @@ v-toolbar(color='teal', dark, dense, flat, height='56') v-toolbar-title.subtitle-1 {{$t('admin:navigation.mode')}} v-list(nav, two-line) - v-list-item-group(v-model='navMode', mandatory, :color='$vuetify.theme.dark ? `teal lighten-3` : `teal`') - v-list-item(value='classic') + v-list-item-group(v-model='config.mode', mandatory, :color='$vuetify.theme.dark ? `teal lighten-3` : `teal`') + v-list-item(value='TREE') v-list-item-avatar img(src='/svg/icon-tree-structure-dotted.svg', alt='Site Tree') v-list-item-content v-list-item-title {{$t('admin:navigation.modeSiteTree.title')}} v-list-item-subtitle {{$t('admin:navigation.modeSiteTree.description')}} v-list-item-avatar - v-icon(v-if='$vuetify.theme.dark', :color='navMode === `classic` ? `teal lighten-3` : `grey darken-2`') mdi-check-circle - v-icon(v-else, :color='navMode === `classic` ? `teal` : `grey lighten-3`') mdi-check-circle - v-list-item(value='custom') + v-icon(v-if='$vuetify.theme.dark', :color='config.mode === `TREE` ? `teal lighten-3` : `grey darken-2`') mdi-check-circle + v-icon(v-else, :color='config.mode === `TREE` ? `teal` : `grey lighten-3`') mdi-check-circle + v-list-item(value='MIXED') v-list-item-avatar img(src='/svg/icon-user-menu-male-dotted.svg', alt='Custom Navigation') v-list-item-content v-list-item-title {{$t('admin:navigation.modeCustom.title')}} v-list-item-subtitle {{$t('admin:navigation.modeCustom.description')}} v-list-item-avatar - v-icon(v-if='$vuetify.theme.dark', :color='navMode === `custom` ? `teal lighten-3` : `grey darken-2`') mdi-check-circle - v-icon(v-else, :color='navMode === `custom` ? `teal` : `grey lighten-3`') mdi-check-circle - v-list-item(value='none') + v-icon(v-if='$vuetify.theme.dark', :color='config.mode === `MIXED` ? `teal lighten-3` : `grey darken-2`') mdi-check-circle + v-icon(v-else, :color='config.mode === `MIXED` ? `teal` : `grey lighten-3`') mdi-check-circle + v-list-item(value='NONE') v-list-item-avatar img(src='/svg/icon-cancel-dotted.svg', alt='None') v-list-item-content v-list-item-title {{$t('admin:navigation.modeNone.title')}} v-list-item-subtitle {{$t('admin:navigation.modeNone.description')}} v-list-item-avatar - v-icon(v-if='$vuetify.theme.dark', :color='navMode === `none` ? `teal lighten-3` : `grey darken-2`') mdi-check-circle - v-icon(v-else, :color='navMode === `none` ? `teal` : `grey lighten-3`') mdi-check-circle - v-col(cols='9', v-if='navMode === `custom`') + v-icon(v-if='$vuetify.theme.dark', :color='config.mode === `none` ? `teal lighten-3` : `grey darken-2`') mdi-check-circle + v-icon(v-else, :color='config.mode === `none` ? `teal` : `grey lighten-3`') mdi-check-circle + v-col(cols='9', v-if='config.mode === `MIXED`') v-card.animated.fadeInUp.wait-p2s v-row(no-gutters, align='stretch') v-col(style='flex: 0 0 350px;') @@ -232,7 +232,7 @@