aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2025-05-06 10:10:37 +0200
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2025-12-09 15:03:42 +0100
commitbc30111d8dbff3e8d9b030f9974b6b4c7c21b8e9 (patch)
treefc2ec3173e360826a5f9ead58bbcececcb63aa0b
parenta1548037cf0a99e46224a1a4c6c9f34ead3ae91f (diff)
Unsichtbare Courseware-Seiten sind erreichbar aber leer
Merge request studip/studip!4202
-rw-r--r--resources/vue/components/courseware/IndexApp.vue33
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: {