diff options
author | John Molakvoæ <skjnldsv@protonmail.com> | 2021-09-17 09:52:02 +0200 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2021-09-17 20:26:31 +0000 |
commit | d9c4ff3c246992add0621bae44d2df799f563db0 (patch) | |
tree | e0849c44b37a54bb97b7ae372a02b69fd9369691 /apps | |
parent | 021d5ab7ae2d1fbfefc7fdf339ae502af120c6fe (diff) | |
download | nextcloud-server-d9c4ff3c246992add0621bae44d2df799f563db0.tar.gz nextcloud-server-d9c4ff3c246992add0621bae44d2df799f563db0.zip |
Fix file creation from template without ext
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/src/services/Templates.js | 16 | ||||
-rw-r--r-- | apps/files/src/views/TemplatePicker.vue | 16 |
2 files changed, 27 insertions, 5 deletions
diff --git a/apps/files/src/services/Templates.js b/apps/files/src/services/Templates.js index c1a8992d661..ca8d8e38f2c 100644 --- a/apps/files/src/services/Templates.js +++ b/apps/files/src/services/Templates.js @@ -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 +} diff --git a/apps/files/src/views/TemplatePicker.vue b/apps/files/src/views/TemplatePicker.vue index 3043865816c..0543890d9af 100644 --- a/apps/files/src/views/TemplatePicker.vue +++ b/apps/files/src/views/TemplatePicker.vue @@ -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) |