Doppelklick auf „Löschen“ in Bestätigungsdialogen löst die Aktion zweimal aus #106

Open
opened 2026-10-18 13:38:40 +00:00 by claude · 1 comment
Collaborator

Gefunden im Review von #96 (18.10.), im Browser nachgestellt (Dev, Löschaufruf abgefangen):

Content → Redaktion → Events → Löschen → im Dialog Doppelklick auf „Löschen“ schickt zwei DELETE /api/events/{id} und zeigt zwei Toasts „Event gelöscht“. Gegen den echten Server gibt der zweite Aufruf 404, man sieht also „Event gelöscht“ und gleich danach „Löschen fehlgeschlagen“.

Das betrifft nicht eine Stelle, sondern das Muster: AlertDialogAction ist ein gewöhnlicher Knopf, der während der laufenden Aktion klickbar bleibt. Es gibt rund 22 Bestätigungsdialoge in Portal und Content (Löschen von Vereinen, Spielern, Benutzern, Artikeln, Dokumenten, Events; Captain „Alle ablehnen“, „Termin aufheben“ u.a.). Ältere Nutzer klicken Knöpfe oft doppelt.

Vorschlag: an einer Stelle lösen, in components/ui/alert-dialog.tsx beider SPAs: Der Bestätigen-Knopf sperrt sich selbst, solange die Aktion läuft (gibt onClick ein Promise zurück, bis es erledigt ist). Nicht in jedem Dialog einzeln.

Prüfen: Doppelklick auf Bestätigen → genau ein Aufruf, ein Toast.

Gefunden im Review von #96 (18.10.), im Browser nachgestellt (Dev, Löschaufruf abgefangen): **Content → Redaktion → Events → Löschen → im Dialog Doppelklick auf „Löschen“** schickt zwei `DELETE /api/events/{id}` und zeigt zwei Toasts „Event gelöscht“. Gegen den echten Server gibt der zweite Aufruf 404, man sieht also „Event gelöscht“ und gleich danach „Löschen fehlgeschlagen“. Das betrifft nicht eine Stelle, sondern das Muster: `AlertDialogAction` ist ein gewöhnlicher Knopf, der während der laufenden Aktion klickbar bleibt. Es gibt rund 22 Bestätigungsdialoge in Portal und Content (Löschen von Vereinen, Spielern, Benutzern, Artikeln, Dokumenten, Events; Captain „Alle ablehnen“, „Termin aufheben“ u.a.). Ältere Nutzer klicken Knöpfe oft doppelt. **Vorschlag:** an einer Stelle lösen, in `components/ui/alert-dialog.tsx` beider SPAs: Der Bestätigen-Knopf sperrt sich selbst, solange die Aktion läuft (gibt `onClick` ein Promise zurück, bis es erledigt ist). Nicht in jedem Dialog einzeln. Prüfen: Doppelklick auf Bestätigen → genau ein Aufruf, ein Toast.
Author
Collaborator

Ist in main (eaa55eb) und läuft auf Staging (2b1eb7a). Ein Doppelklick auf den Bestätigen-Knopf eines Rückfrage-Dialogs löst die Aktion jetzt nur noch einmal aus. Der Knopf bleibt gesperrt, bis die Aktion fertig ist.

So prüfen (Staging, als Admin):

  1. Portal → Verwaltung → Benutzer: einen Testbenutzer anlegen, dann beim Testbenutzer auf Löschen und im Dialog schnell doppelt auf „Löschen“ klicken. Erwartet: genau eine Meldung „Benutzer gelöscht“, keine Fehlermeldung danach.
  2. Portal → Verwaltung → Wettbewerbe veröffentlichen: bei einer veröffentlichten Halbserie auf „Zurücknehmen“ und im Dialog doppelt auf „Zurücknehmen“ klicken. Erwartet: genau eine Meldung „Veröffentlichung der Vorrunde zurückgenommen“ (bzw. Rückrunde/Cup). Danach mit einem einfachen Klick wieder „Veröffentlichen“.
  3. Content → Events: einen Test-Event anlegen, dann löschen und im Dialog doppelt auf „Löschen“ klicken. Erwartet: genau eine Meldung „Event gelöscht“.

Nicht Teil dieses Issues: Der Knopf „Veröffentlichen“ hat keinen Dialog und reagiert auf einen Doppelklick noch zweimal, das ist #107.

Ist in `main` (`eaa55eb`) und läuft auf Staging (`2b1eb7a`). Ein Doppelklick auf den Bestätigen-Knopf eines Rückfrage-Dialogs löst die Aktion jetzt nur noch einmal aus. Der Knopf bleibt gesperrt, bis die Aktion fertig ist. **So prüfen (Staging, als Admin):** 1. **Portal → Verwaltung → Benutzer:** einen Testbenutzer anlegen, dann beim Testbenutzer auf Löschen und im Dialog schnell **doppelt** auf „Löschen“ klicken. Erwartet: genau eine Meldung „Benutzer gelöscht“, keine Fehlermeldung danach. 2. **Portal → Verwaltung → Wettbewerbe veröffentlichen:** bei einer veröffentlichten Halbserie auf „Zurücknehmen“ und im Dialog **doppelt** auf „Zurücknehmen“ klicken. Erwartet: genau eine Meldung „Veröffentlichung der Vorrunde zurückgenommen“ (bzw. Rückrunde/Cup). Danach mit einem einfachen Klick wieder „Veröffentlichen“. 3. **Content → Events:** einen Test-Event anlegen, dann löschen und im Dialog **doppelt** auf „Löschen“ klicken. Erwartet: genau eine Meldung „Event gelöscht“. Nicht Teil dieses Issues: Der Knopf „Veröffentlichen“ hat keinen Dialog und reagiert auf einen Doppelklick noch zweimal, das ist #107.
Sign in to join this conversation.
No description provided.