Pop-Up für ab und anmeldung.
This commit is contained in:
parent
4fbabab800
commit
244f3b74b1
@ -110,6 +110,38 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="register-confirm-modal" class="modal">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h2>Ein Platz für dich am Tisch!</h2>
|
||||||
|
<button type="button" class="modal-close" onclick="closeRegisterModal()" aria-label="Popup schließen">×</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p>Schön, dass du dich dazu gesellen möchtest! Da dein:e Gastgeber:in extra für dich einkauft und mit viel Liebe kocht, ist deine Anmeldung ein festes Versprechen. Bitte sag nur zu, wenn du an dem Tag wirklich Zeit hast. So zeigst du echte Wertschätzung für die Mühe und wir lassen niemanden auf vollen Töpfen sitzen.</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer" style="display: flex; justify-content: flex-end; gap: 16px; margin-top: 24px;">
|
||||||
|
<button class="button-primary button--outline" type="button" onclick="closeRegisterModal()">Abbrechen</button>
|
||||||
|
<button class="button-primary" type="button" id="confirm-register-btn">Ja, ich bin dabei</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="unregister-confirm-modal" class="modal">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h2>Pläne haben sich geändert?</h2>
|
||||||
|
<button type="button" class="modal-close" onclick="closeUnregisterModal()" aria-label="Popup schließen">×</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p>Schade, dass du nicht dabei sein kannst! Aber manchmal kommt einfach etwas dazwischen. Wenn du dich jetzt abmeldest, gibst du deinen Stuhl am Tisch für jemand anderen aus der Community frei. So hilfst du bei der Planung und ein anderer Feinschmecker freut sich über den freien Platz.</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer" style="display: flex; justify-content: flex-end; gap: 16px; margin-top: 24px;">
|
||||||
|
<button class="button-primary button--outline" type="button" onclick="closeUnregisterModal()">Abbrechen</button>
|
||||||
|
<button class="button-primary button-primary-abmelden" type="button" id="confirm-unregister-btn">Ja, abmelden</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Snackbar: Feedback bei An-/Abmeldung -->
|
<!-- Snackbar: Feedback bei An-/Abmeldung -->
|
||||||
<div class="snackbar" id="snackbar"></div>
|
<div class="snackbar" id="snackbar"></div>
|
||||||
|
|
||||||
|
|||||||
@ -536,29 +536,55 @@
|
|||||||
: [];
|
: [];
|
||||||
const idSet = new Set(currentIds);
|
const idSet = new Set(currentIds);
|
||||||
|
|
||||||
// Abmeldung: Benutzer vom Event entfernen und Snackbar anzeigen.
|
// Anmelde-Modal öffnen
|
||||||
if (action === 'unregister') {
|
if (action === 'register' && !isFull && !isRegistrationClosed) {
|
||||||
idSet.delete(Number(event.id));
|
const modal = document.getElementById('register-confirm-modal');
|
||||||
const snackbar = document.getElementById('snackbar');
|
if (modal) {
|
||||||
if (snackbar) {
|
modal.classList.add('show');
|
||||||
snackbar.textContent = 'Du wurdest erfolgreich abgemeldet.';
|
document.getElementById('confirm-register-btn').onclick = () => {
|
||||||
snackbar.classList.add('snackbar--danger', 'snackbar--visible');
|
modal.classList.remove('show');
|
||||||
setTimeout(() => {
|
const map = getRegistrationMap();
|
||||||
snackbar.classList.remove('snackbar--visible');
|
const ids = new Set((map[currentUser.email] || []).map(id => Number(id)));
|
||||||
setTimeout(() => snackbar.classList.remove('snackbar--danger'), 400);
|
ids.add(Number(event.id));
|
||||||
}, 3000);
|
map[currentUser.email] = Array.from(ids);
|
||||||
|
setRegistrationMap(map);
|
||||||
|
const snackbar = document.getElementById('snackbar');
|
||||||
|
if (snackbar) {
|
||||||
|
snackbar.textContent = 'Du wurdest erfolgreich angemeldet.';
|
||||||
|
snackbar.classList.add('snackbar--visible');
|
||||||
|
setTimeout(() => snackbar.classList.remove('snackbar--visible'), 3000);
|
||||||
|
}
|
||||||
|
applyFilters();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Anmeldung: Benutzer zum Event hinzufügen und Snackbar anzeigen.
|
// Abmelde-Modal öffnen
|
||||||
if (action === 'register' && !isFull && !isRegistrationClosed) {
|
if (action === 'unregister') {
|
||||||
idSet.add(Number(event.id));
|
const modal = document.getElementById('unregister-confirm-modal');
|
||||||
const snackbar = document.getElementById('snackbar');
|
if (modal) {
|
||||||
if (snackbar) {
|
modal.classList.add('show');
|
||||||
snackbar.textContent = 'Du wurdest erfolgreich angemeldet.';
|
document.getElementById('confirm-unregister-btn').onclick = () => {
|
||||||
snackbar.classList.add('snackbar--visible');
|
modal.classList.remove('show');
|
||||||
setTimeout(() => snackbar.classList.remove('snackbar--visible'), 3000);
|
const map = getRegistrationMap();
|
||||||
|
const ids = new Set((map[currentUser.email] || []).map(id => Number(id)));
|
||||||
|
ids.delete(Number(event.id));
|
||||||
|
map[currentUser.email] = Array.from(ids);
|
||||||
|
setRegistrationMap(map);
|
||||||
|
const snackbar = document.getElementById('snackbar');
|
||||||
|
if (snackbar) {
|
||||||
|
snackbar.textContent = 'Du wurdest erfolgreich abgemeldet.';
|
||||||
|
snackbar.classList.add('snackbar--danger', 'snackbar--visible');
|
||||||
|
setTimeout(() => {
|
||||||
|
snackbar.classList.remove('snackbar--visible');
|
||||||
|
setTimeout(() => snackbar.classList.remove('snackbar--danger'), 400);
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
applyFilters();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
nextRegistrationMap[currentUser.email] = Array.from(idSet);
|
nextRegistrationMap[currentUser.email] = Array.from(idSet);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user