diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
|---|---|---|
| committer | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
| commit | 4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch) | |
| tree | 5c07151ae61276d334e88f6309c30d439a85c12e /resources/vue/components/responsive | |
| parent | da0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff) | |
| parent | 97a188592c679890a25c37ab78463add76a52ff7 (diff) | |
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'resources/vue/components/responsive')
| -rw-r--r-- | resources/vue/components/responsive/ResponsiveContentBar.vue | 8 | ||||
| -rw-r--r-- | resources/vue/components/responsive/ResponsiveNavigation.vue | 22 |
2 files changed, 13 insertions, 17 deletions
diff --git a/resources/vue/components/responsive/ResponsiveContentBar.vue b/resources/vue/components/responsive/ResponsiveContentBar.vue index d64ac52..eb6dd96 100644 --- a/resources/vue/components/responsive/ResponsiveContentBar.vue +++ b/resources/vue/components/responsive/ResponsiveContentBar.vue @@ -131,7 +131,11 @@ export default { .classList.add('contentbar-wrapper-right'); } - document.getElementById('responsive-contentbar-container').prepend(this.realContentbar); + const contentbarContainer = document.getElementById('responsive-contentbar-container'); + + contentbarContainer.prepend(this.realContentbar); + + document.getElementById('content-wrapper').style.marginTop = `${contentbarContainer.clientHeight}px`; } else { this.realContentbar.id = 'contentbar'; document.getElementById('toggle-sidebar').remove(); @@ -145,6 +149,8 @@ export default { } document.querySelector(this.realContentbarSource).prepend(this.realContentbar); + + document.getElementById('content-wrapper').style.marginTop = 'initial'; } } }, diff --git a/resources/vue/components/responsive/ResponsiveNavigation.vue b/resources/vue/components/responsive/ResponsiveNavigation.vue index 1c07e73..d9c391d 100644 --- a/resources/vue/components/responsive/ResponsiveNavigation.vue +++ b/resources/vue/components/responsive/ResponsiveNavigation.vue @@ -130,10 +130,6 @@ export default { type: String, default: '' }, - hasSidebar: { - type: Boolean, - default: true - }, navigation: { type: Object, required: true, @@ -162,6 +158,7 @@ export default { classObserver: null, dialogObserver: null, hasSkiplinks: document.querySelector('#skiplink_list') !== null, + hasSidebar: false, hasContentbar: false, contentbarTitle: '' } @@ -494,6 +491,8 @@ export default { } }, mounted() { + this.hasSidebar = document.querySelectorAll('#sidebar .sidebar-widget:not(#sidebar-navigation)').length > 0; + const cache = STUDIP.Cache.getInstance('responsive.'); const fullscreen = cache.get('fullscreen-mode') ?? false; const fullscreenDocument = document.documentElement.classList.contains('fullscreen-mode'); @@ -564,18 +563,6 @@ export default { attributeFilter: ['class'] }); - // Check for closed dialog, re-mounting the Vue component. - this.dialogObserver = new MutationObserver(mutations => { - if (mutations[0].removedNodes.length > 0 && - mutations[0].removedNodes[0].classList.contains('ui-widget-overlay')) { - document.getElementById('responsive-menu').replaceChildren(this.$el); - } - }); - - this.dialogObserver.observe(document.body, { - childList: true - }); - this.globalOn('has-contentbar', value => { this.hasContentbar = value; if (value && this.isFullscreen) { @@ -594,6 +581,9 @@ export default { attributeFilter: ['class'] }) }); + + // Check initial state after load + this.headerMagic = document.querySelector('body').classList.contains('fixed'); }, beforeDestroy() { this.classObserver.disconnect(); |
