From 7a3512521230872a7df6fbf13251a581c692ec18 Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Wed, 5 Nov 2025 17:38:48 +0000 Subject: [PATCH] adventskalender/shared/js/door-open.js aktualisiert --- adventskalender/shared/js/door-open.js | 69 ++++++++++++-------------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/adventskalender/shared/js/door-open.js b/adventskalender/shared/js/door-open.js index 45be065..3162f63 100644 --- a/adventskalender/shared/js/door-open.js +++ b/adventskalender/shared/js/door-open.js @@ -1,49 +1,44 @@ -document.querySelectorAll(".door, .fluegel").forEach(elem => { +// Adventskalender 2025 – Türlogik (inkl. Popup) + +document.querySelectorAll(".door, .fluegel, .openfield").forEach(elem => { elem.addEventListener("click", () => { const day = elem.dataset.day; const openfield = document.querySelector(`.openfield[data-day="${day}"]`); - const gifts = window.gifts || {}; // globale Geschenk-Liste (aus popup.js) - const gift = gifts[day] || "

Heute ist noch nichts freigeschaltet.

"; + const doors = document.querySelectorAll(`.door[data-day="${day}"]`); + const fluegelLeft = document.querySelector(`.fluegel.left[data-day="${day}"]`); + const fluegelRight = document.querySelector(`.fluegel.right[data-day="${day}"]`); - // === EINZELTÜR === - if (elem.classList.contains("door")) { - elem.classList.toggle("open"); - if (openfield) openfield.classList.toggle("open"); - showGiftPopup(gift); + // === EINZELTÜR-LOGIK === + if (elem.classList.contains("door") || (openfield && doors.length)) { + const door = doors[0]; + if (!door.classList.contains("open")) { + door.classList.add("open"); + if (openfield) openfield.classList.add("open"); + console.log(`Tür ${day} geöffnet`); + } else { + console.log(`Tür ${day} erneut geöffnet`); + } + + if (typeof openPopup === "function") openPopup(day); return; } - // === DOPPELFLÜGEL === - if (elem.classList.contains("fluegel")) { - const left = document.querySelector(`.fluegel.left[data-day="${day}"]`); - const right = document.querySelector(`.fluegel.right[data-day="${day}"]`); + // === FLÜGEL-TÜR-LOGIK === + if (elem.classList.contains("fluegel") || (openfield && fluegelLeft && fluegelRight)) { + const left = fluegelLeft; + const right = fluegelRight; - if (left && right) { - left.classList.toggle("rota"); - right.classList.toggle("rota"); + if (!left.classList.contains("rota") || !right.classList.contains("rota")) { + if (left) left.classList.add("rota"); + if (right) right.classList.add("rota"); + if (openfield) openfield.classList.add("open"); + console.log(`Flügeltür ${day} geöffnet`); + } else { + console.log(`Flügeltür ${day} erneut geöffnet`); } - if (openfield) openfield.classList.toggle("open"); - showGiftPopup(gift); + + if (typeof openPopup === "function") openPopup(day); + return; } }); -}); - -/* === Popup-Funktion === */ -function showGiftPopup(html) { - const overlay = document.getElementById("popup-overlay"); - const content = document.getElementById("popup-content"); - if (!overlay || !content) return; - content.innerHTML = html; - overlay.style.display = "flex"; -} - -/* === Schließen-Logik (einmalig) === */ -document.addEventListener("DOMContentLoaded", () => { - const overlay = document.getElementById("popup-overlay"); - const closeBtn = document.getElementById("popup-close"); - if (!overlay || !closeBtn) return; - closeBtn.addEventListener("click", () => (overlay.style.display = "none")); - overlay.addEventListener("click", e => { - if (e.target === overlay) overlay.style.display = "none"; - }); }); \ No newline at end of file