gaia-swissknife/docs/mappa-progetto.md

45 lines
4.2 KiB
Markdown

# Mappa del progetto
Mappa sempre aggiornata di cosa aggiunge lo userscript alle pagine di GAIA (`https://gaia.cri.it/*`) e dove si aggancia. Una riga per funzione. Il dettaglio tecnico sta in `../.tech.docs/`.
Script: `../tampermonkey-script/GAIA-Swissknife.user.js`. Tutte le funzioni partono al `document.ready`; ognuna controlla da sé l'URL o la presenza degli elementi e, se non servono, non fa nulla.
## Struttura comune
| Elemento | Cosa fa | Dove |
|---|---|---|
| Intestazione Swissknife | Aggiunge in cima alla sidebar il titolo "GAIA Swissknife vX" e un separatore; i pulsanti dello script vengono inseriti tra i due | `ul#sezione` (sidebar), create alla prima funzione che inserisce un pulsante |
| Stile DataTables | Carica il CSS di DataTables per le tabelle migliorate | Tutte le pagine |
## Pagine curriculum (`/profilo/<id>/curriculum/`)
| Funzione | Cosa fa | Dove si aggancia |
|---|---|---|
| Ricostruzione celle dettaglio | Riscrive le celle con i dettagli delle qualifiche in righe ordinate icona + testo; testi lunghi troncati con tooltip | `td.piu-piccolo` della tabella curriculum |
| Tabella ordinabile e filtrabile | Trasforma la tabella in DataTable: senza paginazione, ordine per tipo e poi seconda colonna, campo "Filtra qualifiche" | `.table.table-striped` |
| Colori per tipologia | Colora la cella del tipo di qualifica (Qualifica CRI, Altra Qualifica, Esperienze, Competenza, Patenti) | Prima cella di ogni riga della tabella |
| Evidenzia "Respinto" | Evidenzia in rosso le righe con esito "Respinto", riapplicato a ogni ridisegno della tabella | Righe con `span.text-danger` nella tabella |
## Autorizzazioni (`/autorizzazioni`)
| Funzione | Cosa fa | Dove si aggancia |
|---|---|---|
| Filtri sidebar accorpati | Unisce le voci duplicate del menu laterale sommando i contatori | `ul#sezione-2`, voci `li[role=presentation]` |
| Strumento richieste iscrizione | Finestra mobile e comprimibile che raggruppa le richieste per codice corso, mostra il conteggio con link al corso, evidenzia in verde le richieste del corso scelto e apre tutti i curriculum | URL con `/autorizzazioni/`, riquadri `.panel.panel-default` con link `/aspirante/corso-base/` |
## Corso: iscritti, esami e scheda
| Funzione | Cosa fa | Dove si aggancia |
|---|---|---|
| Apri tutti i Curriculum | Apre in nuove schede i curriculum di tutti gli iscritti elencati, dopo conferma | Pulsante in sidebar, solo con il sotto-tab "Iscrizioni" attivo (`#tabDettagliCorso li.active_link`) e la sidebar presente; legge l'iframe `iframe.embed-responsive-item` |
| Pulsanti esiti esame | Tre pulsanti che impostano in blocco ammissione ed esiti delle due parti: Ammessi/Positivo/Positivo, Ammessi/Positivo/Non previsto, Ammessi/Non previsto/Positivo | Sidebar, solo se esistono i select `id_part_*-ammissione` |
| Compilazione massiva verbale | Mini-form sotto i pulsanti esiti: "Argomento parte 1", "Argomento parte 2" e "Sede di destinazione", con "Applica a tutti i candidati" (i campi vuoti non sovrascrivono); ogni casella compare solo se il campo esiste nella pagina, senza campi il form non compare. Guida: [guida-utente](guida-utente/00-indice.md) | Sidebar, stessa pagina e condizione dei pulsanti esiti; scrive nei campi `id_part_*-argomento_parte_1/2` e `-destinazione` |
| Copia per LURCH (JSON) | Copia negli appunti direttore, quota, corso, protocollo, link GAIA, `dataInizio`, `dataEsame`, `scadenzaDomande` (ISO 8601) | Sidebar, solo con il sotto-tab "Informazioni" attivo (`#tabDettagliCorso li.active_link`, non su `/termina/`); legge i pannelli `.panel.panel-info` |
## Sedi, elenchi e catalogo
| Funzione | Cosa fa | Dove si aggancia |
|---|---|---|
| Sede preferita | Select del comitato preferito salvato tra le sessioni (`GM_setValue`), pulsante "Solo preferito" (seleziona il comitato e i figli) e "Seleziona tutto" | Sidebar, nelle pagine con tabella sedi (`input[name=sedi]`) |
| Copia struttura sedi (JSON) | Copia negli appunti la gerarchia Regionale, Locali, Sottosedi con feedback del conteggio | Sidebar di `/us/elenchi/volontari/`, solo con la tabella sedi visibile |
| Copia catalogo corsi (JSON) | Copia negli appunti nome, codice, livello, tipo, obiettivo e scheda PDF di ogni corso | Sidebar di `/courses/catalog`, elementi `.corso-nome` |