Nueva sección "Documentación" en el sidebar
Date: 2026-07-25 Status: ✅ Aprobado, validado visualmente — listo para aplicar
Qué se agrega
Una sección nueva en el sidebar, "Documentación", con 2 ítems:
- Funcional — link externo (abre en pestaña nueva) al sitio VitePress de
doc/(doc/plans/2026-07-25-plan-desarrollo-modulos.mdy todo lo demás documentado ahí). La URL está como placeholder (https://docs.soterex.cislatam.net) — reemplazar por la URL real una vez que ese sitio esté deployado (verdoc/README.md/doc/.vitepress/config.mts). - Manual del Usuario — ruta interna (
/documentacion/manual-usuario) con una página "en construcción" a propósito — no es un módulo pendiente de implementar como los ABMs, es contenido que todavía no se escribió. Placeholder simple con ese mensaje.
Detalle técnico — por qué el sidebar necesitó un cambio de lógica
Hasta ahora todos los ítems del nav eran internos (to, renderizados con <router-link>). "Funcional" es el primer ítem externo — se agregó una distinción: si el ítem tiene href, se renderiza como <a target="_blank" rel="noopener noreferrer"> con un ícono de flecha diagonal (indica visualmente que abre afuera); si tiene to, sigue siendo <router-link> como antes. Ver reference/AppLayout.vue.
Archivos de referencia adjuntos (reference/)
AppLayout.vue— sección nueva en el arraynav+ la lógica dehrefvstoen el templateManualUsuarioView.vue— la página "en construcción" (nueva)router-index-snippet.txt— la ruta nueva a agregar (/documentacion/manual-usuario)
Checklist de integración
- [x] Copiar
ManualUsuarioView.vueafrontend/src/views/. - [x] Agregar la ruta nueva al router real (
documentacion-manual-usuario, sinmeta.modulea propósito — el guard global ya deja pasar sin gate de permiso cualquier ruta que no lo declare, mismo criterio que/me). - [x] Mergear la sección "Documentación" del array
navdeAppLayout.vue, y la lógica dehrefvstoen el template. El código real ya había evolucionado bastante desde la referencia (permisos por ítem víameStore.canRead, sin subgrupos colapsables — eso lo reemplazóTabbedSectionLayout) — se aplicó solo la distinciónhref/to, no se pisó nada de eso.isVisible()se extendió para tratar un ítem sinmodule/modulescomo siempre visible (antes todos los ítems tenían uno de los dos, no hacía falta ese caso).NAV/mobileNavse tipó explícito (NavItemdiscriminadoto/hrefmutuamente excluyentes) — sin esovue-tscno compilaba: el array dejó de ser estructuralmente uniforme apenas agregó el primer ítem sinto. - [x] Reemplazar la URL placeholder de "Funcional" — resuelto en dos pasos posteriores: primero un link externo configurable (
VITE_DOCS_URL), después migrado a renderizado nativo y vuelto a revertir a link externo (verdoc/plans/2026-07-25-revertir-doc-nativa-volver-vitepress.md), hoy apunta al sitio VitePress real corriendo en dev vía traefik.
Verificado: vue-tsc/vite build limpios, dev server responde sin errores tras limpiar la cache de Vite. No verificado en navegador real (sin herramienta de browser disponible en la sesión) — falta confirmar visualmente el ícono de flecha diagonal en "Funcional" y que abre en pestaña nueva.

