From 8e113deeb0cddaad2135f7f1d23a9d6c10e597f7 Mon Sep 17 00:00:00 2001 From: Thomas Hackl <hackl@data-quest.de> Date: Sat, 15 Jul 2023 23:42:50 +0200 Subject: [PATCH] check for sidebar existence, fixes #2918 --- resources/assets/javascripts/lib/sidebar.js | 38 +++++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/resources/assets/javascripts/lib/sidebar.js b/resources/assets/javascripts/lib/sidebar.js index eefd317beaf..17362fa017c 100644 --- a/resources/assets/javascripts/lib/sidebar.js +++ b/resources/assets/javascripts/lib/sidebar.js @@ -2,8 +2,11 @@ const Sidebar = { place() { const header = document.getElementById('main-header'); - document.getElementById('sidebar').style.top = - header.offsetTop + header.offsetHeight + 'px'; + const sidebar = document.getElementById('sidebar'); + if (sidebar) { + sidebar.style.top = + header.offsetTop + header.offsetHeight + 'px'; + } }, observeSidebar() { @@ -16,8 +19,11 @@ const Sidebar = { /** * Observe if sidebar fits into viewport. */ - const sObserver = new IntersectionObserver(STUDIP.Sidebar.fits, options); - sObserver.observe(document.getElementById('sidebar')); + const sidebar = document.getElementById('sidebar'); + if (sidebar) { + const sObserver = new IntersectionObserver(STUDIP.Sidebar.fits, options); + sObserver.observe(); + } }, observeBody() { @@ -87,18 +93,20 @@ const Sidebar = { footerVisible(entries, observer) { const sidebar = document.getElementById('sidebar'); - entries.forEach(entry => { - // Footer is visible on current page. - if (entry.isIntersecting) { - if (sidebar.classList.contains('no-footer')) { - sidebar.classList.remove('no-footer'); - } - } else { - if (!sidebar.classList.contains('no-footer')) { - sidebar.classList.add('no-footer'); + if (sidebar) { + entries.forEach(entry => { + // Footer is visible on current page. + if (entry.isIntersecting) { + if (sidebar.classList.contains('no-footer')) { + sidebar.classList.remove('no-footer'); + } + } else { + if (!sidebar.classList.contains('no-footer')) { + sidebar.classList.add('no-footer'); + } } - } - }); + }); + } } }; -- GitLab