diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fb97ac..f42190b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,15 @@ ## Versión actual -- Versión base: `1.2.25` +- Versión base: `1.2.26` ## Historial +### 1.2.26 - 2026-05-22 + +- El sidebar web muestra la versión activa junto a `LinkedSign`. +- `FirmaEC` divide nombres de 4 palabras en `2 + 2` dentro del sello visible del PDF. + ### 1.2.25 - 2026-05-22 - La firma normal usa las preferencias visuales guardadas del usuario al momento de firmar, evitando que un estado viejo del frontend vuelva a enviar `FirmaEC` con borde. diff --git a/DEPLOY_ANDROID.md b/DEPLOY_ANDROID.md index 9a4293b..8bbb48b 100644 --- a/DEPLOY_ANDROID.md +++ b/DEPLOY_ANDROID.md @@ -2,7 +2,7 @@ ## Versión actual -- Base actual: `1.2.25` +- Base actual: `1.2.26` - Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION) - Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md) diff --git a/DEPLOY_WEB.md b/DEPLOY_WEB.md index ba11482..74439db 100644 --- a/DEPLOY_WEB.md +++ b/DEPLOY_WEB.md @@ -2,7 +2,7 @@ ## Versión actual -- Base actual: `1.2.25` +- Base actual: `1.2.26` - Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION) - Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md) diff --git a/PRODUCCION.md b/PRODUCCION.md index 5a5c1a8..5a37c53 100644 --- a/PRODUCCION.md +++ b/PRODUCCION.md @@ -2,7 +2,7 @@ ## Versión actual -- Base actual: `1.2.25` +- Base actual: `1.2.26` - Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION) - Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md) diff --git a/VERSION b/VERSION index 8060c02..cba64f4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.25 +1.2.26 diff --git a/android/app/build.gradle b/android/app/build.gradle index df27ddd..64180db 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -18,8 +18,8 @@ android { applicationId "net.linkedcorp.linkedsign" minSdk 26 targetSdk 35 - versionCode 10225 - versionName "1.2.25" + versionCode 10226 + versionName "1.2.26" buildConfigField "String", "API_BASE_URL", "\"${apiBaseUrl}\"" } diff --git a/backend/package.json b/backend/package.json index 13e21d8..6696de4 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "linkedsign-backend", - "version": "1.2.25", + "version": "1.2.26", "private": true, "description": "Initial backend for LinkedSign", "main": "src/server.js", diff --git a/backend/src/modules/signing/signing.service.js b/backend/src/modules/signing/signing.service.js index abf9255..1bac13a 100644 --- a/backend/src/modules/signing/signing.service.js +++ b/backend/src/modules/signing/signing.service.js @@ -59,6 +59,23 @@ function wrapToLines(text, font, size, maxWidth, maxLines) { return lines; } +function getFirmaEcNameLines(signerName, font, size, maxWidth) { + const words = String(signerName || '') + .trim() + .toUpperCase() + .split(/\s+/) + .filter(Boolean); + + if (words.length === 4) { + return [ + words.slice(0, 2).join(' '), + words.slice(2).join(' '), + ].map((line) => truncate(line, font, size, maxWidth)); + } + + return wrapToLines(words.join(' '), font, size, maxWidth, 2); +} + function buildLocalizedSignatureTimestamp({ locale, timeZone } = {}) { const now = new Date(); const normalizedLocale = locale || 'es-EC'; @@ -343,9 +360,8 @@ async function drawStyleFirmaEC(pdfDoc, page, sx, sy, sw, sh, { signerName, veri page.drawText('Firmado electronicamente por:', { x: textX, y: sy + sh - 21, size: 6, font: fReg, color: rgb(0.12, 0.12, 0.14) }); // Name — bold, uppercase, word-wrapped up to 2 lines - const nameUpper = signerName.toUpperCase(); const nameSize = 8.5; - const nameLines = wrapToLines(nameUpper, fBold, nameSize, textW, 2); + const nameLines = getFirmaEcNameLines(signerName, fBold, nameSize, textW); nameLines.forEach((line, i) => { page.drawText(line, { x: textX, y: sy + sh - 34 - (i * 13), size: nameSize, font: fBold, color: rgb(0.05, 0.05, 0.07) }); }); diff --git a/frontend/package.json b/frontend/package.json index 2e872d1..fca4a89 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "frontend", "private": true, - "version": "1.2.25", + "version": "1.2.26", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/components/layout/Layout.jsx b/frontend/src/components/layout/Layout.jsx index a63e8ec..2d66c76 100644 --- a/frontend/src/components/layout/Layout.jsx +++ b/frontend/src/components/layout/Layout.jsx @@ -3,6 +3,7 @@ import { Link, useNavigate, useLocation } from 'react-router-dom'; import { useAuth } from '../../contexts/AuthContext'; import { FileText, Shield, PenTool, LayoutDashboard, LogOut, Palette, Menu, X, KeyRound, Users, Settings, ScrollText, Scale } from 'lucide-react'; import ChangePasswordModal from '../ui/ChangePasswordModal'; +import packageInfo from '../../../package.json'; const navSections = [ { @@ -86,7 +87,7 @@ export default function Layout({ children }) { LinkedSign
- LinkedSign + LinkedSign v{packageInfo.version} Firma Electrónica @LinkedCorp