| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358 | 
							- <template lang='pug'>
 
-   v-dialog(
 
-     v-model='isShown'
 
-     persistent
 
-     width='1000'
 
-     :fullscreen='$vuetify.breakpoint.smAndDown'
 
-     )
 
-     .dialog-header
 
-       v-icon(color='white') mdi-tag-text-outline
 
-       .subtitle-1.white--text.ml-3 {{$t('editor:props.pageProperties')}}
 
-       v-spacer
 
-       v-btn.mx-0(
 
-         outlined
 
-         dark
 
-         @click.native='close'
 
-         )
 
-         v-icon(left) mdi-check
 
-         span {{ $t('common:actions.ok') }}
 
-     v-card(tile)
 
-       v-tabs(color='white', background-color='blue darken-1', dark, centered)
 
-         v-tab {{$t('editor:props.info')}}
 
-         v-tab {{$t('editor:props.scheduling')}}
 
-         v-tab(disabled) {{$t('editor:props.scripts')}}
 
-         v-tab {{$t('editor:props.social')}}
 
-         v-tab-item
 
-           v-card-text.pt-5
 
-             .overline.pb-5 {{$t('editor:props.pageInfo')}}
 
-             v-text-field(
 
-               ref='iptTitle'
 
-               outlined
 
-               :label='$t(`editor:props.title`)'
 
-               counter='255'
 
-               v-model='title'
 
-               )
 
-             v-text-field(
 
-               outlined
 
-               :label='$t(`editor:props.shortDescription`)'
 
-               counter='255'
 
-               v-model='description'
 
-               persistent-hint
 
-               :hint='$t(`editor:props.shortDescriptionHint`)'
 
-               )
 
-           v-divider
 
-           v-card-text.grey.pt-5(:class='darkMode ? `darken-3-d3` : `lighten-5`')
 
-             .overline.pb-5 {{$t('editor:props.path')}}
 
-             v-container.pa-0(fluid, grid-list-lg)
 
-               v-layout(row, wrap)
 
-                 v-flex(xs12, md2)
 
-                   v-select(
 
-                     outlined
 
-                     :label='$t(`editor:props.locale`)'
 
-                     suffix='/'
 
-                     :items='namespaces'
 
-                     v-model='locale'
 
-                     hide-details
 
-                   )
 
-                 v-flex(xs12, md10)
 
-                   v-text-field(
 
-                     outlined
 
-                     :label='$t(`editor:props.path`)'
 
-                     append-icon='mdi-folder-search'
 
-                     v-model='path'
 
-                     :hint='$t(`editor:props.pathHint`)'
 
-                     persistent-hint
 
-                     @click:append='showPathSelector'
 
-                     )
 
-           v-divider
 
-           v-card-text.grey.pt-5(:class='darkMode ? `darken-3-d5` : `lighten-4`')
 
-             .overline.pb-5 {{$t('editor:props.categorization')}}
 
-             v-chip-group.radius-5.mb-5(column, v-if='tags && tags.length > 0')
 
-               v-chip(
 
-                 v-for='tag of tags'
 
-                 :key='`tag-` + tag'
 
-                 close
 
-                 label
 
-                 color='teal'
 
-                 text-color='teal lighten-5'
 
-                 @click:close='removeTag(tag)'
 
-                 ) {{tag}}
 
-             v-combobox(
 
-               :label='$t(`editor:props.tags`)'
 
-               outlined
 
-               v-model='tags'
 
-               :hint='$t(`editor:props.tagsHint`)'
 
-               :items='newTagSuggestions'
 
-               :loading='$apollo.queries.newTagSuggestions.loading'
 
-               persistent-hint
 
-               deletable-chips
 
-               hide-no-data
 
-               hide-selected
 
-               :search-input.sync='newTagSearch'
 
-               multiple
 
-               )
 
-               template(v-slot:selection='{ attrs, item, parent, selected }')
 
-                 span
 
-         v-tab-item
 
-           v-card-text
 
-             .overline.pb-5 {{$t('editor:props.publishState')}} #[v-chip.ml-3(label, color='grey', small, outlined).white--text coming soon]
 
-             v-switch(
 
-               :label='$t(`editor:props.publishToggle`)'
 
-               v-model='isPublished'
 
-               color='primary'
 
-               :hint='$t(`editor:props.publishToggleHint`)'
 
-               persistent-hint
 
-               disabled
 
-               inset
 
-               )
 
-           v-divider
 
-           v-card-text.grey.pt-5(:class='darkMode ? `darken-3-d3` : `lighten-5`')
 
-             v-container.pa-0(fluid, grid-list-lg)
 
-               v-row
 
-                 v-col(cols='6')
 
-                   v-dialog(
 
-                     ref='menuPublishStart'
 
-                     :close-on-content-click='false'
 
-                     v-model='isPublishStartShown'
 
-                     :return-value.sync='publishStartDate'
 
-                     width='460px'
 
-                     :disabled='!isPublished || true'
 
-                     )
 
-                     template(v-slot:activator='{ on }')
 
-                       v-text-field(
 
-                         v-on='on'
 
-                         :label='$t(`editor:props.publishStart`)'
 
-                         v-model='publishStartDate'
 
-                         prepend-icon='mdi-calendar-check'
 
-                         readonly
 
-                         outlined
 
-                         clearable
 
-                         :hint='$t(`editor:props.publishStartHint`)'
 
-                         persistent-hint
 
-                         :disabled='!isPublished || true'
 
-                         )
 
-                     v-date-picker(
 
-                       v-model='publishStartDate'
 
-                       :min='(new Date()).toISOString().substring(0, 10)'
 
-                       color='primary'
 
-                       reactive
 
-                       scrollable
 
-                       landscape
 
-                       )
 
-                       v-spacer
 
-                       v-btn(
 
-                         flat=''
 
-                         color='primary'
 
-                         @click='isPublishStartShown = false'
 
-                         ) {{$t('common:actions.cancel')}}
 
-                       v-btn(
 
-                         flat=''
 
-                         color='primary'
 
-                         @click='$refs.menuPublishStart.save(publishStartDate)'
 
-                         ) {{$t('common:actions.ok')}}
 
-                 v-col(cols='6')
 
-                   v-dialog(
 
-                     ref='menuPublishEnd'
 
-                     :close-on-content-click='false'
 
-                     v-model='isPublishEndShown'
 
-                     :return-value.sync='publishEndDate'
 
-                     width='460px'
 
-                     :disabled='!isPublished || true'
 
-                     )
 
-                     template(v-slot:activator='{ on }')
 
-                       v-text-field(
 
-                         v-on='on'
 
-                         :label='$t(`editor:props.publishEnd`)'
 
-                         v-model='publishEndDate'
 
-                         prepend-icon='mdi-calendar-remove'
 
-                         readonly
 
-                         outlined
 
-                         clearable
 
-                         :hint='$t(`editor:props.publishEndHint`)'
 
-                         persistent-hint
 
-                         :disabled='!isPublished || true'
 
-                         )
 
-                     v-date-picker(
 
-                       v-model='publishEndDate'
 
-                       :min='(new Date()).toISOString().substring(0, 10)'
 
-                       color='primary'
 
-                       reactive
 
-                       scrollable
 
-                       landscape
 
-                       )
 
-                       v-spacer
 
-                       v-btn(
 
-                         flat=''
 
-                         color='primary'
 
-                         @click='isPublishEndShown = false'
 
-                         ) {{$t('common:actions.cancel')}}
 
-                       v-btn(
 
-                         flat=''
 
-                         color='primary'
 
-                         @click='$refs.menuPublishEnd.save(publishEndDate)'
 
-                         ) {{$t('common:actions.ok')}}
 
-         v-tab-item
 
-           v-card-text
 
-             .overline.pb-3 {{$t('editor:props.js')}}
 
-             v-textarea(
 
-               outlined
 
-               rows='5'
 
-               :hint='$t(`editor:props.jsHint`)'
 
-               persistent-hint
 
-             )
 
-           v-divider
 
-           v-card-text.grey.pt-5(:class='darkMode ? `darken-3-d3` : `lighten-5`')
 
-             .overline.pb-3 {{$t('editor:props.css')}}
 
-             v-textarea(
 
-               outlined
 
-               rows='5'
 
-               :hint='$t(`editor:props.cssHint`)'
 
-               persistent-hint
 
-             )
 
-         v-tab-item
 
-           v-card-text
 
-             .overline.pb-5 {{$t('editor:props.socialFeatures')}} #[v-chip.ml-3(label, color='grey', small, outlined).white--text coming soon]
 
-             v-switch(
 
-               :label='$t(`editor:props.allowComments`)'
 
-               v-model='isPublished'
 
-               color='primary'
 
-               :hint='$t(`editor:props.allowCommentsHint`)'
 
-               persistent-hint
 
-               disabled
 
-               inset
 
-               )
 
-             v-switch(
 
-               :label='$t(`editor:props.allowRatings`)'
 
-               v-model='isPublished'
 
-               color='primary'
 
-               :hint='$t(`editor:props.allowRatingsHint`)'
 
-               persistent-hint
 
-               disabled
 
-               inset
 
-               )
 
-             v-switch(
 
-               :label='$t(`editor:props.displayAuthor`)'
 
-               v-model='isPublished'
 
-               color='primary'
 
-               :hint='$t(`editor:props.displayAuthorHint`)'
 
-               persistent-hint
 
-               disabled
 
-               inset
 
-               )
 
-             v-switch(
 
-               :label='$t(`editor:props.displaySharingBar`)'
 
-               v-model='isPublished'
 
-               color='primary'
 
-               :hint='$t(`editor:props.displaySharingBarHint`)'
 
-               persistent-hint
 
-               disabled
 
-               inset
 
-               )
 
-     page-selector(:mode='pageSelectorMode', v-model='pageSelectorShown', :path='path', :locale='locale', :open-handler='setPath')
 
- </template>
 
- <script>
 
- import _ from 'lodash'
 
- import { sync, get } from 'vuex-pathify'
 
- import gql from 'graphql-tag'
 
- /* global siteLangs, siteConfig */
 
- export default {
 
-   props: {
 
-     value: {
 
-       type: Boolean,
 
-       default: false
 
-     }
 
-   },
 
-   data() {
 
-     return {
 
-       isPublishStartShown: false,
 
-       isPublishEndShown: false,
 
-       pageSelectorShown: false,
 
-       namespaces: siteLangs.length ? siteLangs.map(ns => ns.code) : [siteConfig.lang],
 
-       newTag: '',
 
-       newTagSuggestions: [],
 
-       newTagSearch: ''
 
-     }
 
-   },
 
-   computed: {
 
-     isShown: {
 
-       get() { return this.value },
 
-       set(val) { this.$emit('input', val) }
 
-     },
 
-     darkMode: get('site/dark'),
 
-     mode: get('editor/mode'),
 
-     title: sync('page/title'),
 
-     description: sync('page/description'),
 
-     locale: sync('page/locale'),
 
-     tags: sync('page/tags'),
 
-     path: sync('page/path'),
 
-     isPublished: sync('page/isPublished'),
 
-     publishStartDate: sync('page/publishStartDate'),
 
-     publishEndDate: sync('page/publishEndDate'),
 
-     pageSelectorMode () {
 
-       return (this.mode === 'create') ? 'create' : 'move'
 
-     }
 
-   },
 
-   watch: {
 
-     value(newValue, oldValue) {
 
-       if (newValue) {
 
-         _.delay(() => {
 
-           this.$refs.iptTitle.focus()
 
-           // this.$tours['editorPropertiesTour'].start()
 
-         }, 500)
 
-       }
 
-     }
 
-   },
 
-   methods: {
 
-     addTag () {
 
-       this.$nextTick(() => {
 
-         this.tags.push(this.newTag)
 
-       })
 
-     },
 
-     removeTag (tag) {
 
-       this.tags = _.without(this.tags, tag)
 
-     },
 
-     close() {
 
-       this.isShown = false
 
-     },
 
-     showPathSelector() {
 
-       this.pageSelectorShown = true
 
-     },
 
-     setPath({ path, locale }) {
 
-       this.locale = locale
 
-       this.path = path
 
-     }
 
-   },
 
-   apollo: {
 
-     newTagSuggestions: {
 
-       query: gql`
 
-         query ($query: String!) {
 
-           pages {
 
-             searchTags (query: $query)
 
-           }
 
-         }
 
-       `,
 
-       variables () {
 
-         return {
 
-           query: this.newTagSearch
 
-         }
 
-       },
 
-       fetchPolicy: 'cache-first',
 
-       update: (data) => _.get(data, 'pages.searchTags', []),
 
-       skip () {
 
-         return !this.value || _.isEmpty(this.newTagSearch)
 
-       },
 
-       throttle: 500
 
-     }
 
-   }
 
- }
 
- </script>
 
- <style lang='scss'>
 
- </style>
 
 
  |