Fix: agrega la edición de comentarios normales en el detalle de instancia
Mantis 0044483
Qué
Corrige el Mantis 0044484: en el detalle de una instancia no había acción para eliminar un comentario normal. Además, los comentarios eliminados y editados dejan una marca visible en el seguimiento.
Por qué
El backend ya exponía DELETE /instancias/{id}/comentarios-normales/{idComentario}, pero el frontend no tenía la acción. Las marcas se agregan para que eliminar o editar no deje huecos invisibles: quien lee el seguimiento ve que hubo un comentario o un cambio sin depender de la auditoría.
Cambios
-
src/lib/instancia-comentarios.ts: nueva funcióneliminarComentarioNormal. El tipoComentarioInstanciasumaeditadoy admitecontenidoennull. -
src/components/instancias/InstanciaComentarios.tsx:- Botón "Eliminar" en cada comentario normal si el usuario tiene
ELIMINAR_COMENTARIO_NORMAL_INSTANCIA, con confirmación (ConfirmDialog). - Un comentario eliminado se muestra con autor y fecha, y el texto "Comentario eliminado el dd/mm hh:mm" en lugar del contenido, sin acciones.
- Un comentario editado muestra "· editado el dd/mm hh:mm" junto a la fecha.
- La prop
ediciondeComentarioBoxpasa a llamarseaccionesy lleva editar y eliminar por separado, cada uno según su permiso.
- Botón "Eliminar" en cada comentario normal si el usuario tiene
Aplica también al detalle de una Incidencia, que usa el mismo componente. Los comentarios confidenciales no cambian.
Dependencias
- Está apilado sobre !40 (merged) (editar comentario normal): mergear !40 (merged) primero.
- Las marcas dependen del MR de backend
pft/fix/marca-comentarios-editados-eliminados. Sin ese MR, eliminar funciona pero el comentario desaparece de la lista sin dejar marca.
Cómo probar
- Iniciar sesión con un usuario que tenga
ELIMINAR_COMENTARIO_NORMAL_INSTANCIA(por ejemplo Administrador). - Abrir el detalle de una instancia activa con al menos dos comentarios normales.
- Tocar "Eliminar" en uno y cancelar: no cambia nada.
- Tocar "Eliminar" y confirmar: el comentario queda en su lugar como "Comentario eliminado el ...", sin texto ni acciones.
- Verificar en la base que el comentario quedó en estado
ELIMINADO(segundo paso del caso de prueba; el Mantis dice "inactivo", pero el estado que usa el backend para comentarios esELIMINADO). - Editar otro comentario: muestra "· editado el ..." junto a la fecha.
- Repetir en el detalle de una Incidencia.
- Con un usuario sin el permiso, verificar que no ve "Eliminar".
Cambios en BD
Ninguno.