aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2023-05-10 13:51:24 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2023-05-10 13:51:24 +0000
commit83fc7ce5aac7b0824f19508c73f7688ff7cee91c (patch)
treeb000b161bc66f7d452f4358077a3e9ec2364b380
parent72b851c45cbe4e4508ee990b65e427acb44f88ad (diff)
fix #2619
Closes #2619 Merge request studip/studip!1770
-rw-r--r--resources/vue/components/courseware/CoursewareShelfDialogImport.vue4
-rw-r--r--resources/vue/components/courseware/CoursewareStructuralElementDialogImport.vue4
-rw-r--r--resources/vue/mixins/courseware/import.js22
3 files changed, 19 insertions, 11 deletions
diff --git a/resources/vue/components/courseware/CoursewareShelfDialogImport.vue b/resources/vue/components/courseware/CoursewareShelfDialogImport.vue
index 171f34d..cc8e100 100644
--- a/resources/vue/components/courseware/CoursewareShelfDialogImport.vue
+++ b/resources/vue/components/courseware/CoursewareShelfDialogImport.vue
@@ -115,7 +115,9 @@
{{ importStructuresState }}
</div>
</fieldset>
- <fieldset v-show="importErrors.length > 0">
+ </form>
+ <form v-if="importErrors.length > 0" class="default" @submit.prevent="">
+ <fieldset>
<legend>{{$gettext('Fehlermeldungen')}}</legend>
<ul>
<li v-for="(error, index) in importErrors" :key="index"> {{error}} </li>
diff --git a/resources/vue/components/courseware/CoursewareStructuralElementDialogImport.vue b/resources/vue/components/courseware/CoursewareStructuralElementDialogImport.vue
index 4ce202e..3c3974d 100644
--- a/resources/vue/components/courseware/CoursewareStructuralElementDialogImport.vue
+++ b/resources/vue/components/courseware/CoursewareStructuralElementDialogImport.vue
@@ -61,7 +61,9 @@
{{ importStructuresState }}
</div>
</fieldset>
- <fieldset v-show="importErrors.length > 0">
+ </form>
+ <form v-if="importErrors.length > 0" class="default" @submit.prevent="">
+ <fieldset>
<legend>{{$gettext('Fehlermeldungen')}}</legend>
<ul>
<li v-for="(error, index) in importErrors" :key="index"> {{error}} </li>
diff --git a/resources/vue/mixins/courseware/import.js b/resources/vue/mixins/courseware/import.js
index 4b46ab8..a7c9420 100644
--- a/resources/vue/mixins/courseware/import.js
+++ b/resources/vue/mixins/courseware/import.js
@@ -168,22 +168,24 @@ export default {
if (element.length) {
for (var i = 0; i < element.length; i++) {
this.setImportStructuresState(this.$gettext('Lege Seite an:') + ' ' + element[i].attributes.title);
+ let new_element = null;
try {
await this.createStructuralElement({
attributes: element[i].attributes,
parentId: parent_id,
currentId: parent_id,
});
+ new_element = this.lastCreatedElements;
} catch(error) {
this.currentImportErrors.push(this.$gettext('Seite konnte nicht erstellt werden') + ': '
+ element.attributes.title);
-
- continue;
}
this.importElementCounter++;
-
- let new_element = this.lastCreatedElements;
+ if (new_element === null) {
+ continue;
+ }
+
if (element[i].imageId) {
await this.setStructuralElementImage(new_element, element[i].imageId, files);
@@ -221,30 +223,32 @@ export default {
async importContainer(container, structuralElement, files) {
this.setImportStructuresState(this.$gettext('Lege Abschnitt an:') + ' ' + container.attributes.title);
+ let new_container = null;
try {
await this.createContainer({
attributes: container.attributes,
structuralElementId: structuralElement.id,
});
-
+ new_container = this.lastCreatedContainers;
} catch(error) {
this.currentImportErrors.push(this.$gettext('Abschnitt konnte nicht erstellt werden') + ': '
+ structuralElement.attributes.title + '→'
+ container.attributes.title);
-
- return null;
}
this.importElementCounter++;
- let new_container = this.lastCreatedContainers;
+ if (new_container === null) {
+ return null;
+ }
+
await this.unlockObject({ id: new_container.id, type: 'courseware-containers' });
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, structuralElement);
+ this.importElementCounter++;
if (new_block !== null) {
- this.importElementCounter++;
try {
await this.updateContainerPayload(new_container, structuralElement.id, container.blocks[k].id, new_block.id);
} catch(error) {