diff --git a/resources/vue/mixins/courseware/export.js b/resources/vue/mixins/courseware/export.js index f2e329b83462e78c2699070d040486313c0d5217..dd0b5229d0ad82fb083466663880092f6ea9350b 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 de7b06840480d0cc2285ea271c0acfd13cd08ca5..1380ea008dbd508af62da3ee272d5e2d504a9dd6 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) {