]> source.dussan.org Git - nextcloud-server.git/commitdiff
feat: TemplateFiller component
authorElizabeth Danzberger <lizzy7128@tutanota.de>
Mon, 1 Jul 2024 20:47:12 +0000 (16:47 -0400)
committerJulius Härtl <jus@bitgrid.net>
Thu, 25 Jul 2024 09:11:38 +0000 (11:11 +0200)
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
apps/files/src/components/TemplateFiller.vue
apps/files/src/views/TemplatePicker.vue

index 3e01d64052ea8f65845f537ac194547e44f6be2a..6f0988d0dc993b2c0bc062ff75fdb45e1d1dc628 100644 (file)
@@ -4,18 +4,28 @@
 -->
 
 <template>
-
+       <NcDialog name="Fill Template">
+               {{ fields }}
+       </NcDialog>
 </template>
 
 <script lang="ts">
 import { defineComponent } from 'vue'
+import { NcDialog } from '@nextcloud/vue'
 
 export default defineComponent({
        name: 'TemplateFiller',
 
-       components: {},
+       components: {
+               NcDialog,
+       },
 
-       props: {},
+       props: {
+               fields: {
+                       type: Array,
+                       default: [],
+               },
+       },
 
        methods: {},
 })
index f2e2e29e4b52af88fca24d842efd741b52957a8e..6c26771a24079549ead94d7ab7fedb6479af5dda 100644 (file)
@@ -47,7 +47,7 @@
 import type { TemplateFile } from '../types.ts'
 
 import { getCurrentUser } from '@nextcloud/auth'
-import { showError } from '@nextcloud/dialogs'
+import { showError, spawnDialog } from '@nextcloud/dialogs'
 import { emit } from '@nextcloud/event-bus'
 import { File } from '@nextcloud/files'
 import { translate as t } from '@nextcloud/l10n'
@@ -59,6 +59,7 @@ import { createFromTemplate, getTemplates } from '../services/Templates.js'
 import NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'
 import NcModal from '@nextcloud/vue/dist/Components/NcModal.js'
 import TemplatePreview from '../components/TemplatePreview.vue'
+import TemplateFiller from '../components/TemplateFiller.vue'
 import logger from '../logger.js'
 
 const border = 2
@@ -202,6 +203,7 @@ export default defineComponent({
 
                async onSubmit() {
                        this.loading = true
+
                        const currentDirectory = new URL(window.location.href).searchParams.get('dir') || '/'
 
                        // If the file doesn't have an extension, add the default one
@@ -210,6 +212,14 @@ export default defineComponent({
                                this.name = `${this.name}${this.provider?.extension ?? ''}`
                        }
 
+                       if (this.selectedTemplate?.fields) {
+                               spawnDialog(TemplateFiller, {
+                                       fields: this.selectedTemplate?.fields
+                               })
+
+                               return
+                       }
+
                        try {
                                const fileInfo = await createFromTemplate(
                                        normalize(`${currentDirectory}/${this.name}`),