aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2025-05-06 10:10:37 +0200
committerRon Lucke <lucke@elan-ev.de>2025-05-06 10:10:37 +0200
commit550423457789d0d2a52580b673571566dc38a77c (patch)
tree5dcce0fe1542af06cca1cab8b7c0f8bef0192a05 /resources
parent5a845caab93329aa1f8bd573e9a93b87361eae21 (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.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 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: {