Confirmar eliminación de publicación: agregar un cuadro de diálogo de confirmación antes de eliminar publicaciones

:information_source: Resumen Un componente de tema ligero que solicita confirmación antes de eliminar una publicación
:hammer_and_wrench: Repositorio GitHub - scavin/discourse-confirm-delete · GitHub
:question: Guía de instalación Cómo instalar un tema o componente de tema
:open_book: ¿Nuevo en los temas de Discourse? Guía para principiantes sobre el uso de temas de Discourse

Instalar este componente de tema

Comparto un pequeño componente de tema que añade un paso de confirmación antes de que se elimine una publicación.

Por defecto, hacer clic en el botón de eliminar ejecuta inmediatamente la acción de eliminación estándar de Discourse. Este componente muestra primero el cuadro de diálogo de confirmación de peligro nativo de Discourse, ayudando a prevenir eliminaciones accidentales.

¿Qué hace?

Cuando un usuario hace clic en el botón Eliminar en una publicación, el componente muestra un cuadro de diálogo de confirmación:

Eliminar publicación
¿Estás seguro de que quieres eliminar esta publicación?

Las acciones disponibles son:

  • Cancelar — cierra el cuadro de diálogo sin hacer nada
  • Eliminar — continúa con la acción de eliminación original de Discourse

Características principales

:white_check_mark: Utiliza la interfaz de diálogo nativa de Discourse
:white_check_mark: Utiliza un botón Eliminar con estilo de peligro rojo
:white_check_mark: Conserva el comportamiento de eliminación original de Discourse
:white_check_mark: No modifica las comprobaciones de permisos
:white_check_mark: No modifica el núcleo de Discourse
:white_check_mark: No requiere ningún plugin
:white_check_mark: Sin jQuery ni window.confirm()
:white_check_mark: Sin simulación de clic en el DOM
:white_check_mark: Funciona en escritorio y móvil
:white_check_mark: Traducciones al inglés y al chino simplificado
:white_check_mark: Otros idiomas utilizan el inglés como idioma predeterminado
:white_check_mark: Los administradores pueden anular el texto a través de las traducciones del tema

Cómo funciona

El componente utiliza las API de frontend oficiales de Discourse:

  • apiInitializer
  • el transformador de valores post-menu-buttons
  • el servicio integrado dialog.deleteConfirm()

Reemplaza el componente del botón Eliminar del menú de la publicación con un pequeño contenedor. Tras la confirmación, el contenedor llama a la acción original deletePost.

Esto significa que el componente no reimplementa la eliminación, no realiza su propia solicitud API ni omite la lógica de autorización existente de Discourse.

Después de la instalación:

  1. Abre el componente en Admin → Personalizar → Temas
  2. Añádelo a los temas donde debe estar habilitado
  3. Actualiza la página del tema
  4. Haz clic en el botón Eliminar en una publicación para probar el cuadro de diálogo de confirmación

Traducciones

El componente incluye actualmente:

  • Inglés (en)
  • Chino simplificado (zh_CN)

El título del cuadro de diálogo, el mensaje, el botón Cancelar y el botón Eliminar utilizan claves de traducción del tema. ¡Las traducciones adicionales son bienvenidas!

Compatibilidad

Diseñado para las versiones actuales de Discourse que utilizan el menú de publicaciones Glimmer moderno y la API de Plugins.

¡Espero que este pequeño componente ayude a prevenir eliminaciones accidentales de publicaciones! ¡Las opiniones, informes de errores, traducciones y sugerencias son bienvenidas! :slight_smile:

6 Me gusta