diff options
| author | Ron Lucke <lucke@elan-ev.de> | 2025-05-06 10:10:37 +0200 |
|---|---|---|
| committer | Ron Lucke <lucke@elan-ev.de> | 2025-05-06 10:10:37 +0200 |
| commit | 550423457789d0d2a52580b673571566dc38a77c (patch) | |
| tree | 5dcce0fe1542af06cca1cab8b7c0f8bef0192a05 /resources | |
| parent | 5a845caab93329aa1f8bd573e9a93b87361eae21 (diff) | |
Unsichtbare Courseware-Seiten sind erreichbar aber leer
Merge request studip/studip!4202
Diffstat (limited to 'resources')
| -rw-r--r-- | resources/vue/components/courseware/IndexApp.vue | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/resources/vue/components/courseware/IndexApp.vue b/resources/vue/components/courseware/IndexApp.vue index 53238b4..96643a2 100644 --- a/resources/vue/components/courseware/IndexApp.vue +++ b/resources/vue/components/courseware/IndexApp.vue @@ -25,7 +25,15 @@ v-if="structureLoadingState === 'error'" mood="sad" :msgCompanion="loadingErrorMessage" - /> + > + <template #companionActions> + <a :href="rootElementUrl"> + <button class="button"> + {{ $gettext('Erste Seite aufrufen') }} + </button> + </a> + </template> + </courseware-companion-box> <courseware-companion-overlay /> </div> </template> @@ -69,7 +77,8 @@ export default { structuralElements: 'courseware-structural-elements/all', structuralElementById: 'courseware-structural-elements/byId', userId: 'userId', - userIsTeacher: 'userIsTeacher' + userIsTeacher: 'userIsTeacher', + instanceById: 'courseware-instances/byId', }), loadingErrorMessage() { switch (this.loadingErrorStatus) { @@ -87,6 +96,26 @@ export default { } return false; + }, + currentInstance() { + return this.instanceById({ id: `course_${this.context.id}_${this.context.unit}`}); + }, + rootElementId() { + return this.currentInstance.relationships.root.data.id; + }, + rootElementUrl() { + if (this.context.type === 'users') { + return STUDIP.URLHelper.getURL( + `dispatch.php/contents/courseware/courseware/${this.context.unit }/${this.context.id}#/structural_element/${this.rootElementId}` + ); + } + if (this.context.type === 'courses') { + return STUDIP.URLHelper.getURL( + `dispatch.php/course/courseware/courseware/${this.context.unit }/${this.context.id}#/structural_element/${this.rootElementId}` + ); + } + + return ''; } }, methods: { |
