People — Directory
La directory People (/dashboard/users) è l'anagrafica completa dei Paradigmini: ricerca, filtri avanzati e accesso al dettaglio profilo.
Esperienza utente
Cosa si può fare
- Cercare per nome o testo libero (debounce sulla barra di ricerca)
- Filtrare tramite sidebar laterale:
- Stato anagrafica (
mainFilter): attivi (default), archiviati, tutti - Carico di lavoro (slider)
- Posizione, skills, dipartimento (checkbox)
- Ordinare le colonne della tabella
- Navigare con paginazione
- Aprire il dettaglio cliccando su una riga →
/dashboard/users/:id - Menu Azioni (se
canManageUsers()): Vai al dettaglio, Archivia profilo - Aggiungere una persona (
persons.create/canManageUsers()): dialog con form multi-campo
Gli avatar in tabella usano profileImage (URL firmato da sync Slack) quando disponibile.
Cosa non si può fare
Non è esposta l'eliminazione definitiva del profilo: solo archiviazione.
Chi può accedere
Tutti gli utenti autorizzati in dashboard. Creazione e archiviazione dipendono dalle policies persons.* — vedi Accesso e ruoli.
Dettaglio tecnico
Sync filtri ↔ URL
I filtri attivi sono sincronizzati con i query params dell'URL tramite TableFiltersService e utility in src/utils/table-query-params.ts. Il badge conteggio filtri attivi include anche mainFilter diverso da active.
Flusso semplificato:
sequenceDiagram
participant U as Utente
participant T as TableUsersComponent
participant F as TableFiltersService
participant R as Router (query params)
participant P as PeopleService
U->>T: Modifica filtro / ricerca
T->>R: Aggiorna query params
R->>T: ActivatedRoute params
T->>P: getPersons(filters)
P-->>T: PeopleResponse
Caricamento dati
PeopleService.getPersons()→ Lambda people, endpoint/v1/persons- Archiviazione:
PeopleService.archivePerson()→PUT /v1/persons/:id/archive - Opzioni filtro (posizioni, skills, BU):
TableFiltersService
Aggiunta utente
AddUserDialogComponent usa FormDropdownValuesService per popolare i dropdown e PeopleService per la POST.
File principali
| File | Ruolo |
|---|---|
src/pages/table-users/table-users.component.ts |
Tabella, filtri, azioni, paginazione |
src/pages/table-users/add-user-dialog/ |
Dialog creazione |
src/pages/users/users.component.ts |
Router outlet wrapper |
src/services/people.service.ts |
API persone |
src/services/table-filters.service.ts |
Stato filtri condiviso |
src/services/policies.service.ts |
canManageUsers() |