diff options
| author | Thomas Hackl <hackl@data-quest.de> | 2023-07-15 23:42:50 +0200 |
|---|---|---|
| committer | Thomas Hackl <hackl@data-quest.de> | 2023-07-15 23:42:50 +0200 |
| commit | 8e113deeb0cddaad2135f7f1d23a9d6c10e597f7 (patch) | |
| tree | 4829f88c58fb5bf68ada7d3e590ccbb940537619 | |
| parent | de66a9420c855b7032ce24d418b025c2cd4886e6 (diff) | |
check for sidebar existence, fixes #2918
| -rw-r--r-- | resources/assets/javascripts/lib/sidebar.js | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/resources/assets/javascripts/lib/sidebar.js b/resources/assets/javascripts/lib/sidebar.js index eefd317..17362fa 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'); + } } - } - }); + }); + } } }; |
