aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/lib
diff options
context:
space:
mode:
authorThomas Hackl <hackl@data-quest.de>2023-07-17 08:47:08 +0000
committerThomas Hackl <hackl@data-quest.de>2023-07-17 08:47:08 +0000
commit6f56f68447351021fd48d37fbf22c0ff7e896f3f (patch)
tree78e459eb8d44195119b578f6fbb59e8a3187bec0 /resources/assets/javascripts/lib
parent8e113deeb0cddaad2135f7f1d23a9d6c10e597f7 (diff)
Resolve "Forum: Schreiben von Beiträgen kaputt"
Closes #2919 and #2921 Merge request studip/studip!1968
Diffstat (limited to 'resources/assets/javascripts/lib')
-rw-r--r--resources/assets/javascripts/lib/sidebar.js23
1 files changed, 10 insertions, 13 deletions
diff --git a/resources/assets/javascripts/lib/sidebar.js b/resources/assets/javascripts/lib/sidebar.js
index 17362fa..17c96b9 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();
+ sObserver.observe(sidebar, options);
}
},
@@ -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.classList.add('fixed');
sidebar.style.top = '';
+ sidebar.classList.add('fixed');
} else if (mutation.oldValue && mutation.oldValue.indexOf('fixed') !== -1
&& !mutation.target.classList.contains('fixed')) {
- sidebar.classList.remove('fixed');
+ STUDIP.Sidebar.reset();
}
}
});
@@ -64,17 +64,18 @@ const Sidebar = {
* Observe if the footer is visible in viewport.
*/
const fObserver = new IntersectionObserver(STUDIP.Sidebar.footerVisible, options);
- fObserver.observe(document.getElementById('main-footer'));
+ fObserver.observe(document.getElementById('main-footer'), options);
},
reset() {
const sidebar = document.getElementById('sidebar');
if (sidebar) {
- sidebar.classList.remove('oversized', 'adjusted', 'fixed');
+ sidebar.classList.remove('oversized', 'was-oversized', 'fixed');
sidebar.style.top = '';
+ STUDIP.Sidebar.place();
+ STUDIP.Sidebar.observeSidebar();
}
- STUDIP.Sidebar.observe();
},
fits(entries, observer) {
@@ -85,7 +86,7 @@ const Sidebar = {
if (entry.isIntersecting) {
sidebar.classList.remove('oversized');
} else {
- sidebar.classList.add('oversized', 'adjusted');
+ sidebar.classList.add('oversized', 'was-oversized');
}
});
}
@@ -97,13 +98,9 @@ const Sidebar = {
entries.forEach(entry => {
// Footer is visible on current page.
if (entry.isIntersecting) {
- if (sidebar.classList.contains('no-footer')) {
- sidebar.classList.remove('no-footer');
- }
+ sidebar.classList.remove('no-footer');
} else {
- if (!sidebar.classList.contains('no-footer')) {
- sidebar.classList.add('no-footer');
- }
+ sidebar.classList.add('no-footer');
}
});
}