From 108f0ee8f7fdcceb8278c893b12ee37b73b98285 Mon Sep 17 00:00:00 2001 From: Farbod Zamani <zamani@elan-ev.de> Date: Wed, 16 Nov 2022 13:44:11 +0000 Subject: [PATCH] CW: Add terms of use to export Closes #1738 and #921 Merge request studip/studip!1169 --- resources/vue/mixins/courseware/export.js | 15 ++++++++++++++- .../vue/store/courseware/courseware.module.js | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/resources/vue/mixins/courseware/export.js b/resources/vue/mixins/courseware/export.js index f2e329b8346..dd0b5229d0a 100644 --- a/resources/vue/mixins/courseware/export.js +++ b/resources/vue/mixins/courseware/export.js @@ -239,7 +239,7 @@ export default { if (fileId) { await this.$store.dispatch('file-refs/loadById', {id: fileId}); let fileRef = this.$store.getters['file-refs/byId']({id: fileId}); - + let fileRefData = {}; fileRefData.id = fileRef.id; fileRefData.attributes = fileRef.attributes; @@ -310,6 +310,19 @@ export default { fileref.related_block_id = block_id; fileref.id = refs[ref_id].id; + // Create an empty relationships object to pick and hold selected relationships of the fileref. Because not all of + // them are necessary. + let relationships = {}; + // Get terms-of-use id from relationships. + if (refs[ref_id].relationships?.['terms-of-use']?.data?.id) { + let terms = {'data' : refs[ref_id].relationships['terms-of-use'].data}; + relationships['terms-of-use'] = terms; + } + // Add relationships to the fileref object if it has some values. + if (Object.keys(relationships).length > 0) { + fileref.relationships = relationships; + } + try { await this.loadFolder(folderId); folder = this.folderById({id: folderId}); diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js index de7b0684048..1380ea008db 100644 --- a/resources/vue/store/courseware/courseware.module.js +++ b/resources/vue/store/courseware/courseware.module.js @@ -314,7 +314,7 @@ export const actions = { }, async createFile(context, { file, filedata, folder }) { - const termId = file?.relationships['terms-of-use']?.data?.id ?? null; + const termId = file?.relationships?.['terms-of-use']?.data?.id ?? null; const formData = new FormData(); formData.append('file', filedata, file.attributes.name); if (termId) { -- GitLab