Skip to content

Fix/99 admin panel clean - #199

Merged
ualbrl973 merged 7 commits into
ualdra:mainfrom
ilyas2022:fix/99-admin-panel-clean
May 28, 2026
Merged

ualbrl973 merged 7 commits into
ualdra:mainfrom
ilyas2022:fix/99-admin-panel-clean

Conversation

@ilyas2022

Copy link
Copy Markdown
Collaborator

areglo del panel de control y users

ilyas2022 and others added 7 commits May 26, 2026 13:23
…ration, backend user management

- Fix sidebar: nav items now use [routerLink]/routerLinkActive, show real admin username,
  disabled items (Preguntas/Rankings/etc.) are dimmed and non-clickable
- Backend: add AdminController (/api/admin/users, /api/admin/stats) + AdminService
  with paginated user list, role update, status toggle (suspend/unsuspend)
- Backend: add AdminStatsResponse, AdminUserResponse, UpdateRoleRequest, UpdateStatusRequest DTOs
- Backend: extend UserRepository with findAdminUsers JPQL query (search + role filter)
  and countByIsActiveTrue; add countByCreatedAtGreaterThanEqual to MatchRepository;
  add countByStatus to QuestionReportRepository
- Frontend: add AdminService (HTTP) and admin.models.ts (typed interfaces)
- Dashboard: loads real stats + spiders from backend instead of mock data
- Spiders: loads real spider list, filter works, run button calls POST /api/admin/spiders/{name}/run
- Reports: loads real reports from /api/moderation/reports, status filter tabs reload,
  DESCARTAR/ELIMINAR buttons call resolve endpoint
- Users: loads real users with live search + role filter, role dropdown and
  SUSPENDER/ACTIVAR buttons call backend

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All 14 conflicted files resolved:
- Backend: AdminController/Service use upstream (self-protection, @AuthenticationPrincipal, getLogs, AdminUserPageResponse)
- Backend: MatchRepository + UserRepository merged (searchUsers JPQL + verification token methods)
- Frontend: admin.models.ts + admin.service.ts merged (all methods from both sides)
- Frontend: dashboard uses real spiders + logs signals; users page uses upstream's click-to-edit UX
- Frontend: spiders + reports pages keep real data integration (upstream had TODO stubs)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ponente

Los selectores .vs-admin__side/.vs-admin__nav-item/.vs-admin__nav-section
vivían en admin-dashboard.scss (scoped con la encapsulación del dashboard),
por lo que nunca se aplicaban al <aside> que el AdminSidebarComponent renderiza
desde su propio scope. Resultado: sidebar sin estilos en todas las páginas admin.

- Crear sidebar.scss y mover allí todos los selectores del sidebar +
  bloque de perfil (antes con inline-styles)
- Añadir styleUrl en sidebar.ts; sustituir inline-styles del HTML por clases
- Ocultar items del sidebar que no tienen ruta implementada (Preguntas,
  Rankings, Configuración, Logs) en vez de mostrarlos disabled
- Limpiar admin-dashboard.scss de los selectores movidos
…visible

El listado /admin/usuarios devolvía 0 resultados pese a haber usuarios
en BD (el dashboard mostraba 4 activos). Causa: la @query JPQL con
patrón "(:role IS NULL OR …)" sobre tres parámetros nullables
(String/Enum/Boolean) fallaba bajo Hibernate 6 + PostgreSQL por
inferencia de tipos. El frontend no tenía error handler, así que
la respuesta caída se renderizaba como tabla vacía silenciosa.

Backend:
- AdminService.getUsers: construir Specification dinámicamente,
  añadiendo cada predicado SOLO si el filtro no es null
- Eliminar UserRepository.searchUsers @query (la interfaz ya extiende
  JpaSpecificationExecutor)
- Actualizar AdminServiceTest para mockear findAll(Specification, Pageable)

Frontend:
- admin-users.ts: signals loading + errorMsg; .subscribe({next, error})
  con mensajes según status (401/403/0/genérico)
- admin-users.html: banner .vs-admin-error antes de la tabla;
  distinguir "Cargando…" de "Sin resultados" cuando users().length===0
@github-actions

Copy link
Copy Markdown

🧪 Resultados de CI

Suite Total ✅ Passed ❌ Failed ⚠️ Errors ⏭️ Skipped 📊 Coverage
✅ Backend · Unit 34 34 0 0 0 60.5%
✅ Backend · Integration 93 93 0 0 0 70.3%
✅ Frontend · Unit 78 78 0 0 0 59.5%

Total de pruebas ejecutadas: 205 · Build de imágenes: ✅

commit 9d189b376d6890ef07004482c288081eceb93a07 · ver run

@ualbrl973
ualbrl973 merged commit fc419bc into ualdra:main May 28, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants