gaia-swissknife/README.md

155 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🧰 GAIA Swissknife
**Tampermonkey script per il portale GAIA (CRI)**
Versione attuale: **1.1.011**
Autore: [Luigi D'Acunto](https://luigidacunto.com)
---
## 📦 Cos'è GAIA Swissknife?
Uno script sviluppato per **Tampermonkey** che migliora l'usabilità del portale [https://gaia.cri.it](https://gaia.cri.it), introducendo strumenti automatici, ottimizzazioni visive e utilità per gli operatori CRI.
---
## 🚀 Installazione
### 1. Requisiti
- Estensione **[Tampermonkey](https://www.tampermonkey.net/)** installata su:
- Chrome / Edge / Brave / Opera
- Firefox (supportato, ma con piccole differenze di UI)
### 2. Installazione dello script
🔗 [**Clicca qui per installare GAIA Swissknife**](https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/GAIA-Swissknife.user.js)
Oppure:
1. Apri Tampermonkey
2. Clicca su **"Crea nuovo script"**
3. Incolla il contenuto dello script
4. Salva e assicurati che sia **attivo**
---
## 🛠️ Funzionalità principali
### ✅ Su `/termina/`
- Pulsante **"Tutti Ammessi / Esito Positivo"**
- Compila automaticamente tutti i campi con "AM" e "P"
---
### ✅ Su `/iscritti/`
- Pulsante **"Apri tutte le schede"**
- Apre in nuove schede tutti i profili presenti nella pagina
---
### ✅ Su `/autorizzazioni/`
- Modale mobile "Richieste Iscrizione"
- Mostra un **riepilogo dei corsi richiesti**
- Permette di selezionare un corso per evidenziare i blocchi e aprire i profili corrispondenti
- Ottimizzazione **menu laterale**
- Rimuove duplicati e aggrega per tipo richiesta
- Modale **mobile, comprimibile e spostabile**
---
### ✅ Su `/aspirante/corso-base/`
- Pulsante **"Copia per LURCH (JSON)"**
- Copia in clipboard un JSON con i dati del corso, pronto per essere importato da LURCH
**Schema del JSON:**
| Campo | Tipo | Formato / Esempio | Note |
|---|---|---|---|
| `direttore` | string | `"Mario Rossi"` | Vuoto se nessun direttore assegnato |
| `quota` | boolean | `true` / `false` | `true` se è prevista una quota di iscrizione |
| `quotaValore` | number | `60` | Valore in euro, `0` se gratuito |
| `corso` | string | `"Corso per Monitore CRI..."` | Titolo del corso |
| `protocollo` | string | `"TOS/2026/MON-PS/6170"` | Codice corso estratto dal titolo pagina |
| `linkGaia` | string (URL) | `"https://gaia.cri.it/aspirante/corso-base/66398/"` | Link diretto alla pagina corso |
| `dataInizio` | string (ISO 8601) | `"2026-09-27T09:00:00"` | Data/ora di inizio corso, `null` se assente |
| `dataEsame` | string (ISO 8601) | `"2026-11-22T09:00:00"` | Data/ora dell'esame finale, `null` se assente |
| `scadenzaDomande` | string (ISO 8601) | `"2026-08-15T16:00:00"` | Termine ultimo per le domande di ammissione, `null` se assente |
Le date sono in formato **ISO 8601 senza timezone** (`YYYY-MM-DDTHH:MM:SS`), direttamente parsabile con `Carbon::parse()` lato Laravel.
---
### ✅ Su `/courses/catalog/`
- Pulsante **"Copia catalogo corsi (JSON)"**
- Estrae tutti i corsi con nome, codice, livello, tipo, obiettivo e copia in clipboard
---
### ✅ Su `/us/elenchi/volontari/`
- Pulsante **"Copia struttura sedi (JSON)"**
- Estrae la gerarchia Regionale > Locale > Sottosedi e copia in clipboard
---
### ✅ Su pagine con selezione sedi
- Tool **"Sede preferita"**
- Select persistente per salvare la sede preferita, pulsante "Solo preferito" e "Seleziona tutto"
---
### ✅ Su `/curriculum/`
- Trasformazione della tabella curriculum in **DataTable**
- Ricerca e ordinamento attivo
- Colorazione riga per tipo di qualifica
- Evidenziazione rossa per corsi **Respinti**
- Ricostruzione visuale colonna "Dettagli"
- Icone ordinate
- Nomi di file lunghi tagliati con ellissi e tooltip
---
## 🧩 Note tecniche
- Lo script attiva automaticamente le funzioni **solo sulle pagine dove sono necessarie**
- Non altera il comportamento del portale originario
- Funzioni modulari facilmente estendibili
---
## 🧪 Changelog
📖 [Visualizza changelog completo](https://gitlab.luigidacunto.com/consultant/gaia-swissknife/-/blob/main/CHANGELOG.md)
Ultima versione: **v1.1.011**
- Aggiunti al JSON "Copia per LURCH" i campi `dataInizio`, `dataEsame` e `scadenzaDomande` (formato ISO 8601)
v1.1.010:
- Nuovo pulsante "Copia per LURCH (JSON)" nella sidebar delle pagine corso
- Estrae Direttore, Quota, Protocollo, nome corso e link GAIA in un unico JSON pronto per LURCH
---
## 🙌 Autore
**Luigi D'Acunto**
💻 [luigidacunto.com](https://luigidacunto.com)
📫 info@luigidacunto.com
---
## 📄 Licenza
Distribuito sotto licenza **MIT** Open Source.
Puoi leggere il testo completo qui: [LICENSE](https://opensource.org/licenses/MIT)
> **Attenzione:** questo script non è uno strumento ufficiale del portale GAIA o della Croce Rossa Italiana.
Lo script **non altera in alcun modo dati, privacy o integrità del portale**.
Tutte le modifiche sono **locali, lato browser dell'utente** e vengono applicate solo se:
- Tampermonkey è installato
- Lo script GAIA Swissknife è attivo
In qualsiasi momento lutente può **disattivarlo o rimuoverlo**.
Le modifiche migliorano solo l'interfaccia utente e l'esperienza di utilizzo, **senza interferire con le funzionalità originali del portale**.