From 97badadfc5e6b62c633252a17787268d0f4fa218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Estelle=20K=C3=B6hler?= Date: Sun, 26 Apr 2026 10:49:53 +0200 Subject: [PATCH] =?UTF-8?q?Event=20absagen=20snackbar=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/event_detail.js | 14 ++++++++------ js/my_profil.js | 16 ++++++++++++---- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/js/event_detail.js b/js/event_detail.js index 9e0cd1c..82222f5 100644 --- a/js/event_detail.js +++ b/js/event_detail.js @@ -521,9 +521,10 @@ renderDetailPage(event); }; - document.getElementById('unregister-modal-close').onclick = () => modal.classList.remove('show'); - document.getElementById('unregister-modal-cancel').onclick = () => modal.classList.remove('show'); - modal.addEventListener('click', e => { if (e.target === modal) modal.classList.remove('show'); }); + const closeUnregister = () => modal.classList.remove('show'); + document.getElementById('unregister-modal-close')?.addEventListener('click', closeUnregister); + document.getElementById('unregister-modal-cancel')?.addEventListener('click', closeUnregister); + modal.addEventListener('click', e => { if (e.target === modal) closeUnregister(); }); } else if (!isFull && !isRegistrationClosed) { const modal = document.getElementById('register-confirm-modal'); @@ -545,9 +546,10 @@ renderDetailPage(event); }; - document.getElementById('register-modal-close').onclick = () => modal.classList.remove('show'); - document.getElementById('register-modal-cancel').onclick = () => modal.classList.remove('show'); - modal.addEventListener('click', e => { if (e.target === modal) modal.classList.remove('show'); }); + const closeRegister = () => modal.classList.remove('show'); + document.getElementById('register-modal-close')?.addEventListener('click', closeRegister); + document.getElementById('register-modal-cancel')?.addEventListener('click', closeRegister); + modal.addEventListener('click', e => { if (e.target === modal) closeRegister(); }); } }); } diff --git a/js/my_profil.js b/js/my_profil.js index a13fcfc..71d3b14 100644 --- a/js/my_profil.js +++ b/js/my_profil.js @@ -291,11 +291,20 @@ modal.classList.remove('show'); }; - document.getElementById('confirmCancelEventBtn').addEventListener('click', function() { + document.getElementById('confirmCancelEventBtn').addEventListener('click', function() { if (pendingCancelEventId !== null && currentUser?.email) { cancelHostedEvent(pendingCancelEventId, currentUser.email); } closeCancelEventModal(); + const snackbar = document.getElementById('snackbar'); + if (snackbar) { + snackbar.textContent = 'Dein Event wurde erfolgreich abgesagt.'; + snackbar.classList.add('snackbar--danger', 'snackbar--visible'); + setTimeout(() => { + snackbar.classList.remove('snackbar--visible'); + setTimeout(() => snackbar.classList.remove('snackbar--danger'), 400); + }, 3000); + } }); // Schliesst das Modal bei Klick ausserhalb des Inhalts. @@ -335,7 +344,7 @@ } // Entfernt eine Event-ID aus der Benutzerliste und aktualisiert die UI sofort. - function unregisterFromEvent(eventId, userEmail) { + function unregisterFromEvent(eventId, userEmail) { const registrationMap = getRegistrationMap(); const currentIds = Array.isArray(registrationMap[userEmail]) ? registrationMap[userEmail] : []; const nextIds = currentIds @@ -346,11 +355,10 @@ setRegistrationMap(registrationMap); renderMyRegistrations(allEvents, currentUser); - + } // Validiert Profildaten konsistent und liefert true/false zur Submit-Steuerung. function validateProfileForm() { - let isValid = true; const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;