From 0d7689f13a267826db6083a7b00e8f41aafca25f Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Tue, 4 Nov 2025 20:38:45 +0000 Subject: [PATCH] adventskalender/shared/js/door-open.js aktualisiert --- adventskalender/shared/js/door-open.js | 72 ++++++++------------------ 1 file changed, 23 insertions(+), 49 deletions(-) diff --git a/adventskalender/shared/js/door-open.js b/adventskalender/shared/js/door-open.js index 7595919..baa6fad 100644 --- a/adventskalender/shared/js/door-open.js +++ b/adventskalender/shared/js/door-open.js @@ -1,61 +1,35 @@ -// Öffnungslogik für Einzeltüren -document.querySelectorAll(".door").forEach(door => { - door.addEventListener("click", () => { - const day = door.dataset.day; +document.querySelectorAll(".door, .fluegel").forEach(elem => { + elem.addEventListener("click", () => { + const day = elem.dataset.day; const openfield = document.querySelector(`.openfield[data-day="${day}"]`); - if (door.classList.contains("double")) { - if (door.classList.contains("open")) { - console.log(`Doppeltür ${day} erneut geöffnet`); + // === EINZELTÜR-LOGIK === + if (elem.classList.contains("door")) { + if (elem.classList.contains("open")) { + console.log(`Tür ${day} erneut geöffnet`); return; } - door.classList.add("open"); - - const leftFluegel = door.querySelector(".fluegel.left"); - const rightFluegel = door.querySelector(".fluegel.right"); - - if (leftFluegel) leftFluegel.classList.add("open"); - if (rightFluegel) rightFluegel.classList.add("open"); + elem.classList.add("open"); if (openfield) openfield.classList.add("open"); return; } - if (door.classList.contains("open")) { - console.log(`Tür ${day} erneut geöffnet`); - return; + // === DOPPELFLÜGEL-LOGIK === + if (elem.classList.contains("fluegel")) { + // bereits geöffnet? + 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 (openfield) openfield.classList.add("open"); } - - door.classList.add("open"); - if (openfield) openfield.classList.add("open"); - }); -}); - - -document.querySelectorAll(".fluegel").forEach(flügel => { - flügel.addEventListener("click", () => { - const day = flügel.dataset.day; - - const fluegelLeft = document.querySelector(`.fluegel.left[data-day="${day}"]`); - const fluegelRight = document.querySelector(`.fluegel.right[data-day="${day}"]`); - const openfield = document.querySelector(`.openfield[data-day="${day}"]`); - - // Abbruch wenn beide schon offen - if (fluegelLeft?.classList.contains("open") && fluegelRight?.classList.contains("open")) { - console.log(`Doppeltür ${day} bereits geöffnet`); - return; - } - - // Öffne gezielt nur, wenn noch nicht offen - if (!fluegelLeft?.classList.contains("open")) { - fluegelLeft?.classList.add("open"); - } - - if (!fluegelRight?.classList.contains("open")) { - fluegelRight?.classList.add("open"); - } - - // Openfield aktivieren - openfield?.classList.add("open"); }); }); \ No newline at end of file