From 440941d71a89207b2ce147d49c75461c6c0e72dc Mon Sep 17 00:00:00 2001 From: Luigi D'Acunto Date: Sat, 12 Apr 2025 19:16:34 +0200 Subject: [PATCH] =?UTF-8?q?Aggiorna=20la=20versione=20a=201.0.0=20e=20aggi?= =?UTF-8?q?unge=20nuove=20funzionalit=C3=A0,=20inclusa=20l'integrazione=20?= =?UTF-8?q?di=20DataTable=20e=20l'evidenziazione=20delle=20righe=20"Respin?= =?UTF-8?q?to"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tampermonkey-script/GAIA-Swissknife.user.js | 85 ++++++++++++--------- 1 file changed, 48 insertions(+), 37 deletions(-) diff --git a/tampermonkey-script/GAIA-Swissknife.user.js b/tampermonkey-script/GAIA-Swissknife.user.js index e463ec1..b6d5caa 100644 --- a/tampermonkey-script/GAIA-Swissknife.user.js +++ b/tampermonkey-script/GAIA-Swissknife.user.js @@ -4,7 +4,7 @@ // @updateURL 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 // @author Luigi D'Acunto -// @version 0.5.10-beta +// @version 1.0.0 // @description Aggiunge funzionalità alle pagine di GAIA // @match https://gaia.cri.it/* // @require https://code.jquery.com/jquery-3.6.0.min.js @@ -24,6 +24,24 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); // Recupera la versione dallo script se disponibile, altrimenti usa un valore di fallback const currentVersion = (typeof GM_info !== 'undefined' && GM_info.script && GM_info.script.version) ? GM_info.script.version : 'x.x'; + console.log(`GAIA Swissknife: Versione ${currentVersion}`); + + // Inizializza le funzionalità + + // Funzione per aggiungere il blocco di intestazione + function ensureSwissknifeHeader() { + if ($('#sezione').length > 0 && $('#gaia-swissknife-header').length === 0) { + const headerHTML = ` +
+ + `; + $('#sezione').append(headerHTML); + } + } + + // Funzione per applicare le correzioni di stile alle celle del curriculum function applyStyleFixes() { const url = window.location.href; @@ -154,19 +172,6 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); } } - // Funzione per aggiungere il blocco di intestazione - function ensureSwissknifeHeader() { - if ($('#sezione').length > 0 && $('#gaia-swissknife-header').length === 0) { - const headerHTML = ` -
- - `; - $('#sezione').append(headerHTML); - } - } - // Funzione per aggiungere i pulsanti per settare gli esiti degli esami function addExamOutcomeButtons() { console.log("GAIA Swissknife: esecuzione di addExamOutcomeButtons() ..."); @@ -229,7 +234,7 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); } } - // Funzione per aggiungere il pulsante "Apri tutti i Curriculum" + // Funzione per aggiungere il pulsante "Apri tutti i Curriculum" sezione iscritti function addOpenAllProfilesButton() { if (!window.location.href.includes('/iscritti/')) return; @@ -304,11 +309,11 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); } } - // Funzione per evidenziare le righe con "Respinto" NON STA FUNZIONANDO + // Funzione per evidenziare le righe con "Respinto" function highlightRejectedCourses() { if (!window.location.href.match(/\/profilo\/\d+\/curriculum\//)) return; - console.log(`GAIA Swissknife: Qualifiche Rifiutate, rilevazione avviata..`); + console.log("GAIA Swissknife: Avvio evidenziazione 'Respinto'…"); const $table = $(".table.table-striped"); if (!$table.length || !$.fn.DataTable.isDataTable($table)) return; @@ -316,23 +321,25 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); const api = $table.DataTable(); function applyRejectionStyle() { - api.rows({ search: "applied" }).every(function (rowIdx, tableLoop, rowLoop) { + // Prima puliamo tutte le righe (reset) + api.rows().every(function () { const $row = $(this.node()); - const hasRespinto = $row.text().includes("Respinto"); - - if (hasRespinto) { - const nomeCorso = $row.find("p.grassetto").text().trim() || "Corso non trovato"; - console.log(`🟥 Respinto trovato nella riga ${rowIdx + 1}: ${nomeCorso}`); + $row.css({ + "box-shadow": "", + "background-color": "" + }); + }); + // Poi coloriamo solo le righe che contengono Respinto + $table.find("span.text-danger").each(function () { + const text = $(this).text().trim().toLowerCase(); + if (text === "respinto") { + const $row = $(this).closest("tr"); + console.log("🟥 Evidenzio riga:", $row.index(), $row.find("p.grassetto").text().trim()); $row.css({ "box-shadow": "inset 8px 0 0 0 #dc3545", "background-color": "#fbe9ea" }); - } else { - $row.css({ - "box-shadow": "", - "background-color": "" - }); } }); } @@ -555,23 +562,27 @@ GM_addStyle(GM_getResourceText("DataTablesCSS")); }); } + // Applica le correzioni le colorazioni dei tipi di qualifica in lista applyColoring(); - - $table.on('draw.dt', function () { - // mantiene le celle pulite - applyStyleFixes(); - // ricolora dopo ogni ricerca/ordinamento - applyColoring(); - }); } $(document).ready(() => { applyStyleFixes(); addExamOutcomeButtons(); addOpenAllProfilesButton(); - highlightRejectedCourses(); addAuthorizationProfileTool(); enhanceCurriculumTable(); + highlightRejectedCourses(); console.log("GAIA Swissknife: Funzioni caricate con successo!"); }); -})(jQuery.noConflict(true)); \ No newline at end of file + +})(jQuery.noConflict(true)); + +// ==CHANGELOG== +// v1.0.0 - Versione stabile, con: +// - DataTable integrata nella tabella curriculum +// - Evidenziazione "Respinto" +// - Correzioni grafiche file/link +// - Gestione richieste iscrizioni con modale mobile +// - Funzioni esiti massivi su termina corso +// ==/CHANGELOG== \ No newline at end of file