aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2025-02-17 08:10:58 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2025-02-17 08:10:58 +0000
commitec6af7e4d837dee9e33d179ed574d5c6b68a0359 (patch)
treed79175a8e2cf6c3f01937bfca5306bc47aff6f74
parent441c9469b257f535985dd45c5d48b15b578d9084 (diff)
check if sidebar elements are actually present before using them, fixes #5247
Closes #5247 Merge request studip/studip!3931
-rw-r--r--resources/vue/components/MyCourses.vue28
1 files changed, 24 insertions, 4 deletions
diff --git a/resources/vue/components/MyCourses.vue b/resources/vue/components/MyCourses.vue
index 1c244cb..85369c7 100644
--- a/resources/vue/components/MyCourses.vue
+++ b/resources/vue/components/MyCourses.vue
@@ -21,11 +21,17 @@
</studip-message-box>
<component v-else :is="displayComponent" :icon-size="iconSize"></component>
- <Teleport to="#tiled-courses-sidebar-switch .sidebar-widget-content .widget-list" name="sidebar-switch">
+ <Teleport v-if="hasSidebarElements"
+ to="#tiled-courses-sidebar-switch .sidebar-widget-content .widget-list"
+ name="sidebar-switch"
+ >
<MyCoursesSidebarSwitch />
</Teleport>
- <Teleport to="#tiled-courses-new-contents-toggle .sidebar-widget-content .widget-list" name="sidebar-content-toggle">
+ <Teleport v-if="hasSidebarElements"
+ to="#tiled-courses-new-contents-toggle .sidebar-widget-content .widget-list"
+ name="sidebar-content-toggle"
+ >
<MyCoursesNewContentToggle />
</Teleport>
</div>
@@ -47,6 +53,11 @@ export default {
MyCoursesSidebarSwitch,
MyCoursesNewContentToggle,
},
+ data() {
+ return {
+ hasSidebarElements: true,
+ };
+ },
computed: {
displayComponent () {
return this.displayedType === 'tiles'
@@ -70,8 +81,17 @@ export default {
}
},
beforeMount() {
- document.querySelector('#tiled-courses-sidebar-switch .widget-list').innerHTML = '';
- document.querySelector('#tiled-courses-new-contents-toggle .widget-list').innerHTML = '';
+ [
+ '#tiled-courses-sidebar-switch .widget-list',
+ '#tiled-courses-new-contents-toggle .widget-list'
+ ].forEach(selector => {
+ const element = document.querySelector(selector);
+ if (element) {
+ element.innerHTML = '';
+ } else {
+ this.hasSidebarElements = false;
+ }
+ })
}
}
</script>