diff options
| author | Ron Lucke <lucke@elan-ev.de> | 2025-05-06 10:10:37 +0200 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2025-12-09 15:03:42 +0100 |
| commit | bc30111d8dbff3e8d9b030f9974b6b4c7c21b8e9 (patch) | |
| tree | fc2ec3173e360826a5f9ead58bbcececcb63aa0b | |
| parent | a1548037cf0a99e46224a1a4c6c9f34ead3ae91f (diff) | |
Unsichtbare Courseware-Seiten sind erreichbar aber leer
Merge request studip/studip!4202
| -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 0bcf2f2..16f8f8a 100644 --- a/resources/vue/components/courseware/IndexApp.vue +++ b/resources/vue/components/courseware/IndexApp.vue @@ -34,7 +34,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> @@ -83,7 +91,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) { @@ -101,6 +110,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: { |
