Confirmer la suppression du message – Ajouter une boîte de dialogue de confirmation avant de supprimer les messages

:information_source: Résumé Un composant de thème léger qui demande une confirmation avant de supprimer un message
:hammer_and_wrench: Dépôt GitHub - scavin/discourse-confirm-delete · GitHub
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Vous débutez avec les thèmes Discourse ? Guide pour les débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Je partage un petit composant de thème qui ajoute une étape de confirmation avant la suppression d’un message.

Par défaut, cliquer sur le bouton de suppression exécute immédiatement l’action de suppression standard de Discourse. Ce composant affiche d’abord la boîte de dialogue de confirmation de danger native de Discourse, aidant ainsi à prévenir les suppressions accidentelles.

Que fait-il ?

Lorsqu’un utilisateur clique sur le bouton Supprimer d’un message, le composant affiche une boîte de dialogue de confirmation :

Supprimer le message
Êtes-vous sûr de vouloir supprimer ce message ?

Les actions disponibles sont :

  • Annuler — ferme la boîte de dialogue sans rien faire
  • Supprimer — poursuit avec l’action de suppression originale de Discourse

Fonctionnalités clés

:white_check_mark: Utilise l’interface de dialogue native de Discourse
:white_check_mark: Utilise un bouton Supprimer de style danger en rouge
:white_check_mark: Préserve le comportement de suppression original de Discourse
:white_check_mark: Ne modifie pas les vérifications de permissions
:white_check_mark: Ne modifie pas le noyau Discourse
:white_check_mark: Aucun plugin requis
:white_check_mark: Pas de jQuery ni de window.confirm()
:white_check_mark: Pas de simulation de clic DOM
:white_check_mark: Fonctionne sur desktop et mobile
:white_check_mark: Traductions en anglais et en chinois simplifié
:white_check_mark: Les autres langues repassent sur l’anglais
:white_check_mark: Les administrateurs peuvent remplacer le texte via les traductions de thème

Comment ça marche

Le composant utilise les API frontend officielles de Discourse :

  • apiInitializer
  • le transformateur de valeur post-menu-buttons
  • le service intégré dialog.deleteConfirm()

Il remplace le composant du bouton Supprimer du menu du message par un petit wrapper. Après confirmation, le wrapper appelle l’action originale deletePost.

Cela signifie que le composant ne réimplémente pas la suppression, ne fait pas sa propre requête API, et ne contourne pas la logique d’autorisation existante de Discourse.

Après l’installation :

  1. Ouvrez le composant dans Admin → Personnaliser → Thèmes
  2. Ajoutez-le aux thèmes où il doit être activé
  3. Rafraîchissez la page du sujet
  4. Cliquez sur le bouton Supprimer d’un message pour tester la boîte de dialogue de confirmation

Traductions

Le composant inclut actuellement :

  • Anglais (en)
  • Chinois simplifié (zh_CN)

Le titre de la boîte de dialogue, le message, le bouton Annuler et le bouton Supprimer utilisent tous des clés de traduction de thème. Les traductions supplémentaires sont les bienvenues.

Compatibilité

Conçu pour les versions actuelles de Discourse utilisant le menu de message Glimmer moderne et l’API Plugin.

J’espère que ce petit composant aidera à prévenir les suppressions accidentelles de messages. Les retours, rapports de bugs, traductions et suggestions sont les bienvenus ! :slight_smile:

6 « J'aime »