Vai al contenuto

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()