| Resumen | Un componente de tema ligero que solicita confirmación antes de eliminar una publicación | |
| Repositorio | GitHub - scavin/discourse-confirm-delete · GitHub | |
| Guía de instalación | Cómo instalar un tema o componente de tema | |
| ¿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
Utiliza la interfaz de diálogo nativa de Discourse
Utiliza un botón Eliminar con estilo de peligro rojo
Conserva el comportamiento de eliminación original de Discourse
No modifica las comprobaciones de permisos
No modifica el núcleo de Discourse
No requiere ningún plugin
Sin jQuery ni window.confirm()
Sin simulación de clic en el DOM
Funciona en escritorio y móvil
Traducciones al inglés y al chino simplificado
Otros idiomas utilizan el inglés como idioma predeterminado
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:
- Abre el componente en Admin → Personalizar → Temas
- Añádelo a los temas donde debe estar habilitado
- Actualiza la página del tema
- 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! ![]()
