From da6aaa1a2a9f9da325db131b54ff49a081ca3c63 Mon Sep 17 00:00:00 2001 From: Ron Lucke <lucke@elan-ev.de> Date: Thu, 14 Apr 2022 07:28:57 +0000 Subject: [PATCH] fix #847 Closes #847 and #905 --- resources/vue/mixins/courseware/import.js | 33 ++++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/resources/vue/mixins/courseware/import.js b/resources/vue/mixins/courseware/import.js index bbafe25c03b..9f849050879 100755 --- a/resources/vue/mixins/courseware/import.js +++ b/resources/vue/mixins/courseware/import.js @@ -110,7 +110,7 @@ export default { if (container.blocks?.length) { let new_block = null; for (var k = 0; k < container.blocks.length; k++) { - new_block = await this.importBlock(container.blocks[k], new_container, files); + new_block = await this.importBlock(container.blocks[k], new_container, files, new_element); if (new_block !== null) { this.importElementCounter++; await this.updateContainerPayload(new_container, new_element.id, container.blocks[k].id, new_block.id); @@ -124,15 +124,18 @@ export default { } }, - async importBlock(block, block_container, files) { - this.setImportStructuresState(this.$gettext('Lege neuen Block an:') + ' ' + block.attributes.title); + async importBlock(block, block_container, files, element) { + this.setImportStructuresState('Lege neuen Block an: ' + block.attributes.title); try { await this.createBlockInContainer({ container: {type: block_container.type, id: block_container.id}, blockType: block.attributes['block-type'], }); } catch(error) { - this.currentImportErrors.push(this.$gettext('Block konnte nicht erstellt werden') + ': ' + block.attributes.title); + this.currentImportErrors.push(this.$gettext('Block konnte nicht erstellt werden') + ': ' + + element.attributes.title + '→' + + block_container.attributes.title + '→' + + block.attributes.title); return null; } @@ -152,12 +155,22 @@ export default { block.attributes.payload = JSON.parse(payload); } } - this.setImportStructuresState(this.$gettext('Aktualisiere neuen Block:') + ' ' + block.attributes.title); - await this.updateBlockInContainer({ - attributes: block.attributes, - blockId: new_block.id, - containerId: block_container.id, - }); + this.setImportStructuresState('Aktualisiere neuen Block: ' + block.attributes.title); + try { + await this.updateBlockInContainer({ + attributes: block.attributes, + blockId: new_block.id, + containerId: block_container.id, + }); + } catch(error) { + + this.currentImportErrors.push(this.$gettext('Blockdaten sind beschädigt. Es werden die Standardwerte eingesetzt.') + ': ' + + element.attributes.title + '→' + + block_container.attributes.title + '→' + + block.attributes.title); + this.unlockObject({ id: new_block.id, type: 'courseware-blocks' }); + } + return new_block; }, -- GitLab