From 33229e8c2cf0d396303417d771db2558b5fa6132 Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Wed, 5 Nov 2025 16:36:07 +0000 Subject: [PATCH] adventskalender/shared/js/door-open.js aktualisiert --- adventskalender/shared/js/door-open.js | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/adventskalender/shared/js/door-open.js b/adventskalender/shared/js/door-open.js index baa6fad..19766ae 100644 --- a/adventskalender/shared/js/door-open.js +++ b/adventskalender/shared/js/door-open.js @@ -1,34 +1,39 @@ -document.querySelectorAll(".door, .fluegel").forEach(elem => { +// shared/js/door-open.js +// Bratonien Adventskalender – Öffnungslogik + +document.querySelectorAll(".door, .fluegel, .openfield").forEach(elem => { elem.addEventListener("click", () => { const day = elem.dataset.day; const openfield = document.querySelector(`.openfield[data-day="${day}"]`); + const doors = document.querySelectorAll(`.door[data-day="${day}"]`); + const fluegelLinks = document.querySelector(`.fluegel.left[data-day="${day}"]`); + const fluegelRechts = document.querySelector(`.fluegel.right[data-day="${day}"]`); - // === EINZELTÜR-LOGIK === - if (elem.classList.contains("door")) { - if (elem.classList.contains("open")) { + // === Einzeltür === + if (elem.classList.contains("door") || (elem.classList.contains("openfield") && doors.length > 0)) { + const door = doors[0]; + if (!door) return; + + if (door.classList.contains("open")) { console.log(`Tür ${day} erneut geöffnet`); return; } - elem.classList.add("open"); + door.classList.add("open"); if (openfield) openfield.classList.add("open"); return; } - // === DOPPELFLÜGEL-LOGIK === - if (elem.classList.contains("fluegel")) { - // bereits geöffnet? + // === Doppelflügeltür === + if (elem.classList.contains("fluegel") || (elem.classList.contains("openfield") && fluegelLinks && fluegelRechts)) { const alreadyOpen = document.querySelectorAll(`.fluegel[data-day="${day}"].rota`); if (alreadyOpen.length === 2) { console.log(`Flügeltür ${day} erneut geöffnet`); return; } - const left = document.querySelector(`.fluegel.left[data-day="${day}"]`); - const right = document.querySelector(`.fluegel.right[data-day="${day}"]`); - - if (left) left.classList.add("rota"); - if (right) right.classList.add("rota"); + if (fluegelLinks) fluegelLinks.classList.add("rota"); + if (fluegelRechts) fluegelRechts.classList.add("rota"); if (openfield) openfield.classList.add("open"); } });