You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.6 KiB

  1. <template>
  2. <div>
  3. <action-menu
  4. :items="menuItems"
  5. @upload="importDialog=true"
  6. @download="exportDialog=true"
  7. />
  8. <v-dialog
  9. v-model="importDialog"
  10. width="800"
  11. >
  12. <document-upload-form
  13. :upload-document="uploadDocument"
  14. :formats="getImportFormat"
  15. @close="importDialog=false"
  16. />
  17. </v-dialog>
  18. <v-dialog
  19. v-model="exportDialog"
  20. width="800"
  21. >
  22. <document-export-form
  23. :export-document="exportDocument"
  24. :formats="getExportFormat"
  25. @close="exportDialog=false"
  26. />
  27. </v-dialog>
  28. </div>
  29. </template>
  30. <script>
  31. import { mapActions, mapGetters } from 'vuex'
  32. import ActionMenu from '@/components/molecules/ActionMenu'
  33. import DocumentUploadForm from '@/components/organisms/documents/DocumentUploadForm'
  34. import DocumentExportForm from '@/components/organisms/documents/DocumentExportForm'
  35. export default {
  36. components: {
  37. ActionMenu,
  38. DocumentUploadForm,
  39. DocumentExportForm
  40. },
  41. data() {
  42. return {
  43. importDialog: false,
  44. exportDialog: false,
  45. menuItems: [
  46. { title: 'Import Dataset', icon: 'mdi-upload', event: 'upload' },
  47. { title: 'Export Dataset', icon: 'mdi-download', event: 'download' }
  48. ]
  49. }
  50. },
  51. computed: {
  52. ...mapGetters('projects', ['getImportFormat', 'getExportFormat'])
  53. },
  54. created() {
  55. this.setCurrentProject(this.$route.params.id)
  56. },
  57. methods: {
  58. ...mapActions('documents', ['uploadDocument', 'exportDocument']),
  59. ...mapActions('projects', ['setCurrentProject'])
  60. }
  61. }
  62. </script>