From e6333ec432af995d19fad10803ab608280c5e9cf Mon Sep 17 00:00:00 2001 From: Thomas Hackl <hackl@data-quest.de> Date: Fri, 21 Jul 2023 15:07:46 +0200 Subject: [PATCH] =?UTF-8?q?Revert=20"Resolve=20"Forum:=20Schreiben=20von?= =?UTF-8?q?=20Beitr=C3=A4gen=20kaputt""?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 6f56f68447351021fd48d37fbf22c0ff7e896f3f. --- .../assets/javascripts/bootstrap/sidebar.js | 2 +- resources/assets/javascripts/lib/sidebar.js | 23 +++++++++++-------- .../assets/stylesheets/scss/sidebar.scss | 8 ++----- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/resources/assets/javascripts/bootstrap/sidebar.js b/resources/assets/javascripts/bootstrap/sidebar.js index df21f16acf7..5e89a7fc472 100644 --- a/resources/assets/javascripts/bootstrap/sidebar.js +++ b/resources/assets/javascripts/bootstrap/sidebar.js @@ -3,6 +3,7 @@ import eventBus from '../lib/event-bus.ts'; STUDIP.ready(() => { // Manually nudge sidebar under main header. STUDIP.Sidebar.place(); + STUDIP.Sidebar.observeBody(); STUDIP.Sidebar.observeFooter(); STUDIP.Sidebar.observeSidebar(); @@ -10,5 +11,4 @@ STUDIP.ready(() => { document.defaultView.addEventListener('resize',() => { STUDIP.Sidebar.reset(); }); - }); diff --git a/resources/assets/javascripts/lib/sidebar.js b/resources/assets/javascripts/lib/sidebar.js index 17c96b90a3b..17362fa017c 100644 --- a/resources/assets/javascripts/lib/sidebar.js +++ b/resources/assets/javascripts/lib/sidebar.js @@ -22,7 +22,7 @@ const Sidebar = { const sidebar = document.getElementById('sidebar'); if (sidebar) { const sObserver = new IntersectionObserver(STUDIP.Sidebar.fits, options); - sObserver.observe(sidebar, options); + sObserver.observe(); } }, @@ -36,11 +36,11 @@ const Sidebar = { for (const mutation of mutations) { if ((!mutation.oldValue || mutation.oldValue.indexOf('fixed') === -1) && mutation.target.classList.contains('fixed')) { - sidebar.style.top = ''; sidebar.classList.add('fixed'); + sidebar.style.top = ''; } else if (mutation.oldValue && mutation.oldValue.indexOf('fixed') !== -1 && !mutation.target.classList.contains('fixed')) { - STUDIP.Sidebar.reset(); + sidebar.classList.remove('fixed'); } } }); @@ -64,18 +64,17 @@ const Sidebar = { * Observe if the footer is visible in viewport. */ const fObserver = new IntersectionObserver(STUDIP.Sidebar.footerVisible, options); - fObserver.observe(document.getElementById('main-footer'), options); + fObserver.observe(document.getElementById('main-footer')); }, reset() { const sidebar = document.getElementById('sidebar'); if (sidebar) { - sidebar.classList.remove('oversized', 'was-oversized', 'fixed'); + sidebar.classList.remove('oversized', 'adjusted', 'fixed'); sidebar.style.top = ''; - STUDIP.Sidebar.place(); - STUDIP.Sidebar.observeSidebar(); } + STUDIP.Sidebar.observe(); }, fits(entries, observer) { @@ -86,7 +85,7 @@ const Sidebar = { if (entry.isIntersecting) { sidebar.classList.remove('oversized'); } else { - sidebar.classList.add('oversized', 'was-oversized'); + sidebar.classList.add('oversized', 'adjusted'); } }); } @@ -98,9 +97,13 @@ const Sidebar = { entries.forEach(entry => { // Footer is visible on current page. if (entry.isIntersecting) { - sidebar.classList.remove('no-footer'); + if (sidebar.classList.contains('no-footer')) { + sidebar.classList.remove('no-footer'); + } } else { - sidebar.classList.add('no-footer'); + if (!sidebar.classList.contains('no-footer')) { + sidebar.classList.add('no-footer'); + } } }); } diff --git a/resources/assets/stylesheets/scss/sidebar.scss b/resources/assets/stylesheets/scss/sidebar.scss index d03ede60577..60114c7dbab 100644 --- a/resources/assets/stylesheets/scss/sidebar.scss +++ b/resources/assets/stylesheets/scss/sidebar.scss @@ -1,7 +1,7 @@ #sidebar { + background: $white; border-left: 0; display: inline-block; - height: max-content; margin-bottom: $page-margin + 35px; margin-top: 15px; padding: 0 5px 7px 15px; @@ -11,11 +11,7 @@ width: $sidebar-width; z-index: 2; - &.fixed { - top: 55px; - } - - &.was-oversized { + &.adjusted { height: calc(100vh - 265px); position: fixed; overflow-x: hidden; -- GitLab