# Continuación proyecto Clima Laboral SaaS (Resumen actualizado) Proyecto en `/var/www/react/clima_laboral` con backend Node/Express y frontend React/Vite (sin TS). MariaDB multi-tenant: DB central `clima_platform` + DB por empresa (ej. `P123456`). Usuario DB correcto: `user_ia` (host `%`), pass `UserIA2026`, host DB `192.168.222.20:3306`. ## Backend (estado) - Rutas admin: - `/admin/questions`, `/admin/questions/export`, `/admin/questions/import` - `/admin/questions/template` (descarga template Excel) - `/admin/question-sets`, `/admin/question-sets` POST (`empty` flag) - `/admin/question-sets/:id` DELETE (solo si inactivo y sin survey_periods) - `/admin/question-sets/:id/questions` GET + POST (agregar pregunta a set) - `/admin/dimensions` GET + POST - Servicios: - `questionSetService.js` agrega `createEmptyQuestionSet` - `questionService.js` agrega `listDimensions`, `createDimension`, `addQuestionToSet`, `exportQuestionsTemplate` - `importQuestionsExcel` ahora acepta `setId` para cargar preguntas dentro del set - Error logging en `error_logs` para no superadmin. ## Frontend (UI/UX) - Estilos globales ya cargados: `frontend/src/main.jsx` importa `./styles/app.css`. - Menú superior usa `NavLink`; botón activo se resalta (`.topbar nav a.active`). - Iconos Font Awesome (tamaño 16px en botones). Sin sesión no se ven iconos. - Login: al iniciar sesión desaparece el formulario y muestra imagen. - Popups globales de error. - Anti‑spam de mensajes en `frontend/src/utils/api.js`. - `/admin/dimensions` 404 ya no genera popup (silenciado). - `QuestionBank.jsx`: - Subnav: Versiones + botón Excel template + botón “+”. - “+” abre vista Nuevo Set con nombre sugerido `QSET-YYYYMMDD-XX` basado en máximo existente. - Vista Nuevo Set: crear set, importar Excel, crear ámbitos y agregar preguntas. - Lista de preguntas se muestra en vivo en nuevo/editar. - Vista Editar Set (botón en cada set) permite importar Excel, crear ámbitos y agregar preguntas manuales. - Vista Abrir set muestra solo preguntas. - Si no hay `company_code`, muestra mensaje “Selecciona una empresa...”. - `QuestionBank` no rompe si `/admin/dimensions` falla. ## Estándares UI (acordados) - Todos los botones son **solo iconos** (Font Awesome), sin texto visible. - Tooltips visibles al hover (título del icono). - Tamaño de icono estándar: **16px** en todos los botones. - Iconos activos resaltados con color de acento. - Menús ocultos cuando no hay sesión (sin token). - Submenús con botones redondos iguales a los de Empresas. - Formularios y listados separados por vista (no mezclar en la misma pantalla). - Fechas visibles en formato `YYYY-MM-DD`. ## Datos actuales - Empresa: `EMPRESA DE PRUEBA`, code `123456`, DB `P123456`, status active. - Superadmin: `superadmin@demo.com` / `SuperAdmin2026` - Admin: `admin.prueba@demo.com` / `Admin2026!` - User: `usuario.prueba@demo.com` / `Usuario2026!` - Question sets en DB `P123456`: `QSET-DEFAULT`, `QSET-20260303-03`, `QSET-20260303-04`, `QSET-20260303-05` (algunos activos/inactivos). ## Problemas frecuentes - Si “Versiones de Encuesta” sale vacío, es porque no se entró con `company_code` (usar Superadmin > Empresas > Acceder). - Si `/admin/dimensions` da 404, reiniciar backend para cargar rutas nuevas. ## Últimos cambios recientes - Botón Excel Template movido arriba junto a “+”. - Sugerencia de nombre de set corregida para usar máximo existente + 1. - Vista Editar Set agregada con lista de preguntas y edición. - Popup 404 silenciado para `/admin/dimensions`. ## Pendientes - A gusto del usuario, agregar etiqueta “Escala 1–5” visible en encuestas/preguntas. - Si necesita renombrar set o eliminar preguntas, implementar.