155 lines
5.1 KiB
Markdown
155 lines
5.1 KiB
Markdown
# 🧰 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 l’utente può **disattivarlo o rimuoverlo**.
|
||
|
||
Le modifiche migliorano solo l'interfaccia utente e l'esperienza di utilizzo, **senza interferire con le funzionalità originali del portale**.
|