Fix file creation from template without ext

Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
pull/28882/head
John Molakvoæ 2021-09-17 09:52:02 +07:00 committed by backportbot[bot]
parent 021d5ab7ae
commit d9c4ff3c24
2 changed files with 27 additions and 5 deletions

@ -27,3 +27,19 @@ export const getTemplates = async function() {
const response = await axios.get(generateOcsUrl('apps/files/api/v1', 2) + 'templates')
return response.data.ocs.data
}
/**
* Create a new file from a specified template
*
* @param {string} filePath The new file destination path
* @param {string} templatePath The template source path
* @param {string} templateType The template type e.g 'user'
*/
export const createFromTemplate = async function(filePath, templatePath, templateType) {
const response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/create'), {
filePath,
templatePath,
templateType,
})
return response.data.ocs.data
}

@ -66,14 +66,13 @@
</template>
<script>
import { generateOcsUrl } from '@nextcloud/router'
import { normalize } from 'path'
import { showError } from '@nextcloud/dialogs'
import axios from '@nextcloud/axios'
import EmptyContent from '@nextcloud/vue/dist/Components/EmptyContent'
import Modal from '@nextcloud/vue/dist/Components/Modal'
import { getCurrentDirectory } from '../utils/davUtils'
import { getTemplates } from '../services/Templates'
import { createFromTemplate, getTemplates } from '../services/Templates'
import TemplatePreview from '../components/TemplatePreview'
const border = 2
@ -113,7 +112,9 @@ export default {
* @returns {string}
*/
nameWithoutExt() {
return this.name.indexOf('.') > -1 ? this.name.split('.').slice(0, -1).join('.') : this.name
return this.name.indexOf('.') > -1
? this.name.split('.').slice(0, -1).join('.')
: this.name
},
emptyTemplate() {
@ -205,7 +206,12 @@ export default {
templateType: this.selectedTemplate?.templateType,
})
const fileInfo = response.data.ocs.data
try {
const fileInfo = await createFromTemplate(
normalize(`${currentDirectory}/${this.name}`),
this.selectedTemplate?.filename,
this.selectedTemplate?.templateType,
)
this.logger.debug('Created new file', fileInfo)
await fileList?.addAndFetchFileInfo(this.name)