Aggiorna la versione a 1.1.010 e aggiunge pulsante Copia per LURCH
- Nuovo pulsante "Copia per LURCH (JSON)" nella sidebar delle pagine corso - Estrae Direttore, Quota (bool), QuotaValore, Corso, Protocollo, Link GAIA - Aggiornati CHANGELOG.md e README.md con le versioni 1.1.008, 1.1.009, 1.1.010 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
bb3eb00581
commit
54346041ab
3 changed files with 92 additions and 7 deletions
16
CHANGELOG.md
16
CHANGELOG.md
|
|
@ -1,5 +1,21 @@
|
||||||
# 🧰 GAIA Swissknife – Changelog
|
# 🧰 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:
|
## 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)
|
- 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
|
- Migliorata compatibilità con formati di codici corso che utilizzano blocchi numerici più brevi
|
||||||
|
|
|
||||||
33
README.md
33
README.md
|
|
@ -1,7 +1,7 @@
|
||||||
# 🧰 GAIA Swissknife
|
# 🧰 GAIA Swissknife
|
||||||
|
|
||||||
**Tampermonkey script per il portale GAIA (CRI)**
|
**Tampermonkey script per il portale GAIA (CRI)**
|
||||||
Versione attuale: **1.1.006**
|
Versione attuale: **1.1.010**
|
||||||
Autore: [Luigi D'Acunto](https://luigidacunto.com)
|
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/`
|
### ✅ Su `/curriculum/`
|
||||||
- Trasformazione della tabella curriculum in **DataTable**
|
- Trasformazione della tabella curriculum in **DataTable**
|
||||||
- Ricerca e ordinamento attivo
|
- Ricerca e ordinamento attivo
|
||||||
|
|
@ -80,10 +104,9 @@ Oppure:
|
||||||
|
|
||||||
📖 [Visualizza changelog completo](https://gitlab.luigidacunto.com/consultant/gaia-swissknife/-/blob/main/CHANGELOG.md)
|
📖 [Visualizza changelog completo](https://gitlab.luigidacunto.com/consultant/gaia-swissknife/-/blob/main/CHANGELOG.md)
|
||||||
|
|
||||||
Ultima versione: **v1.1.006**
|
Ultima versione: **v1.1.010**
|
||||||
- Regex codici corso migliorata: supporto per cifre finali variabili
|
- Nuovo pulsante "Copia per LURCH (JSON)" nella sidebar delle pagine corso
|
||||||
- Riconoscimento corsi indipendente dall'anno e dal numero di cifre finali
|
- Estrae Direttore, Quota, Protocollo, nome corso e link GAIA in un unico JSON pronto per LURCH
|
||||||
- Compatibilità estesa con formati di codici corso diversificati
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
// @downloadURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/GAIA-Swissknife.user.js
|
// @downloadURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/GAIA-Swissknife.user.js
|
||||||
// @changelogURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/CHANGELOG.md
|
// @changelogURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/CHANGELOG.md
|
||||||
// @author Luigi D'Acunto
|
// @author Luigi D'Acunto
|
||||||
// @version 1.1.009
|
// @version 1.1.010
|
||||||
// @description Aggiunge funzionalità alle pagine di GAIA
|
// @description Aggiunge funzionalità alle pagine di GAIA
|
||||||
// @match https://gaia.cri.it/*
|
// @match https://gaia.cri.it/*
|
||||||
// @require https://code.jquery.com/jquery-3.6.0.min.js
|
// @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
|
// Funzione per applicare le correzioni di stile alle celle del curriculum
|
||||||
function applyStyleFixes() {
|
function applyStyleFixes() {
|
||||||
const url = window.location.href;
|
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 = $('<button type="button" style="margin: 5px; padding: 8px; width: 97%; background-color: #1a6b8a; color: #FFF; border: none; border-radius: 4px; cursor: pointer;">Copia per LURCH (JSON)</button>');
|
||||||
|
|
||||||
|
$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($('<li role="presentation"></li>').append($btn));
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(() => {
|
$(document).ready(() => {
|
||||||
applyStyleFixes();
|
applyStyleFixes();
|
||||||
addExamOutcomeButtons();
|
addExamOutcomeButtons();
|
||||||
|
|
@ -824,12 +865,17 @@ GM_addStyle(GM_getResourceText("DataTablesCSS"));
|
||||||
addSediPreferitaTool();
|
addSediPreferitaTool();
|
||||||
addCopyCatalogButton();
|
addCopyCatalogButton();
|
||||||
addCopyStructureButton();
|
addCopyStructureButton();
|
||||||
|
addCopyForLurchButton();
|
||||||
console.log("GAIA Swissknife: Funzioni caricate con successo!");
|
console.log("GAIA Swissknife: Funzioni caricate con successo!");
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery.noConflict(true));
|
})(jQuery.noConflict(true));
|
||||||
|
|
||||||
// ==CHANGELOG==
|
// ==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:
|
// v1.1.009 - Nuove funzioni:
|
||||||
// - Aggiunto pulsante "Copia catalogo corsi (JSON)" nella sidebar di /courses/catalog/
|
// - 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
|
// - Estrae nome, codice, livello, tipo, obiettivo per ogni corso e copia il JSON in clipboard
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue