PageNewMenu.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template lang="pug">
  2. q-menu.translucent-menu(
  3. auto-close
  4. anchor='bottom right'
  5. self='top right'
  6. )
  7. q-list(padding)
  8. q-item(clickable, @click='create(`wysiwyg`)')
  9. blueprint-icon(icon='google-presentation')
  10. q-item-section.q-pr-sm New Page
  11. q-item(clickable, @click='create(`markdown`)')
  12. blueprint-icon(icon='markdown')
  13. q-item-section.q-pr-sm New Markdown Page
  14. q-item(clickable, @click='create(`asciidoc`)')
  15. blueprint-icon(icon='asciidoc')
  16. q-item-section.q-pr-sm New AsciiDoc Page
  17. template(v-if='flagsStore.experimental')
  18. q-item(clickable, @click='create(`channel`)')
  19. blueprint-icon(icon='chat')
  20. q-item-section.q-pr-sm New Discussion Space
  21. q-item(clickable, @click='create(`blog`)')
  22. blueprint-icon(icon='typewriter-with-paper')
  23. q-item-section.q-pr-sm New Blog Page
  24. q-item(clickable, @click='create(`api`)')
  25. blueprint-icon(icon='api')
  26. q-item-section.q-pr-sm New API Documentation
  27. q-item(clickable, @click='create(`redirect`)')
  28. blueprint-icon(icon='advance')
  29. q-item-section.q-pr-sm New Redirection
  30. template(v-if='props.hideAssetBtn === false')
  31. q-separator.q-my-sm(inset)
  32. q-item(clickable, @click='openFileManager')
  33. blueprint-icon(icon='add-image')
  34. q-item-section.q-pr-sm Upload Media Asset
  35. template(v-if='props.showNewFolder')
  36. q-separator.q-my-sm(inset)
  37. q-item(clickable, @click='newFolder')
  38. blueprint-icon(icon='add-folder')
  39. q-item-section.q-pr-sm New Folder
  40. </template>
  41. <script setup>
  42. import { useI18n } from 'vue-i18n'
  43. import { useQuasar } from 'quasar'
  44. import { usePageStore } from 'src/stores/page'
  45. import { useSiteStore } from 'src/stores/site'
  46. import { useFlagsStore } from 'src/stores/flags'
  47. // PROPS
  48. const props = defineProps({
  49. hideAssetBtn: {
  50. type: Boolean,
  51. default: false
  52. },
  53. showNewFolder: {
  54. type: Boolean,
  55. default: false
  56. }
  57. })
  58. // EMITS
  59. const emit = defineEmits(['newFolder'])
  60. // QUASAR
  61. const $q = useQuasar()
  62. // STORES
  63. const flagsStore = useFlagsStore()
  64. const pageStore = usePageStore()
  65. const siteStore = useSiteStore()
  66. // I18N
  67. const { t } = useI18n()
  68. // METHODS
  69. function create (editor) {
  70. window.location.assign('/_edit/new')
  71. // pageStore.pageCreate({ editor })
  72. }
  73. function openFileManager () {
  74. siteStore.overlay = 'FileManager'
  75. }
  76. function newFolder () {
  77. emit('newFolder')
  78. }
  79. </script>