feat: browse tags localization
This commit is contained in:
		| @@ -7,7 +7,7 @@ | |||||||
|         clearable |         clearable | ||||||
|         background-color='deep-purple' |         background-color='deep-purple' | ||||||
|         color='white' |         color='white' | ||||||
|         label='Search...' |         :label='$t(`common:header.search`)' | ||||||
|         single-line |         single-line | ||||||
|         solo |         solo | ||||||
|         flat |         flat | ||||||
| @@ -22,41 +22,19 @@ | |||||||
|           v-menu(open-on-hover, offset-y, bottom, left, min-width='250', transition='slide-y-transition') |           v-menu(open-on-hover, offset-y, bottom, left, min-width='250', transition='slide-y-transition') | ||||||
|             template(v-slot:activator='{ on }') |             template(v-slot:activator='{ on }') | ||||||
|               v-app-bar-nav-icon.btn-animate-app(v-on='on', :class='$vuetify.rtl ? `mx-0` : ``') |               v-app-bar-nav-icon.btn-animate-app(v-on='on', :class='$vuetify.rtl ? `mx-0` : ``') | ||||||
|                 v-icon mdi-menu-open |                 v-icon mdi-menu | ||||||
|             v-list(nav, :light='!$vuetify.theme.dark', :dark='$vuetify.theme.dark', :class='$vuetify.theme.dark ? `grey darken-4` : ``') |             v-list(nav, :light='!$vuetify.theme.dark', :dark='$vuetify.theme.dark', :class='$vuetify.theme.dark ? `grey darken-4` : ``') | ||||||
|               v-list-item.pl-4(href='/') |               v-list-item.pl-4(href='/') | ||||||
|                 v-list-item-avatar(size='24'): v-icon(color='blue') mdi-home |                 v-list-item-avatar(size='24'): v-icon(color='blue') mdi-home | ||||||
|                 v-list-item-title.body-2 {{$t('common:header.home')}} |                 v-list-item-title.body-2 {{$t('common:header.home')}} | ||||||
|               v-list-item.pl-4(@click='pageNew', v-if='isAuthenticated') |               v-list-item.pl-4(@click='') | ||||||
|                 v-list-item-avatar(size='24'): v-icon(color='green') mdi-file-document-box-plus-outline |                 v-list-item-avatar(size='24'): v-icon(color='grey lighten-2') mdi-file-tree | ||||||
|                 v-list-item-title.body-2 {{$t('common:header.newPage')}} |                 v-list-item-content | ||||||
|               template(v-if='path && path.length') |                   v-list-item-title.body-2.grey--text.text--ligten-2 {{$t('common:header.siteMap')}} | ||||||
|                 v-divider.my-0 |                   v-list-item-subtitle.overline.grey--text.text--lighten-2 Coming soon | ||||||
|                 .overline.pa-4.grey--text {{$t('common:header.currentPage')}} |               v-list-item.pl-4(href='/t') | ||||||
|                 v-list-item.pl-4(@click='pageView', v-if='mode !== `view`') |                 v-list-item-avatar(size='24'): v-icon(color='teal') mdi-tag-multiple | ||||||
|                   v-list-item-avatar(size='24'): v-icon(color='indigo') mdi-file-document-box-outline |                 v-list-item-title.body-2 {{$t('common:header.browseTags')}} | ||||||
|                   v-list-item-title.body-2 {{$t('common:header.view')}} |  | ||||||
|                 v-list-item.pl-4(@click='pageEdit', v-if='mode !== `edit` && isAuthenticated') |  | ||||||
|                   v-list-item-avatar(size='24'): v-icon(color='indigo') mdi-file-document-edit-outline |  | ||||||
|                   v-list-item-title.body-2 {{$t('common:header.edit')}} |  | ||||||
|                 v-list-item.pl-4(@click='pageHistory', v-if='mode !== `history`') |  | ||||||
|                   v-list-item-avatar(size='24'): v-icon(color='grey lighten-2') mdi-history |  | ||||||
|                   v-list-item-content |  | ||||||
|                     v-list-item-title.body-2.grey--text.text--ligten-2 {{$t('common:header.history')}} |  | ||||||
|                     v-list-item-subtitle.overline.grey--text.text--lighten-2 Coming soon |  | ||||||
|                 v-list-item.pl-4(@click='pageSource', v-if='mode !== `source`') |  | ||||||
|                   v-list-item-avatar(size='24'): v-icon(color='indigo') mdi-code-tags |  | ||||||
|                   v-list-item-title.body-2 {{$t('common:header.viewSource')}} |  | ||||||
|                 v-list-item.pl-4(@click='pageMove', v-if='isAuthenticated') |  | ||||||
|                   v-list-item-avatar(size='24'): v-icon(color='grey lighten-2') mdi-content-save-move-outline |  | ||||||
|                   v-list-item-content |  | ||||||
|                     v-list-item-title.body-2.grey--text.text--ligten-2 {{$t('common:header.move')}} |  | ||||||
|                     v-list-item-subtitle.overline.grey--text.text--lighten-2 Coming soon |  | ||||||
|                 v-list-item.pl-4(@click='pageDelete', v-if='isAuthenticated') |  | ||||||
|                   v-list-item-avatar(size='24'): v-icon(color='red darken-2') mdi-trash-can-outline |  | ||||||
|                   v-list-item-title.body-2 {{$t('common:header.delete')}} |  | ||||||
|               v-divider.my-0 |  | ||||||
|               .overline.pa-4.grey--text {{$t('common:header.assets')}} |  | ||||||
|               v-list-item.pl-4(@click='assets') |               v-list-item.pl-4(@click='assets') | ||||||
|                 v-list-item-avatar(size='24'): v-icon(color='grey lighten-2') mdi-folder-multiple-image |                 v-list-item-avatar(size='24'): v-icon(color='grey lighten-2') mdi-folder-multiple-image | ||||||
|                 v-list-item-content |                 v-list-item-content | ||||||
| @@ -88,89 +66,98 @@ | |||||||
|                 @keyup.down='searchMove(`down`)' |                 @keyup.down='searchMove(`down`)' | ||||||
|                 @keyup.up='searchMove(`up`)' |                 @keyup.up='searchMove(`up`)' | ||||||
|               ) |               ) | ||||||
|             //- v-menu( |             v-tooltip(bottom) | ||||||
|             //-   v-model='searchAdvMenuShown' |  | ||||||
|             //-   left |  | ||||||
|             //-   offset-y |  | ||||||
|             //-   min-width='450' |  | ||||||
|             //-   :close-on-content-click='false' |  | ||||||
|             //-   nudge-bottom='7' |  | ||||||
|             //-   nudge-right='5' |  | ||||||
|             //-   v-if='searchIsShown' |  | ||||||
|             //-   ) |  | ||||||
|             //-   template(v-slot:activator='{ on }') |  | ||||||
|             //-     v-btn.nav-header-search-adv(icon, color='grey darken-2', v-on='on') |  | ||||||
|             //-       v-icon(color='white') mdi-chevron-down |  | ||||||
|             //-   v-card.radius-0(dark) |  | ||||||
|             //-     v-toolbar(flat, color='grey darken-4', dense) |  | ||||||
|             //-       v-icon.mr-2 mdi-feature-search-outline |  | ||||||
|             //-       v-subheader.pl-0 Advanced Search |  | ||||||
|             //-       v-spacer |  | ||||||
|             //-       v-chip(label, small, color='primary') Coming soon |  | ||||||
|             //-     v-card-text.pa-4 |  | ||||||
|             //-       v-checkbox.mt-0( |  | ||||||
|             //-         label='Restrict to current language' |  | ||||||
|             //-         color='white' |  | ||||||
|             //-         v-model='searchRestrictLocale' |  | ||||||
|             //-         hide-details |  | ||||||
|             //-       ) |  | ||||||
|             //-       v-checkbox( |  | ||||||
|             //-         label='Search below current path only' |  | ||||||
|             //-         color='white' |  | ||||||
|             //-         v-model='searchRestrictPath' |  | ||||||
|             //-         hide-details |  | ||||||
|             //-       ) |  | ||||||
|             //-     v-divider |  | ||||||
|             //-     v-card-actions.grey.darken-3-d4 |  | ||||||
|             //-       v-container.pa-0(grid-list-md) |  | ||||||
|             //-         v-layout(row) |  | ||||||
|             //-           v-flex(xs6) |  | ||||||
|             //-             v-btn(depressed, color='grey darken-3', block) |  | ||||||
|             //-               v-icon(left) mdi-chevron-right |  | ||||||
|             //-               span Save as defaults |  | ||||||
|             //-           v-flex(xs6) |  | ||||||
|             //-             v-btn(depressed, color='grey darken-3', block) |  | ||||||
|             //-               v-icon(left) mdi-cached |  | ||||||
|             //-               span Reset |  | ||||||
|             v-tooltip(bottom, v-if='isAuthenticated && isAdmin') |  | ||||||
|               template(v-slot:activator='{ on }') |               template(v-slot:activator='{ on }') | ||||||
|                 v-btn.ml-2.mr-0(icon, v-on='on', href='/t') |                 v-btn.ml-2.mr-0(icon, v-on='on', href='/t') | ||||||
|                   v-icon(color='grey') mdi-tag-multiple |                   v-icon(color='grey') mdi-tag-multiple | ||||||
|               span Browse Tags |               span {{$t('common:header.browseTags')}} | ||||||
|       v-flex(xs6, md4) |       v-flex(xs6, md4) | ||||||
|         v-toolbar.nav-header-inner.pr-4(color='black', dark, flat) |         v-toolbar.nav-header-inner.pr-4(color='black', dark, flat) | ||||||
|           v-spacer |           v-spacer | ||||||
|           .navHeaderLoading.mr-3 |           .navHeaderLoading.mr-3 | ||||||
|             v-progress-circular(indeterminate, color='blue', :size='22', :width='2' v-show='isLoading') |             v-progress-circular(indeterminate, color='blue', :size='22', :width='2' v-show='isLoading') | ||||||
|  |  | ||||||
|           slot(name='actions') |           slot(name='actions') | ||||||
|  |  | ||||||
|  |           //- (mobile) SEARCH TOGGLE | ||||||
|  |  | ||||||
|           v-btn( |           v-btn( | ||||||
|             v-if='!hideSearch && $vuetify.breakpoint.smAndDown' |             v-if='!hideSearch && $vuetify.breakpoint.smAndDown' | ||||||
|             @click='searchToggle' |             @click='searchToggle' | ||||||
|             icon |             icon | ||||||
|             ) |             ) | ||||||
|             v-icon(color='grey') mdi-magnify |             v-icon(color='grey') mdi-magnify | ||||||
|           v-menu(offset-y, left, transition='slide-y-transition', v-if='mode === `view` && locales.length > 0') |  | ||||||
|  |           //- LANGUAGES | ||||||
|  |  | ||||||
|  |           template(v-if='mode === `view` && locales.length > 0') | ||||||
|  |             v-menu(offset-y, bottom, nudge-bottom='30', transition='slide-y-transition') | ||||||
|  |               template(v-slot:activator='{ on: menu }') | ||||||
|  |                 v-tooltip(bottom) | ||||||
|  |                   template(v-slot:activator='{ on: tooltip }') | ||||||
|  |                     v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-3` : ``', tile, height='64') | ||||||
|  |                       v-icon(color='grey') mdi-web | ||||||
|  |                   span {{$t('common:header.language')}} | ||||||
|  |               v-list(nav) | ||||||
|  |                 template(v-for='(lc, idx) of locales') | ||||||
|  |                   v-list-item(@click='changeLocale(lc)') | ||||||
|  |                     v-list-item-action: v-chip(:color='lc.code === locale ? `blue` : `grey`', small, label, dark) {{lc.code.toUpperCase()}} | ||||||
|  |                     v-list-item-title {{lc.name}} | ||||||
|  |             v-divider(vertical) | ||||||
|  |  | ||||||
|  |           //- PAGE ACTIONS | ||||||
|  |  | ||||||
|  |           template(v-if='isAuthenticated && path') | ||||||
|  |             v-menu(offset-y, bottom, nudge-bottom='30', transition='slide-y-transition') | ||||||
|  |               template(v-slot:activator='{ on: menu }') | ||||||
|  |                 v-tooltip(bottom) | ||||||
|  |                   template(v-slot:activator='{ on: tooltip }') | ||||||
|  |                     v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-3` : ``', tile, height='64') | ||||||
|  |                       v-icon(color='grey') mdi-file-document-edit-outline | ||||||
|  |                   span {{$t('common:header.pageActions')}} | ||||||
|  |               v-list(nav, :light='!$vuetify.theme.dark', :dark='$vuetify.theme.dark', :class='$vuetify.theme.dark ? `grey darken-4` : ``') | ||||||
|  |                 .overline.pa-4.grey--text {{$t('common:header.currentPage')}} | ||||||
|  |                 v-list-item.pl-4(@click='pageView', v-if='mode !== `view`') | ||||||
|  |                   v-list-item-avatar(size='24'): v-icon(color='indigo') mdi-file-document-box-outline | ||||||
|  |                   v-list-item-title.body-2 {{$t('common:header.view')}} | ||||||
|  |                 v-list-item.pl-4(@click='pageEdit', v-if='mode !== `edit` && isAuthenticated') | ||||||
|  |                   v-list-item-avatar(size='24'): v-icon(color='indigo') mdi-file-document-edit-outline | ||||||
|  |                   v-list-item-title.body-2 {{$t('common:header.edit')}} | ||||||
|  |                 v-list-item.pl-4(@click='pageHistory', v-if='mode !== `history`') | ||||||
|  |                   v-list-item-avatar(size='24'): v-icon(color='grey lighten-2') mdi-history | ||||||
|  |                   v-list-item-content | ||||||
|  |                     v-list-item-title.body-2.grey--text.text--ligten-2 {{$t('common:header.history')}} | ||||||
|  |                     v-list-item-subtitle.overline.grey--text.text--lighten-2 Coming soon | ||||||
|  |                 v-list-item.pl-4(@click='pageSource', v-if='mode !== `source`') | ||||||
|  |                   v-list-item-avatar(size='24'): v-icon(color='indigo') mdi-code-tags | ||||||
|  |                   v-list-item-title.body-2 {{$t('common:header.viewSource')}} | ||||||
|  |                 v-list-item.pl-4(@click='pageMove', v-if='isAuthenticated') | ||||||
|  |                   v-list-item-avatar(size='24'): v-icon(color='grey lighten-2') mdi-content-save-move-outline | ||||||
|  |                   v-list-item-content | ||||||
|  |                     v-list-item-title.body-2.grey--text.text--ligten-2 {{$t('common:header.move')}} | ||||||
|  |                     v-list-item-subtitle.overline.grey--text.text--lighten-2 Coming soon | ||||||
|  |                 v-list-item.pl-4(@click='pageDelete', v-if='isAuthenticated') | ||||||
|  |                   v-list-item-avatar(size='24'): v-icon(color='red darken-2') mdi-trash-can-outline | ||||||
|  |                   v-list-item-title.body-2 {{$t('common:header.delete')}} | ||||||
|  |             v-divider(vertical) | ||||||
|  |  | ||||||
|  |           //- NEW PAGE | ||||||
|  |  | ||||||
|  |           template(v-if='isAuthenticated') | ||||||
|  |             v-tooltip(bottom) | ||||||
|  |               template(v-slot:activator='{ on }') | ||||||
|  |                 v-btn(icon, tile, height='64', v-on='on', @click='pageNew') | ||||||
|  |                   v-icon(color='grey') mdi-file-document-box-plus-outline | ||||||
|  |               span {{$t('common:header.newPage')}} | ||||||
|  |             v-divider(vertical) | ||||||
|  |  | ||||||
|  |           //- ACCOUNT | ||||||
|  |  | ||||||
|  |           v-menu(v-if='isAuthenticated', offset-y, bottom, nudge-bottom='30', min-width='300', transition='slide-y-transition') | ||||||
|             template(v-slot:activator='{ on: menu }') |             template(v-slot:activator='{ on: menu }') | ||||||
|               v-tooltip(bottom) |               v-tooltip(bottom) | ||||||
|                 template(v-slot:activator='{ on: tooltip }') |                 template(v-slot:activator='{ on: tooltip }') | ||||||
|                   v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-3` : ``') |                   v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-0` : ``', tile, height='64') | ||||||
|                     v-icon(color='grey') mdi-web |  | ||||||
|                 span {{$t('common:header.language')}} |  | ||||||
|             v-list(nav) |  | ||||||
|               template(v-for='(lc, idx) of locales') |  | ||||||
|                 v-list-item(@click='changeLocale(lc)') |  | ||||||
|                   v-list-item-action: v-chip(:color='lc.code === locale ? `blue` : `grey`', small, label, dark) {{lc.code.toUpperCase()}} |  | ||||||
|                   v-list-item-title {{lc.name}} |  | ||||||
|           v-tooltip(bottom, v-if='isAuthenticated && isAdmin') |  | ||||||
|             template(v-slot:activator='{ on }') |  | ||||||
|               v-btn.btn-animate-rotate(icon, href='/a', v-on='on', :class='$vuetify.rtl ? `ml-3` : ``') |  | ||||||
|                 v-icon(color='grey') mdi-settings |  | ||||||
|             span {{$t('common:header.admin')}} |  | ||||||
|           v-menu(v-if='isAuthenticated', offset-y, min-width='300', left, transition='slide-y-transition') |  | ||||||
|             template(v-slot:activator='{ on: menu }') |  | ||||||
|               v-tooltip(bottom) |  | ||||||
|                 template(v-slot:activator='{ on: tooltip }') |  | ||||||
|                   v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-0` : ``') |  | ||||||
|                     v-icon(v-if='picture.kind === `initials`', color='grey') mdi-account-circle |                     v-icon(v-if='picture.kind === `initials`', color='grey') mdi-account-circle | ||||||
|                     v-avatar(v-else-if='picture.kind === `image`', :size='34') |                     v-avatar(v-else-if='picture.kind === `image`', :size='34') | ||||||
|                       v-img(:src='picture.url') |                       v-img(:src='picture.url') | ||||||
| @@ -195,6 +182,9 @@ | |||||||
|                 v-list-item-content |                 v-list-item-content | ||||||
|                   v-list-item-title {{$t('common:header.profile')}} |                   v-list-item-title {{$t('common:header.profile')}} | ||||||
|                   v-list-item-subtitle.overline Coming soon |                   v-list-item-subtitle.overline Coming soon | ||||||
|  |               v-list-item(href='/a', v-if='isAuthenticated && isAdmin') | ||||||
|  |                 v-list-item-action.btn-animate-rotate: v-icon(color='blue-grey') mdi-settings | ||||||
|  |                 v-list-item-title.blue-grey--text {{$t('common:header.admin')}} | ||||||
|               v-list-item(@click='logout') |               v-list-item(@click='logout') | ||||||
|                 v-list-item-action: v-icon(color='red') mdi-logout |                 v-list-item-action: v-icon(color='red') mdi-logout | ||||||
|                 v-list-item-title.red--text {{$t('common:header.logout')}} |                 v-list-item-title.red--text {{$t('common:header.logout')}} | ||||||
|   | |||||||
| @@ -31,6 +31,7 @@ | |||||||
|           ) |           ) | ||||||
|           v-icon(color='red', :left='$vuetify.breakpoint.lgAndUp') mdi-close |           v-icon(color='red', :left='$vuetify.breakpoint.lgAndUp') mdi-close | ||||||
|           span.white--text(v-if='$vuetify.breakpoint.lgAndUp') {{ $t('common:actions.close') }} |           span.white--text(v-if='$vuetify.breakpoint.lgAndUp') {{ $t('common:actions.close') }} | ||||||
|  |         v-divider(vertical) | ||||||
|     v-content |     v-content | ||||||
|       component(:is='currentEditor', :save='save') |       component(:is='currentEditor', :save='save') | ||||||
|       editor-modal-properties(v-model='dialogProps') |       editor-modal-properties(v-model='dialogProps') | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
|     v-content.grey(:class='$vuetify.theme.dark ? `darken-4-d5` : `lighten-3`') |     v-content.grey(:class='$vuetify.theme.dark ? `darken-4-d5` : `lighten-3`') | ||||||
|       v-toolbar(color='primary', dark, flat, height='58') |       v-toolbar(color='primary', dark, flat, height='58') | ||||||
|         template(v-if='selection.length > 0') |         template(v-if='selection.length > 0') | ||||||
|           .overline.mr-3.animated.fadeInLeft Current Selection |           .overline.mr-3.animated.fadeInLeft {{$t('tags:currentSelection')}} | ||||||
|           v-chip.mr-3.primary--text( |           v-chip.mr-3.primary--text( | ||||||
|             v-for='tag of tagsSelected' |             v-for='tag of tagsSelected' | ||||||
|             :key='`tagSelected-` + tag.tag' |             :key='`tagSelected-` + tag.tag' | ||||||
| @@ -35,14 +35,14 @@ | |||||||
|             @click='selection = []' |             @click='selection = []' | ||||||
|             ) |             ) | ||||||
|             v-icon(left) mdi-close |             v-icon(left) mdi-close | ||||||
|             span Clear Selection |             span {{$t('tags:clearSelection')}} | ||||||
|         template(v-else) |         template(v-else) | ||||||
|           v-icon.mr-3.animated.fadeInRight mdi-arrow-left |           v-icon.mr-3.animated.fadeInRight mdi-arrow-left | ||||||
|           .overline.animated.fadeInRight Select one or more tags |           .overline.animated.fadeInRight {{$t('tags:selectOneMoreTags')}} | ||||||
|       v-toolbar(:color='$vuetify.theme.dark ? `grey darken-4-l5` : `grey lighten-4`', flat, height='58') |       v-toolbar(:color='$vuetify.theme.dark ? `grey darken-4-l5` : `grey lighten-4`', flat, height='58') | ||||||
|         v-text-field.tags-search( |         v-text-field.tags-search( | ||||||
|           v-model='innerSearch' |           v-model='innerSearch' | ||||||
|           label='Search within results...' |           :label='$t(`tags:searchWithinResultsPlaceholder`)' | ||||||
|           solo |           solo | ||||||
|           hide-details |           hide-details | ||||||
|           flat |           flat | ||||||
| @@ -55,13 +55,13 @@ | |||||||
|         ) |         ) | ||||||
|         template(v-if='locales.length > 1') |         template(v-if='locales.length > 1') | ||||||
|           v-divider.mx-3(vertical) |           v-divider.mx-3(vertical) | ||||||
|           .overline Locale |           .overline {{$t('tags:locale')}} | ||||||
|           v-select.ml-2( |           v-select.ml-2( | ||||||
|             :items='locales' |             :items='locales' | ||||||
|             v-model='locale' |             v-model='locale' | ||||||
|             :background-color='$vuetify.theme.dark ? `grey darken-3` : `white`' |             :background-color='$vuetify.theme.dark ? `grey darken-3` : `white`' | ||||||
|             hide-details |             hide-details | ||||||
|             label='Locale' |             :label='$t(`tags:locale`)' | ||||||
|             item-text='name' |             item-text='name' | ||||||
|             item-value='code' |             item-value='code' | ||||||
|             rounded |             rounded | ||||||
| @@ -71,13 +71,13 @@ | |||||||
|             style='max-width: 170px;' |             style='max-width: 170px;' | ||||||
|           ) |           ) | ||||||
|         v-divider.mx-3(vertical) |         v-divider.mx-3(vertical) | ||||||
|         .overline Order By |         .overline {{$t('tags:orderBy')}} | ||||||
|         v-select.ml-2( |         v-select.ml-2( | ||||||
|           :items='orderByItems' |           :items='orderByItems' | ||||||
|           v-model='orderBy' |           v-model='orderBy' | ||||||
|           :background-color='$vuetify.theme.dark ? `grey darken-3` : `white`' |           :background-color='$vuetify.theme.dark ? `grey darken-3` : `white`' | ||||||
|           hide-details |           hide-details | ||||||
|           label='Order By' |           :label='$t(`tags:orderBy`)' | ||||||
|           rounded |           rounded | ||||||
|           single-line |           single-line | ||||||
|           dense |           dense | ||||||
| @@ -90,7 +90,7 @@ | |||||||
|       v-divider |       v-divider | ||||||
|       .text-center.pt-10(v-if='selection.length < 1') |       .text-center.pt-10(v-if='selection.length < 1') | ||||||
|         img(src='/svg/icon-price-tag.svg') |         img(src='/svg/icon-price-tag.svg') | ||||||
|         .subtitle-2.grey--text Select one or more tags on the left. |         .subtitle-2.grey--text {{$t('tags:selectOneMoreTagsHint')}} | ||||||
|       .px-5.py-2(v-else) |       .px-5.py-2(v-else) | ||||||
|         v-data-iterator( |         v-data-iterator( | ||||||
|           :items='pages' |           :items='pages' | ||||||
| @@ -109,15 +109,15 @@ | |||||||
|                 size='96' |                 size='96' | ||||||
|                 width='2' |                 width='2' | ||||||
|                 ) |                 ) | ||||||
|               .subtitle-2.grey--text.mt-5 Retrieving page results... |               .subtitle-2.grey--text.mt-5 {{$t('tags:retrievingResultsLoading')}} | ||||||
|           template(v-slot:no-data) |           template(v-slot:no-data) | ||||||
|             .text-center.pt-10 |             .text-center.pt-10 | ||||||
|               img(src='/svg/icon-info.svg') |               img(src='/svg/icon-info.svg') | ||||||
|               .subtitle-2.grey--text Couldn't find any page with the selected tags. |               .subtitle-2.grey--text {{$t('tags:noResults')}} | ||||||
|           template(v-slot:no-results) |           template(v-slot:no-results) | ||||||
|             .text-center.pt-10 |             .text-center.pt-10 | ||||||
|               img(src='/svg/icon-info.svg') |               img(src='/svg/icon-info.svg') | ||||||
|               .subtitle-2.grey--text Couldn't find any page matching the current filtering options. |               .subtitle-2.grey--text {{$t('tags:noResultsWithFilter')}} | ||||||
|           template(v-slot:default='props') |           template(v-slot:default='props') | ||||||
|             v-row(align='stretch') |             v-row(align='stretch') | ||||||
|               v-col( |               v-col( | ||||||
| @@ -135,7 +135,8 @@ | |||||||
|                     .d-flex.flex-row.align-center |                     .d-flex.flex-row.align-center | ||||||
|                       .body-1: strong.primary--text {{item.title}} |                       .body-1: strong.primary--text {{item.title}} | ||||||
|                       v-spacer |                       v-spacer | ||||||
|                       .caption Last updated {{item.updatedAt | moment('from')}} |                       i18next.caption(tag='div', path='tags:pageLastUpdated') | ||||||
|  |                         span(place='date') {{item.updatedAt | moment('from')}} | ||||||
|                     .body-2.grey--text {{item.description || '---'}} |                     .body-2.grey--text {{item.description || '---'}} | ||||||
|                     v-divider.my-2 |                     v-divider.my-2 | ||||||
|                     .d-flex.flex-row.align-center |                     .d-flex.flex-row.align-center | ||||||
| @@ -165,6 +166,7 @@ const router = new VueRouter({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|  |   i18nOptions: { namespaces: 'tags' }, | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       tags: [], |       tags: [], | ||||||
| @@ -173,13 +175,6 @@ export default { | |||||||
|       locale: 'any', |       locale: 'any', | ||||||
|       locales: [], |       locales: [], | ||||||
|       orderBy: 'title', |       orderBy: 'title', | ||||||
|       orderByItems: [ |  | ||||||
|         { text: 'Creation Date', value: 'createdAt' }, |  | ||||||
|         { text: 'ID', value: 'id' }, |  | ||||||
|         { text: 'Last Modified', value: 'updatedAt' }, |  | ||||||
|         { text: 'Path', value: 'path' }, |  | ||||||
|         { text: 'Title', value: 'title' } |  | ||||||
|       ], |  | ||||||
|       orderByDirection: 0, |       orderByDirection: 0, | ||||||
|       pagination: { |       pagination: { | ||||||
|         page: 1, |         page: 1, | ||||||
| @@ -223,6 +218,15 @@ export default { | |||||||
|     }, |     }, | ||||||
|     pageTotal () { |     pageTotal () { | ||||||
|       return Math.ceil(this.pages.length / this.pagination.itemsPerPage) |       return Math.ceil(this.pages.length / this.pagination.itemsPerPage) | ||||||
|  |     }, | ||||||
|  |     orderByItems () { | ||||||
|  |       return [ | ||||||
|  |         { text: this.$t('tags:orderByField.creationDate'), value: 'createdAt' }, | ||||||
|  |         { text: this.$t('tags:orderByField.ID'), value: 'id' }, | ||||||
|  |         { text: this.$t('tags:orderByField.lastModified'), value: 'updatedAt' }, | ||||||
|  |         { text: this.$t('tags:orderByField.path'), value: 'path' }, | ||||||
|  |         { text: this.$t('tags:orderByField.title'), value: 'title' } | ||||||
|  |       ] | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   watch: { |   watch: { | ||||||
| @@ -243,7 +247,7 @@ export default { | |||||||
|     this.$store.commit('page/SET_MODE', 'tags') |     this.$store.commit('page/SET_MODE', 'tags') | ||||||
|  |  | ||||||
|     this.locales = _.concat( |     this.locales = _.concat( | ||||||
|       [{name: 'Any', code: 'any'}], |       [{name: this.$t('tags:localeAny'), code: 'any'}], | ||||||
|       (siteLangs.length > 0 ? siteLangs : []) |       (siteLangs.length > 0 ? siteLangs : []) | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
| @@ -257,7 +261,6 @@ export default { | |||||||
|         this.selection.push(tag) |         this.selection.push(tag) | ||||||
|       } |       } | ||||||
|       this.rebuildURL() |       this.rebuildURL() | ||||||
|       console.info(this.$refs.dude) |  | ||||||
|     }, |     }, | ||||||
|     isSelected (tag) { |     isSelected (tag) { | ||||||
|       return _.includes(this.selection, tag) |       return _.includes(this.selection, tag) | ||||||
|   | |||||||
| @@ -182,7 +182,7 @@ | |||||||
|     "@babel/preset-env": "^7.6.0", |     "@babel/preset-env": "^7.6.0", | ||||||
|     "@mdi/font": "4.3.95", |     "@mdi/font": "4.3.95", | ||||||
|     "@panter/vue-i18next": "0.15.1", |     "@panter/vue-i18next": "0.15.1", | ||||||
|     "@requarks/ckeditor5": "12.4.0-wiki.11", |     "@requarks/ckeditor5": "12.4.0-wiki.14", | ||||||
|     "@vue/babel-preset-app": "3.11.0", |     "@vue/babel-preset-app": "3.11.0", | ||||||
|     "animate-sass": "0.8.2", |     "animate-sass": "0.8.2", | ||||||
|     "animated-number-vue": "1.0.0", |     "animated-number-vue": "1.0.0", | ||||||
|   | |||||||
							
								
								
									
										71
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										71
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -1229,10 +1229,10 @@ | |||||||
|   resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" |   resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" | ||||||
|   integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= |   integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= | ||||||
|  |  | ||||||
| "@requarks/ckeditor5@12.4.0-wiki.11": | "@requarks/ckeditor5@12.4.0-wiki.14": | ||||||
|   version "12.4.0-wiki.11" |   version "12.4.0-wiki.14" | ||||||
|   resolved "https://registry.yarnpkg.com/@requarks/ckeditor5/-/ckeditor5-12.4.0-wiki.11.tgz#6a83bcd0617b32a9a2f946549727c2f95a97a7ba" |   resolved "https://registry.yarnpkg.com/@requarks/ckeditor5/-/ckeditor5-12.4.0-wiki.14.tgz#eca91568cc5f1471fff684df18c638dfab9f0aef" | ||||||
|   integrity sha512-Qs1rFB290CUVaXB0LuoN/b00ivN/S0NY0obFaOEmegQu69gKxiDaQSlvrSm2jOKpmNlxruc7/CxYSKiPvhadCw== |   integrity sha512-3DD2GmagyTYeSHsm437FR0OxlzNFYnc3PEflt7p0/mTM68nRHUHv/pO9wvbUXaRk667WKsRVqckbbMQbdRK43g== | ||||||
|  |  | ||||||
| "@types/accepts@*", "@types/accepts@^1.3.5": | "@types/accepts@*", "@types/accepts@^1.3.5": | ||||||
|   version "1.3.5" |   version "1.3.5" | ||||||
| @@ -1910,9 +1910,9 @@ acorn-globals@^3.0.0: | |||||||
|     acorn "^4.0.4" |     acorn "^4.0.4" | ||||||
|  |  | ||||||
| acorn-globals@^4.1.0: | acorn-globals@^4.1.0: | ||||||
|   version "4.3.3" |   version "4.3.4" | ||||||
|   resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" |   resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" | ||||||
|   integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== |   integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== | ||||||
|   dependencies: |   dependencies: | ||||||
|     acorn "^6.0.1" |     acorn "^6.0.1" | ||||||
|     acorn-walk "^6.0.1" |     acorn-walk "^6.0.1" | ||||||
| @@ -4962,9 +4962,9 @@ ejs@^2.3.4, ejs@^2.5.6, ejs@^2.6.1: | |||||||
|     pump "^3.0.0" |     pump "^3.0.0" | ||||||
|  |  | ||||||
| electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.30: | electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.30: | ||||||
|   version "1.3.253" |   version "1.3.255" | ||||||
|   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.253.tgz#bc3b2c94c2a109c08d37b04f526dc05fdabcbb5b" |   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.255.tgz#9f4b4f9ffd559dd7a81fef962186fc918d118b66" | ||||||
|   integrity sha512-LAwFRWViiiCSxQ2Lj3mnyEP8atkpAoHSPUnkFoy4mNabbnPHxtfseWvPCGGhewjHQI+ky/V4LdlTyyI0d3YPXA== |   integrity sha512-SZ6NlaNw3h4WR5kA1BK8XltdJCax02P+lW+z78RYoLDqmpyYuDQ5bS+/O6MCJ/j761qoZIFox2qYYt+UwqGA5w== | ||||||
|  |  | ||||||
| elliptic@^6.0.0, elliptic@^6.2.3: | elliptic@^6.0.0, elliptic@^6.2.3: | ||||||
|   version "6.5.1" |   version "6.5.1" | ||||||
| @@ -5964,7 +5964,7 @@ fsevents@^2.0.6: | |||||||
|   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" |   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" | ||||||
|   integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== |   integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== | ||||||
|  |  | ||||||
| function-bind@^1.0.2, function-bind@^1.1.1: | function-bind@^1.1.1: | ||||||
|   version "1.1.1" |   version "1.1.1" | ||||||
|   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" |   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" | ||||||
|   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== |   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== | ||||||
| @@ -8797,9 +8797,9 @@ minimist@~0.0.1: | |||||||
|   integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= |   integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= | ||||||
|  |  | ||||||
| minipass@^2.2.1, minipass@^2.3.5: | minipass@^2.2.1, minipass@^2.3.5: | ||||||
|   version "2.5.0" |   version "2.5.1" | ||||||
|   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.5.0.tgz#dddb1d001976978158a05badfcbef4a771612857" |   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.5.1.tgz#cf435a9bf9408796ca3a3525a8b851464279c9b8" | ||||||
|   integrity sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q== |   integrity sha512-dmpSnLJtNQioZFI5HfQ55Ad0DzzsMAb+HfokwRTNXwEQjepbTkl5mtIlSVxGIkOkxlpX7wIn5ET/oAd9fZ/Y/Q== | ||||||
|   dependencies: |   dependencies: | ||||||
|     safe-buffer "^5.1.2" |     safe-buffer "^5.1.2" | ||||||
|     yallist "^3.0.0" |     yallist "^3.0.0" | ||||||
| @@ -9166,9 +9166,9 @@ node-pre-gyp@^0.12.0: | |||||||
|     tar "^4" |     tar "^4" | ||||||
|  |  | ||||||
| node-releases@^1.1.29: | node-releases@^1.1.29: | ||||||
|   version "1.1.29" |   version "1.1.30" | ||||||
|   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.29.tgz#86a57c6587a30ecd6726449e5d293466b0a0bb86" |   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.30.tgz#35eebf129c63baeb6d8ddeda3c35b05abfd37f7f" | ||||||
|   integrity sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ== |   integrity sha512-BHcr1g6NeUH12IL+X3Flvs4IOnl1TL0JczUhEZjDE+FXXPQcVCNr8NEPb01zqGxzhTpdyJL5GXemaCW7aw6Khw== | ||||||
|   dependencies: |   dependencies: | ||||||
|     semver "^5.3.0" |     semver "^5.3.0" | ||||||
|  |  | ||||||
| @@ -11342,9 +11342,9 @@ pseudomap@^1.0.1, pseudomap@^1.0.2: | |||||||
|   integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= |   integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= | ||||||
|  |  | ||||||
| psl@^1.1.24, psl@^1.1.28: | psl@^1.1.24, psl@^1.1.28: | ||||||
|   version "1.3.1" |   version "1.4.0" | ||||||
|   resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.1.tgz#d5aa3873a35ec450bc7db9012ad5a7246f6fc8bd" |   resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" | ||||||
|   integrity sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA== |   integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== | ||||||
|  |  | ||||||
| public-encrypt@^4.0.0: | public-encrypt@^4.0.0: | ||||||
|   version "4.0.3" |   version "4.0.3" | ||||||
| @@ -12928,20 +12928,20 @@ string.prototype.repeat@^0.2.0: | |||||||
|   integrity sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8= |   integrity sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8= | ||||||
|  |  | ||||||
| string.prototype.trimleft@^2.0.0: | string.prototype.trimleft@^2.0.0: | ||||||
|   version "2.0.0" |   version "2.1.0" | ||||||
|   resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz#68b6aa8e162c6a80e76e3a8a0c2e747186e271ff" |   resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" | ||||||
|   integrity sha1-aLaqjhYsaoDnbjqKDC50cYbicf8= |   integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== | ||||||
|   dependencies: |   dependencies: | ||||||
|     define-properties "^1.1.2" |     define-properties "^1.1.3" | ||||||
|     function-bind "^1.0.2" |     function-bind "^1.1.1" | ||||||
|  |  | ||||||
| string.prototype.trimright@^2.0.0: | string.prototype.trimright@^2.0.0: | ||||||
|   version "2.0.0" |   version "2.1.0" | ||||||
|   resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz#ab4a56d802a01fbe7293e11e84f24dc8164661dd" |   resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" | ||||||
|   integrity sha1-q0pW2AKgH75yk+EehPJNyBZGYd0= |   integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== | ||||||
|   dependencies: |   dependencies: | ||||||
|     define-properties "^1.1.2" |     define-properties "^1.1.3" | ||||||
|     function-bind "^1.0.2" |     function-bind "^1.1.1" | ||||||
|  |  | ||||||
| string_decoder@^1.0.0, string_decoder@^1.1.1: | string_decoder@^1.0.0, string_decoder@^1.1.1: | ||||||
|   version "1.3.0" |   version "1.3.0" | ||||||
| @@ -13206,7 +13206,7 @@ terser-webpack-plugin@^1.4.1: | |||||||
|     webpack-sources "^1.4.0" |     webpack-sources "^1.4.0" | ||||||
|     worker-farm "^1.7.0" |     worker-farm "^1.7.0" | ||||||
|  |  | ||||||
| terser@4.3.0, terser@^4.1.2: | terser@4.3.0: | ||||||
|   version "4.3.0" |   version "4.3.0" | ||||||
|   resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.0.tgz#0259070576ff34d89c5cd2b8d91055cdce0212d5" |   resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.0.tgz#0259070576ff34d89c5cd2b8d91055cdce0212d5" | ||||||
|   integrity sha512-w5CzrvQOwYAH54aG22IrUJI4yX1w62XQmMdEOM6H4w0ii6rc3HJ89fmcOGN5mRwBWfUgaqO7RJTp4aoY/uE+qQ== |   integrity sha512-w5CzrvQOwYAH54aG22IrUJI4yX1w62XQmMdEOM6H4w0ii6rc3HJ89fmcOGN5mRwBWfUgaqO7RJTp4aoY/uE+qQ== | ||||||
| @@ -13215,6 +13215,15 @@ terser@4.3.0, terser@^4.1.2: | |||||||
|     source-map "~0.6.1" |     source-map "~0.6.1" | ||||||
|     source-map-support "~0.5.12" |     source-map-support "~0.5.12" | ||||||
|  |  | ||||||
|  | terser@^4.1.2: | ||||||
|  |   version "4.3.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz#09820bcb3398299c4b48d9a86aefc65127d0ed65" | ||||||
|  |   integrity sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg== | ||||||
|  |   dependencies: | ||||||
|  |     commander "^2.20.0" | ||||||
|  |     source-map "~0.6.1" | ||||||
|  |     source-map-support "~0.5.12" | ||||||
|  |  | ||||||
| test-exclude@^5.2.3: | test-exclude@^5.2.3: | ||||||
|   version "5.2.3" |   version "5.2.3" | ||||||
|   resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" |   resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user