diff --git a/resources/vue/components/courseware/CoursewareStructuralElement.vue b/resources/vue/components/courseware/CoursewareStructuralElement.vue index 3afdac17404fe905675faf160547bdbc70eefbd8..6affaafdf40a69aaf3ce3b1ec427693832652af0 100755 --- a/resources/vue/components/courseware/CoursewareStructuralElement.vue +++ b/resources/vue/components/courseware/CoursewareStructuralElement.vue @@ -438,7 +438,7 @@ @confirm="publishCurrentElement" > <template v-slot:dialogContent> - <form class="default" @submit.prevent=""> + <form v-show="!oerExportRunning" class="default" @submit.prevent=""> <fieldset> <legend><translate>Grunddaten</translate></legend> <label> @@ -476,6 +476,11 @@ </label> </fieldset> </form> + <courseware-companion-box + v-show="oerExportRunning" + :msgCompanion="$gettext('Export läuft, bitte haben sie einen Moment Geduld...')" + mood="pointing" + /> </template> </studip-dialog> <studip-dialog @@ -581,7 +586,7 @@ export default { }, exportRunning: false, exportChildren: false, - pdfExportChildren: false, + oerExportRunning: false, oerChildren: true, containerList: [], isDragging: false, @@ -1250,7 +1255,13 @@ export default { }, async publishCurrentElement() { - this.exportToOER(this.currentElement, { withChildren: this.oerChildren }); + if (this.oerExportRunning) { + return; + } + this.oerExportRunning = true; + await this.exportToOER(this.currentElement, { withChildren: this.oerChildren }); + this.oerExportRunning = false; + this.showElementOerDialog(false); }, async closeDeleteDialog() { diff --git a/resources/vue/mixins/courseware/export.js b/resources/vue/mixins/courseware/export.js index 1eab732a951a676908c18cf97b4a3a1813fe00c2..ac325b8f839394901605597ada04d60172fc0ff8 100755 --- a/resources/vue/mixins/courseware/export.js +++ b/resources/vue/mixins/courseware/export.js @@ -187,6 +187,9 @@ export default { headers: { "Content-Type": "multipart/form-data"} }).then( () => { this.companionInfo({ info: this.$gettextInterpolate('Die Seite wurde an %{ oerTitle } gesendet.', {oerTitle: this.oerTitle}) }); + }).catch(error => { + this.companionError({ info: this.$gettext('Beim Veröffentlichen der Seite ist ein Fehler aufgetreten.') }); + console.debug(error); }); },