diff --git a/CHANGELOG.md b/CHANGELOG.md index ed71648..86d7cc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog - project.linkedcorp.net +## [2.13.2] - 2026-10-14 +### Changed +- Contraseñas (solo este módulo): borrar una credencial o un grupo ahora dice "Destruir" en vez + de "Eliminar", con una advertencia fuerte (franja roja, texto en mayúsculas) de que la + destrucción es permanente e irreversible. El registro de auditoría ya guardaba quién y cuándo + borró cada una (sin el contenido), sin cambios ahí. + ## [2.13.1] - 2026-10-14 ### Fixed - ComboBox y Flyout (menu de 3 puntos): el panel desplegable se quedaba cortado por el borde diff --git a/VERSION b/VERSION index 94f15e9..0e83a9a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.13.1 +2.13.2 diff --git a/backend/package.json b/backend/package.json index 2b809ac..9c744c1 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "project-linkedcorp-backend", - "version": "2.13.1", + "version": "2.13.2", "private": true, "type": "module", "main": "src/server.js", diff --git a/frontend/package.json b/frontend/package.json index 01b6d14..322e707 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "project-linkedcorp-frontend", "private": true, - "version": "2.13.1", + "version": "2.13.2", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/i18n/messages.js b/frontend/src/i18n/messages.js index df33d63..fcfd27a 100644 --- a/frontend/src/i18n/messages.js +++ b/frontend/src/i18n/messages.js @@ -234,6 +234,10 @@ export const messages = { vault_share_placeholder: 'Elegir usuario', vault_share_empty: 'No compartida con nadie.', vault_shared_by: 'Compartida por', + vault_destroy: 'Destruir', + vault_confirm_destroy_title: 'Destrucción irreversible', + vault_confirm_destroy_entry_msg: 'Vas a DESTRUIR esta credencial de forma permanente. No hay papelera ni copia de respaldo -- una vez confirmado, no hay forma de recuperarla.', + vault_confirm_destroy_group_msg: 'Vas a DESTRUIR este grupo de forma permanente. No hay papelera ni copia de respaldo -- una vez confirmado, no hay forma de recuperarlo. Las credenciales que contiene no se destruyen, quedan sin grupo.', notes_title: 'Notas', notes_placeholder: 'Escribe un apunte rápido...', notes_empty: 'No tienes notas todavía.', @@ -589,6 +593,10 @@ export const messages = { vault_share_placeholder: 'Choose a user', vault_share_empty: 'Not shared with anyone.', vault_shared_by: 'Shared by', + vault_destroy: 'Destroy', + vault_confirm_destroy_title: 'Irreversible destruction', + vault_confirm_destroy_entry_msg: 'You are about to permanently DESTROY this credential. There is no trash bin or backup copy -- once confirmed, there is no way to recover it.', + vault_confirm_destroy_group_msg: 'You are about to permanently DESTROY this group. There is no trash bin or backup copy -- once confirmed, there is no way to recover it. Its credentials are not destroyed, they stay ungrouped.', notes_title: 'Notes', notes_placeholder: 'Write a quick note...', notes_empty: 'You don\'t have any notes yet.', diff --git a/frontend/src/pages/Contrasenas/ContrasenasPage.jsx b/frontend/src/pages/Contrasenas/ContrasenasPage.jsx index 8f9795c..0e5c69f 100644 --- a/frontend/src/pages/Contrasenas/ContrasenasPage.jsx +++ b/frontend/src/pages/Contrasenas/ContrasenasPage.jsx @@ -272,13 +272,13 @@ export default function ContrasenasPage() { function confirmDelete(entry) { openDialog({ - tone: 'warning', - title: t('common_confirm_delete_title'), - message: t('common_confirm_delete_msg'), + tone: 'error', + title: t('vault_confirm_destroy_title'), + message: t('vault_confirm_destroy_entry_msg'), actions: [ { label: t('common_cancel'), variant: 'standard' }, { - label: t('common_delete'), variant: 'danger', + label: t('vault_destroy'), variant: 'danger', onClick: () => runAction(async () => { await deleteVaultEntry(entry.id); await Promise.all([loadEntries(), loadGroups()]); @@ -343,13 +343,13 @@ export default function ContrasenasPage() { function confirmDeleteGroup(group) { openDialog({ - tone: 'warning', - title: t('common_confirm_delete_title'), - message: t('vault_group_delete_confirm_msg'), + tone: 'error', + title: t('vault_confirm_destroy_title'), + message: t('vault_confirm_destroy_group_msg'), actions: [ { label: t('common_cancel'), variant: 'standard' }, { - label: t('common_delete'), variant: 'danger', + label: t('vault_destroy'), variant: 'danger', onClick: () => runAction(async () => { await deleteVaultGroup(group.id); if (activeGroupId === group.id) setActiveGroupId(null); @@ -446,7 +446,7 @@ export default function ContrasenasPage() { )}> openEditGroup(group)}>{t('common_edit')} - confirmDeleteGroup(group)}>{t('common_delete')} + confirmDeleteGroup(group)}>{t('vault_destroy')} @@ -463,7 +463,7 @@ export default function ContrasenasPage() { ( )}> - confirmDelete(entry)}>{t('common_delete')} + confirmDelete(entry)}>{t('vault_destroy')} ) : (