aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hackl <hackl@data-quest.de>2023-07-15 23:42:50 +0200
committerThomas Hackl <hackl@data-quest.de>2023-07-15 23:42:50 +0200
commit8e113deeb0cddaad2135f7f1d23a9d6c10e597f7 (patch)
tree4829f88c58fb5bf68ada7d3e590ccbb940537619
parentde66a9420c855b7032ce24d418b025c2cd4886e6 (diff)
check for sidebar existence, fixes #2918
-rw-r--r--resources/assets/javascripts/lib/sidebar.js38
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');
+ }
}
- }
- });
+ });
+ }
}
};