aboutsummaryrefslogtreecommitdiff
path: root/resources/vue/components/responsive
diff options
context:
space:
mode:
authorPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
committerPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
commit4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch)
tree5c07151ae61276d334e88f6309c30d439a85c12e /resources/vue/components/responsive
parentda0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff)
parent97a188592c679890a25c37ab78463add76a52ff7 (diff)
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'resources/vue/components/responsive')
-rw-r--r--resources/vue/components/responsive/ResponsiveContentBar.vue8
-rw-r--r--resources/vue/components/responsive/ResponsiveNavigation.vue22
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();