# 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//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` |