Skip to content

✨ feat(notifications): bouton "Tout marquer comme lu" dans le dropdown - #554

Merged
ronan-develop merged 1 commit into
mainfrom
feat/533-mark-all-notifications-read
Sep 30, 2026
Merged

ronan-develop merged 1 commit into
mainfrom
feat/533-mark-all-notifications-read

Conversation

@ronan-develop

Copy link
Copy Markdown
Owner

Résumé

Jusqu'ici le marquage lu se faisait au cas par cas (un message direct via POST /direct-messages/{id}/read, ou tout le changelog via POST /changelog/mark-viewed) — rien n'orchestrait les deux en une seule action pour vider le badge en un clic.

  • DirectMessageRepository::markAllAsReadForRecipient() : UPDATE bulk plutôt qu'un foreach + flush par message.
  • NotificationMarkAllReadWebController (POST /notifications/mark-all-read) : orchestre lastChangelogViewedAt + readAt en un seul appel.
  • Bouton en en-tête du dropdown, vide le panel entier et retire le badge (réutilise _removeAfter déjà en place pour un item unique, généralisé à une liste).

Test plan

  • DirectMessageRepositoryTest : marque tous les non-lus, n'affecte pas les autres destinataires, n'écrase pas un readAt déjà présent
  • NotificationMarkAllReadWebControllerTest : accès anonyme refusé, changelog marqué, messages marqués, isolation entre utilisateurs
  • notifications-controller.test.js : appel de l'endpoint, items retirés du DOM, badge retiré
  • Suite complète : 1384 tests PHP + 173 tests JS verts, aucune régression

Closes #533

Jusqu'ici le marquage lu se faisait au cas par cas (un message direct ou
tout le changelog séparément) — rien n'orchestrait les deux en une seule
action pour vider le badge en un clic.

DirectMessageRepository::markAllAsReadForRecipient() (UPDATE bulk plutôt
qu'un foreach + flush par message), NotificationMarkAllReadWebController
(POST /notifications/mark-all-read, orchestre lastChangelogViewedAt +
readAt), bouton en en-tête du dropdown qui vide le panel entier et retire
le badge (réutilise _removeAfter déjà en place pour un item unique).

Closes #533
@ronan-develop ronan-develop added this to the Pre Prod milestone Sep 30, 2026
@ronan-develop ronan-develop added feature Nouvelle fonctionnalité frontend CSS, Twig, Stimulus, JS labels Sep 30, 2026
@ronan-develop ronan-develop self-assigned this Sep 30, 2026
@ronan-develop
ronan-develop merged commit 41f2c7e into main Sep 30, 2026
3 checks passed
@ronan-develop
ronan-develop deleted the feat/533-mark-all-notifications-read branch September 30, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Nouvelle fonctionnalité frontend CSS, Twig, Stimulus, JS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bouton « Tout marquer comme lu » dans le dropdown de notifications

1 participant