diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b5f5b2..b694d0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # 🧰 GAIA Swissknife – Changelog +## v1.1.010 – 2026-05-12 +- Aggiunto pulsante **"Copia per LURCH (JSON)"** nella sidebar delle pagine corso (`/aspirante/corso-base/`) +- Estrae e copia in clipboard: Direttore, Quota (bool), QuotaValore (numerico), Corso (nome), Protocollo, Link GAIA + +## v1.1.009 – 2026-05-11 +- Aggiunto pulsante **"Copia catalogo corsi (JSON)"** nella sidebar di `/courses/catalog/` + - Estrae nome, codice, livello, tipo, obiettivo per ogni corso +- Aggiunto tool **"Sede preferita"** nelle pagine con selezione sedi + - Select persistente (GM_setValue/getValue), pulsante "Solo preferito", pulsante "Seleziona tutto" +- Pulsanti Swissknife ora posizionati in cima alla sidebar con header e separatore + +## v1.1.008 – 2026-05-11 +- Aggiunto pulsante **"Copia struttura sedi (JSON)"** nel menu laterale di `/us/elenchi/volontari/` + - Estrae la gerarchia Comitato Regionale > Comitato Locale > Sottosedi + - Visibile solo quando la tabella sedi è presente (non nella vista risultati con iframe) + ## v1.1.006 - 2025-12-11: - Modificata regex per il matching dei codici corso: ora supporta codici con numero variabile di cifre finali (non più minimo 4) - Migliorata compatibilità con formati di codici corso che utilizzano blocchi numerici più brevi diff --git a/README.md b/README.md index 4672c5b..1d6c753 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # 🧰 GAIA Swissknife **Tampermonkey script per il portale GAIA (CRI)** -Versione attuale: **1.1.006** +Versione attuale: **1.1.010** Autore: [Luigi D'Acunto](https://luigidacunto.com) --- @@ -57,6 +57,30 @@ Oppure: --- +### ✅ Su `/aspirante/corso-base/` +- Pulsante **"Copia per LURCH (JSON)"** + - Copia in clipboard un JSON con: Direttore, Quota (bool), QuotaValore, Corso, Protocollo, Link GAIA + +--- + +### ✅ 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 @@ -80,10 +104,9 @@ Oppure: 📖 [Visualizza changelog completo](https://gitlab.luigidacunto.com/consultant/gaia-swissknife/-/blob/main/CHANGELOG.md) -Ultima versione: **v1.1.006** -- Regex codici corso migliorata: supporto per cifre finali variabili -- Riconoscimento corsi indipendente dall'anno e dal numero di cifre finali -- Compatibilità estesa con formati di codici corso diversificati +Ultima versione: **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 --- diff --git a/tampermonkey-script/GAIA-Swissknife.user.js b/tampermonkey-script/GAIA-Swissknife.user.js index 62c9606..3219936 100644 --- a/tampermonkey-script/GAIA-Swissknife.user.js +++ b/tampermonkey-script/GAIA-Swissknife.user.js @@ -5,7 +5,7 @@ // @downloadURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/GAIA-Swissknife.user.js // @changelogURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/CHANGELOG.md // @author Luigi D'Acunto -// @version 1.1.009 +// @version 1.1.010 // @description Aggiunge funzionalità alle pagine di GAIA // @match https://gaia.cri.it/* // @require https://code.jquery.com/jquery-3.6.0.min.js @@ -208,7 +208,6 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); }); } - // Funzione per applicare le correzioni di stile alle celle del curriculum function applyStyleFixes() { const url = window.location.href; @@ -814,6 +813,48 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); } } + // Funzione per copiare i dati del corso per LURCH in clipboard come JSON + function addCopyForLurchButton() { + if (!window.location.href.match(/\/aspirante\/corso-base\/\d+\//)) return; + if ($('#sezione').length === 0) return; + + console.log("GAIA Swissknife: Aggiungo pulsante Copia per LURCH..."); + + function extractLurchData() { + const corso = document.querySelector('h1, h2')?.innerText?.trim() || ''; + + const titleMatch = document.title.match(/([A-Z]{2,}\/\d{4}\/[A-Z0-9\-]+(?: [A-Z0-9\-]+)?\/\d+)/); + const protocollo = titleMatch ? titleMatch[1] : ''; + + const direttorePanel = [...document.querySelectorAll('.panel.panel-info')].find(el => el.querySelector('.panel-title')?.innerText.includes('Direttore')); + const direttore = direttorePanel?.querySelector('.panel-body a')?.innerText?.trim() || ''; + + const quotaPanel = [...document.querySelectorAll('.panel.panel-info')].find(el => el.querySelector('.panel-title')?.innerText.includes('Quota')); + const quotaText = quotaPanel?.querySelector('.panel-body')?.innerText?.trim() || '0'; + const quotaValore = parseFloat(quotaText.replace(/[^\d,]/g, '').replace(',', '.')) || 0; + const quota = quotaValore !== 0; + + return { direttore, quota, quotaValore, corso, protocollo, linkGaia: window.location.href }; + } + + const $btn = $(''); + + $btn.on('click', function () { + const data = extractLurchData(); + navigator.clipboard.writeText(JSON.stringify(data, null, 2)).then(() => { + console.log('GAIA Swissknife: Dati LURCH copiati in clipboard.', data); + const orig = $(this).text(); + $(this).text('✓ Copiato!').css('background-color', '#28a745'); + setTimeout(() => $(this).text(orig).css('background-color', '#1a6b8a'), 3000); + }).catch(err => { + console.error('GAIA Swissknife: Errore clipboard:', err); + alert('Errore durante la copia in clipboard.'); + }); + }); + + appendToSwissknifeSection($('
  • ').append($btn)); + } + $(document).ready(() => { applyStyleFixes(); addExamOutcomeButtons(); @@ -824,12 +865,17 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); addSediPreferitaTool(); addCopyCatalogButton(); addCopyStructureButton(); + addCopyForLurchButton(); console.log("GAIA Swissknife: Funzioni caricate con successo!"); }); })(jQuery.noConflict(true)); // ==CHANGELOG== +// v1.1.010 - Nuove funzioni: +// - Aggiunto pulsante "Copia per LURCH (JSON)" nella sidebar delle pagine corso (/aspirante/corso-base/) +// - Estrae: Direttore, Quota (bool), QuotaValore (numerico), Corso (nome), Protocollo, Link GAIA +// - Copia il JSON in clipboard con feedback visivo // v1.1.009 - Nuove funzioni: // - Aggiunto pulsante "Copia catalogo corsi (JSON)" nella sidebar di /courses/catalog/ // - Estrae nome, codice, livello, tipo, obiettivo per ogni corso e copia il JSON in clipboard