as
This commit is contained in:
@@ -20,7 +20,6 @@ if (!isset($pageDescription) || !is_string($pageDescription)) {
|
|||||||
$pageDescription = '';
|
$pageDescription = '';
|
||||||
}
|
}
|
||||||
if (function_exists('tpl_add_script')) {
|
if (function_exists('tpl_add_script')) {
|
||||||
tpl_add_script('/assets/js/header-user-menu.js', 'footer', true, false, '', null);
|
|
||||||
tpl_add_script('/assets/js/header.js', 'footer', true, false, '', null);
|
tpl_add_script('/assets/js/header.js', 'footer', true, false, '', null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
// public/assets/js/header.js
|
// public/assets/js/header.js
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
// -------------------------
|
// --------------------------------------------------
|
||||||
// Login-Button
|
// LOGIN-BUTTON → /login mit redirect + lang
|
||||||
// -------------------------
|
// --------------------------------------------------
|
||||||
const loginBtn = document.getElementById('loginButton');
|
const loginBtn = document.getElementById('loginButton');
|
||||||
|
|
||||||
if (loginBtn) {
|
if (loginBtn) {
|
||||||
@@ -39,9 +38,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------
|
// --------------------------------------------------
|
||||||
// Avatar-Menü ein-/ausblenden
|
// AVATAR-MENÜ (userAvatar / userMenu)
|
||||||
// -------------------------
|
// --------------------------------------------------
|
||||||
const avatarBtn = document.getElementById('userAvatar');
|
const avatarBtn = document.getElementById('userAvatar');
|
||||||
const userMenu = document.getElementById('userMenu');
|
const userMenu = document.getElementById('userMenu');
|
||||||
|
|
||||||
@@ -56,21 +55,23 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
|
|
||||||
// Klick außerhalb schließt Menü
|
// Klick außerhalb schließt Menü
|
||||||
document.addEventListener('click', function (event) {
|
document.addEventListener('click', function (event) {
|
||||||
if (!userMenu.classList.contains('hidden')) {
|
if (userMenu.classList.contains('hidden')) {
|
||||||
const clickedInsideMenu = userMenu.contains(event.target);
|
return;
|
||||||
const clickedAvatarButton = avatarBtn.contains(event.target);
|
}
|
||||||
|
|
||||||
if (!clickedInsideMenu && !clickedAvatarButton) {
|
const clickedInsideMenu = userMenu.contains(event.target);
|
||||||
userMenu.classList.add('hidden');
|
const clickedAvatarButton = avatarBtn.contains(event.target);
|
||||||
avatarBtn.setAttribute('aria-expanded', 'false');
|
|
||||||
}
|
if (!clickedInsideMenu && !clickedAvatarButton) {
|
||||||
|
userMenu.classList.add('hidden');
|
||||||
|
avatarBtn.setAttribute('aria-expanded', 'false');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------
|
// --------------------------------------------------
|
||||||
// Logout-Modal
|
// LOGOUT-MODAL
|
||||||
// -------------------------
|
// --------------------------------------------------
|
||||||
const logoutButtons = document.querySelectorAll('[data-logout-link="true"]');
|
const logoutButtons = document.querySelectorAll('[data-logout-link="true"]');
|
||||||
const backdrop = document.getElementById('logoutModalBackdrop');
|
const backdrop = document.getElementById('logoutModalBackdrop');
|
||||||
const btnConfirm = document.getElementById('logoutConfirm');
|
const btnConfirm = document.getElementById('logoutConfirm');
|
||||||
@@ -99,7 +100,10 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
const href = btn.getAttribute('data-logout-href') || btn.getAttribute('href') || '/auth/logout';
|
const href = btn.getAttribute('data-logout-href')
|
||||||
|
|| btn.getAttribute('href')
|
||||||
|
|| '/auth/logout';
|
||||||
|
|
||||||
showLogoutModal(href);
|
showLogoutModal(href);
|
||||||
|
|
||||||
// Avatar-Menü beim Öffnen des Modals schließen
|
// Avatar-Menü beim Öffnen des Modals schließen
|
||||||
@@ -126,9 +130,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
hideLogoutModal();
|
hideLogoutModal();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Klick auf Hintergrund schließt Modal
|
// Klick auf Hintergrund schließt Modal (außer man klickt auf die Card)
|
||||||
backdrop.addEventListener('click', function (event) {
|
backdrop.addEventListener('click', function (event) {
|
||||||
const card = backdrop.querySelector('div.w-full.max-w-sm');
|
const card = backdrop.querySelector('.max-w-sm');
|
||||||
if (card && !card.contains(event.target)) {
|
if (card && !card.contains(event.target)) {
|
||||||
hideLogoutModal();
|
hideLogoutModal();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user