|
@@ -2,7 +2,6 @@
|
|
v-bottom-sheet(
|
|
v-bottom-sheet(
|
|
v-model='isShown'
|
|
v-model='isShown'
|
|
inset
|
|
inset
|
|
- persistent
|
|
|
|
)
|
|
)
|
|
.dialog-header
|
|
.dialog-header
|
|
v-icon(color='white') sort_by_alpha
|
|
v-icon(color='white') sort_by_alpha
|
|
@@ -19,6 +18,7 @@
|
|
v-card-text
|
|
v-card-text
|
|
v-subheader.pl-0 Page Info
|
|
v-subheader.pl-0 Page Info
|
|
v-text-field(
|
|
v-text-field(
|
|
|
|
+ ref='iptTitle'
|
|
outline
|
|
outline
|
|
background-color='grey lighten-2'
|
|
background-color='grey lighten-2'
|
|
label='Title'
|
|
label='Title'
|
|
@@ -43,101 +43,120 @@
|
|
v-divider
|
|
v-divider
|
|
v-card-text
|
|
v-card-text
|
|
v-subheader.pl-0 Tags
|
|
v-subheader.pl-0 Tags
|
|
- v-select(
|
|
|
|
|
|
+ v-combobox(
|
|
background-color='grey lighten-2'
|
|
background-color='grey lighten-2'
|
|
chips
|
|
chips
|
|
deletable-chips
|
|
deletable-chips
|
|
hide-details
|
|
hide-details
|
|
label='Tags'
|
|
label='Tags'
|
|
outline
|
|
outline
|
|
- tags
|
|
|
|
|
|
+ multiple
|
|
v-model='tags'
|
|
v-model='tags'
|
|
single-line
|
|
single-line
|
|
)
|
|
)
|
|
v-divider
|
|
v-divider
|
|
- v-card-text
|
|
|
|
|
|
+ v-card-text.pb-5
|
|
v-subheader.pl-0 Publishing State
|
|
v-subheader.pl-0 Publishing State
|
|
- v-layout(row, wrap)
|
|
|
|
- v-flex(xs4)
|
|
|
|
- v-switch(
|
|
|
|
- label='Published'
|
|
|
|
- v-model='isPublished'
|
|
|
|
- color='primary'
|
|
|
|
- )
|
|
|
|
- v-flex(xs4)
|
|
|
|
- v-menu(
|
|
|
|
- ref='menuPublishStart'
|
|
|
|
- lazy=''
|
|
|
|
- :close-on-content-click='false'
|
|
|
|
- v-model='isPublishStartShown'
|
|
|
|
- transition='scale-transition'
|
|
|
|
- offset-y=''
|
|
|
|
- full-width=''
|
|
|
|
- :nudge-right='40'
|
|
|
|
- min-width='290px'
|
|
|
|
- :return-value.sync='publishStartDate'
|
|
|
|
- )
|
|
|
|
- v-text-field(
|
|
|
|
- slot='activator'
|
|
|
|
- label='Publish starting on...'
|
|
|
|
- v-model='publishStartDate'
|
|
|
|
- prepend-icon='event'
|
|
|
|
- readonly)
|
|
|
|
- v-date-picker(
|
|
|
|
- v-model='publishStartDate'
|
|
|
|
- :min='(new Date()).toISOString().substring(0, 10)'
|
|
|
|
- reactive
|
|
|
|
- )
|
|
|
|
- v-spacer
|
|
|
|
- v-btn(
|
|
|
|
- flat=''
|
|
|
|
- color='primary'
|
|
|
|
- @click='isPublishStartShown = false'
|
|
|
|
- ) Cancel
|
|
|
|
- v-btn(
|
|
|
|
- flat=''
|
|
|
|
- color='primary'
|
|
|
|
- @click='$refs.menuPublishStart.save(date)'
|
|
|
|
- ) OK
|
|
|
|
- v-flex(xs4)
|
|
|
|
- v-menu(
|
|
|
|
- ref='menuPublishEnd'
|
|
|
|
- lazy=''
|
|
|
|
- :close-on-content-click='false'
|
|
|
|
- v-model='isPublishEndShown'
|
|
|
|
- transition='scale-transition'
|
|
|
|
- offset-y=''
|
|
|
|
- full-width=''
|
|
|
|
- :nudge-right='40'
|
|
|
|
- min-width='290px'
|
|
|
|
- :return-value.sync='publishEndDate'
|
|
|
|
- )
|
|
|
|
- v-text-field(
|
|
|
|
- slot='activator'
|
|
|
|
- label='Publish ending on...'
|
|
|
|
- v-model='publishEndDate'
|
|
|
|
- prepend-icon='event'
|
|
|
|
- readonly
|
|
|
|
|
|
+ v-container.pa-0(fluid, grid-list-lg)
|
|
|
|
+ v-layout(row, wrap)
|
|
|
|
+ v-flex(xs12, md4)
|
|
|
|
+ v-switch(
|
|
|
|
+ label='Published'
|
|
|
|
+ v-model='isPublished'
|
|
|
|
+ color='primary'
|
|
)
|
|
)
|
|
- v-date-picker(
|
|
|
|
- v-model='publishEndDate'
|
|
|
|
- :min='(new Date()).toISOString().substring(0, 10)'
|
|
|
|
- reactive
|
|
|
|
|
|
+ v-flex(xs12, md4)
|
|
|
|
+ v-dialog(
|
|
|
|
+ ref='menuPublishStart'
|
|
|
|
+ lazy
|
|
|
|
+ :close-on-content-click='false'
|
|
|
|
+ v-model='isPublishStartShown'
|
|
|
|
+ :return-value.sync='publishStartDate'
|
|
|
|
+ full-width
|
|
|
|
+ width='460px'
|
|
|
|
+ :disabled='!isPublished'
|
|
)
|
|
)
|
|
- v-spacer
|
|
|
|
- v-btn(
|
|
|
|
- flat=''
|
|
|
|
|
|
+ v-text-field(
|
|
|
|
+ slot='activator'
|
|
|
|
+ label='Publish starting on...'
|
|
|
|
+ v-model='publishStartDate'
|
|
|
|
+ prepend-icon='event'
|
|
|
|
+ readonly
|
|
|
|
+ outline
|
|
|
|
+ background-color='grey lighten-2'
|
|
|
|
+ clearable
|
|
|
|
+ hint='Leave empty for no start date'
|
|
|
|
+ persistent-hint
|
|
|
|
+ :disabled='!isPublished'
|
|
|
|
+ )
|
|
|
|
+ v-date-picker(
|
|
|
|
+ v-model='publishStartDate'
|
|
|
|
+ :min='(new Date()).toISOString().substring(0, 10)'
|
|
color='primary'
|
|
color='primary'
|
|
- @click='isPublishEndShown = false'
|
|
|
|
- ) Cancel
|
|
|
|
- v-btn(
|
|
|
|
- flat=''
|
|
|
|
|
|
+ reactive
|
|
|
|
+ scrollable
|
|
|
|
+ landscape
|
|
|
|
+ )
|
|
|
|
+ v-spacer
|
|
|
|
+ v-btn(
|
|
|
|
+ flat=''
|
|
|
|
+ color='primary'
|
|
|
|
+ @click='isPublishStartShown = false'
|
|
|
|
+ ) Cancel
|
|
|
|
+ v-btn(
|
|
|
|
+ flat=''
|
|
|
|
+ color='primary'
|
|
|
|
+ @click='$refs.menuPublishStart.save(publishStartDate)'
|
|
|
|
+ ) OK
|
|
|
|
+ v-flex(xs12, md4)
|
|
|
|
+ v-dialog(
|
|
|
|
+ ref='menuPublishEnd'
|
|
|
|
+ lazy
|
|
|
|
+ :close-on-content-click='false'
|
|
|
|
+ v-model='isPublishEndShown'
|
|
|
|
+ :return-value.sync='publishEndDate'
|
|
|
|
+ full-width
|
|
|
|
+ width='460px'
|
|
|
|
+ :disabled='!isPublished'
|
|
|
|
+ )
|
|
|
|
+ v-text-field(
|
|
|
|
+ slot='activator'
|
|
|
|
+ label='Publish ending on...'
|
|
|
|
+ v-model='publishEndDate'
|
|
|
|
+ prepend-icon='event'
|
|
|
|
+ readonly
|
|
|
|
+ outline
|
|
|
|
+ background-color='grey lighten-2'
|
|
|
|
+ clearable
|
|
|
|
+ hint='Leave empty for no end date'
|
|
|
|
+ persistent-hint
|
|
|
|
+ :disabled='!isPublished'
|
|
|
|
+ )
|
|
|
|
+ v-date-picker(
|
|
|
|
+ v-model='publishEndDate'
|
|
|
|
+ :min='(new Date()).toISOString().substring(0, 10)'
|
|
color='primary'
|
|
color='primary'
|
|
- @click='$refs.menuPublishEnd.save(date)'
|
|
|
|
- ) OK
|
|
|
|
|
|
+ reactive
|
|
|
|
+ scrollable
|
|
|
|
+ landscape
|
|
|
|
+ )
|
|
|
|
+ v-spacer
|
|
|
|
+ v-btn(
|
|
|
|
+ flat=''
|
|
|
|
+ color='primary'
|
|
|
|
+ @click='isPublishEndShown = false'
|
|
|
|
+ ) Cancel
|
|
|
|
+ v-btn(
|
|
|
|
+ flat=''
|
|
|
|
+ color='primary'
|
|
|
|
+ @click='$refs.menuPublishEnd.save(publishEndDate)'
|
|
|
|
+ ) OK
|
|
|
|
+
|
|
|
|
+ v-tour(name='editorPropertiesTour', :steps='tourSteps')
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import _ from 'lodash'
|
|
import { sync } from 'vuex-pathify'
|
|
import { sync } from 'vuex-pathify'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -145,7 +164,13 @@ export default {
|
|
return {
|
|
return {
|
|
isShown: false,
|
|
isShown: false,
|
|
isPublishStartShown: false,
|
|
isPublishStartShown: false,
|
|
- isPublishEndShown: false
|
|
|
|
|
|
+ isPublishEndShown: false,
|
|
|
|
+ tourSteps: [
|
|
|
|
+ {
|
|
|
|
+ target: '.dialog-header',
|
|
|
|
+ content: `First-time tour help here. <strong>TODO</strong>!`
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -159,6 +184,10 @@ export default {
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
this.isShown = true
|
|
this.isShown = true
|
|
|
|
+ _.delay(() => {
|
|
|
|
+ this.$refs.iptTitle.focus()
|
|
|
|
+ // this.$tours['editorPropertiesTour'].start()
|
|
|
|
+ }, 500)
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
close() {
|
|
close() {
|