From ab7315340f9d01b1debdc62c1c823820ea19ab5f Mon Sep 17 00:00:00 2001 From: Luigi D'Acunto Date: Wed, 9 Apr 2025 19:07:58 +0200 Subject: [PATCH] add functions e change name file --- .../GAIA-Swissknife-0.1b.user.js | 88 -------- tampermonkey-script/GAIA-Swissknife.user.js | 197 ++++++++++++++++++ 2 files changed, 197 insertions(+), 88 deletions(-) delete mode 100644 tampermonkey-script/GAIA-Swissknife-0.1b.user.js create mode 100644 tampermonkey-script/GAIA-Swissknife.user.js diff --git a/tampermonkey-script/GAIA-Swissknife-0.1b.user.js b/tampermonkey-script/GAIA-Swissknife-0.1b.user.js deleted file mode 100644 index 9e25a73..0000000 --- a/tampermonkey-script/GAIA-Swissknife-0.1b.user.js +++ /dev/null @@ -1,88 +0,0 @@ -// ==UserScript== -// @id gaia-swissknife@luigidacunto -// @name GAIA - Swissknife -// @namespace https://gitlab.luigidacunto.com/consultant/gaia-swissknife -// @updateURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/GAIA-Swissknife-0.1b.user.js -// @downloadURL https://luigidacunto.com/scripts/gaia-swissknife/tampermonkey-script/GAIA-Swissknife-0.1b.user.js -// @author Luigi D'Acunto -// @version 0.1b -// @description Aggiunge funzionalità alle pagine di GAIA -// @match https://gaia.cri.it/* -// @grant none -// @run-at document-idle -// ==/UserScript== - -(function() { - 'use strict'; - // 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'; - - // Controlla se jQuery è caricato, altrimenti lo carica - function ensureJQuery(callback) { - if (window.jQuery) { - callback(window.jQuery); - } else { - let script = document.createElement('script'); - script.src = 'https://code.jquery.com/jquery-3.6.0.min.js'; - script.onload = () => callback(window.jQuery); - document.head.appendChild(script); - } - } - - ensureJQuery(($) => { - console.log("GAIA Swissknife: jQuery caricato con successo!"); - - function initScript() { - // Funzione generica per aggiungere i pulsanti per settare gli esiti degli esami - function addExamOutcomeButtons() { - // Verifica che ci siano i select che gestiscono gli esiti - if ($("select[id^='id_part_'][id$='-ammissione']").length > 0) { - // Cerca il menu laterale (ul#sezione) dove inserire il blocco - if ($('#sezione').length > 0) { - console.log("GAIA Swissknife: Elementi trovati, aggiungo i pulsanti nel menu laterale..."); - - const buttonsHTML = ` -
- -
  • - -
  • -
  • - -
  • - `; - $('#sezione').append(buttonsHTML); - - // Evento per il pulsante "Tutti Ammessi/Esito Positivo x2" - $('#button_set_ampp').click(() => { - $("select[id^='id_part_'][id$='-ammissione']").val("AM").trigger('change'); - $("select[id^='id_part_'][id$='-esito_parte_1']").val("P").trigger('change'); - $("select[id^='id_part_'][id$='-esito_parte_2']").val("P").trigger('change'); - console.log("GAIA Swissknife: Valori impostati - Ammessi, Positivo, Positivo"); - }); - - // Evento per il pulsante "Ammessi, Positivo, Non previsto" - $('#button_set_ampo').click(() => { - $("select[id^='id_part_'][id$='-ammissione']").val("AM").trigger('change'); - $("select[id^='id_part_'][id$='-esito_parte_1']").val("P").trigger('change'); - $("select[id^='id_part_'][id$='-esito_parte_2']").val("O").trigger('change'); - console.log("GAIA Swissknife: Valori impostati - Ammessi, Positivo, Non previsto"); - }); - } else { - console.log("GAIA Swissknife: Elemento ul#sezione non trovato."); - } - } else { - console.log("GAIA Swissknife: Nessun elemento trovato, i pulsanti non verranno mostrati."); - } - } - - $(document).ready(addExamOutcomeButtons); - } - - initScript(); - }); -})(); \ No newline at end of file diff --git a/tampermonkey-script/GAIA-Swissknife.user.js b/tampermonkey-script/GAIA-Swissknife.user.js new file mode 100644 index 0000000..a260f4e --- /dev/null +++ b/tampermonkey-script/GAIA-Swissknife.user.js @@ -0,0 +1,197 @@ +// ==UserScript== +// @name GAIA - Swissknife +// @namespace https://gitlab.luigidacunto.com/consultant/gaia-swissknife +// @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.2.001b +// @description Aggiunge funzionalità alle pagine di GAIA +// @match https://gaia.cri.it/* +// @grant none +// @run-at document-idle +// ==/UserScript== + +(function() { + 'use strict'; + // 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'; + + // Controlla se jQuery è caricato, altrimenti lo carica + function ensureJQuery(callback) { + if (window.jQuery) { + callback(window.jQuery); + } else { + let script = document.createElement('script'); + script.src = 'https://code.jquery.com/jquery-3.6.0.min.js'; + script.onload = () => callback(window.jQuery); + document.head.appendChild(script); + } + } + + ensureJQuery(($) => { + console.log("GAIA Swissknife: jQuery caricato con successo!"); + + function initScript() { + + // 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() ..."); + // Verifica che ci siano i select che gestiscono gli esiti + if ($("select[id^='id_part_'][id$='-ammissione']").length > 0) { + // Cerca il menu laterale (ul#sezione) dove inserire il blocco + if ($('#sezione').length > 0) { + console.log("GAIA Swissknife: Elementi trovati, aggiungo i pulsanti nel menu laterale..."); + + ensureSwissknifeHeader(); + // Aggiungi i pulsanti per settare gli esiti + const buttonsHTML = ` +
  • + +
  • +
  • + +
  • +
  • + +
  • + `; + $('#sezione').append(buttonsHTML); + + // Evento per il pulsante "Tutti Ammessi/Esito Positivo x2" + $('#button_set_ampp').click(() => { + $("select[id^='id_part_'][id$='-ammissione']").val("AM").trigger('change'); + $("select[id^='id_part_'][id$='-esito_parte_1']").val("P").trigger('change'); + $("select[id^='id_part_'][id$='-esito_parte_2']").val("P").trigger('change'); + console.log("GAIA Swissknife: Valori impostati - Ammessi, Positivo, Positivo"); + }); + + // Evento per il pulsante "Ammessi, Positivo, Non previsto" + $('#button_set_ampo').click(() => { + $("select[id^='id_part_'][id$='-ammissione']").val("AM").trigger('change'); + $("select[id^='id_part_'][id$='-esito_parte_1']").val("P").trigger('change'); + $("select[id^='id_part_'][id$='-esito_parte_2']").val("O").trigger('change'); + console.log("GAIA Swissknife: Valori impostati - Ammessi, Positivo, Non previsto"); + }); + + // Evento per il pulsante "Ammessi, Non previsto, Positivo" + $('#button_set_amop').click(() => { + $("select[id^='id_part_'][id$='-ammissione']").val("AM").trigger('change'); + $("select[id^='id_part_'][id$='-esito_parte_1']").val("O").trigger('change'); + $("select[id^='id_part_'][id$='-esito_parte_2']").val("P").trigger('change'); + console.log("GAIA Swissknife: Valori impostati - Ammessi, Non previsto, Positivo"); + }); + + } else { + console.log("GAIA Swissknife: Elemento ul#sezione non trovato."); + } + } else { + console.log("GAIA Swissknife: Nessun elemento trovato, i pulsanti non verranno mostrati."); + } + } + + // Funzione per aggiungere il pulsante "Apri tutte le schede profilo" + function addOpenAllProfilesButton() { + if (!window.location.href.includes('/iscritti/')) return; + + const openButton = $(` + + `); + + openButton.on('click', () => { + const iframe = document.querySelector('iframe.embed-responsive-item'); + if (!iframe) { + alert("Impossibile trovare l'iframe con la lista."); + console.log("GAIA Swissknife: iframe non trovato."); + return; + } + + // Verifica che il contenuto sia accessibile (same-origin) + let iframeDoc; + try { + iframeDoc = iframe.contentDocument || iframe.contentWindow.document; + } catch (err) { + alert("Accesso all'iframe bloccato per motivi di sicurezza (cross-origin)."); + console.error("GAIA Swissknife: accesso iframe negato.", err); + return; + } + + const $iframeLinks = $(iframeDoc).find("a[href^='/profilo/'][href*='?fpc']"); + if ($iframeLinks.length === 0) { + alert("Nessun profilo trovato all'interno dell'iframe."); + console.log("GAIA Swissknife: Nessun link profilo nell'iframe."); + return; + } + + const profileLinks = $iframeLinks.map(function() { + const href = $(this).attr('href'); + const match = href.match(/\/profilo\/(\d+)\//); + if (match && match[1]) { + const id = match[1]; + return `https://gaia.cri.it/profilo/${id}/curriculum/?us`; + } + return null; + }).get().filter(Boolean); + + + // Mostra le URL in console sempre + console.log("GAIA Swissknife: Profili trovati:"); + profileLinks.forEach(link => console.log(link)); + + if (!confirm(`Vuoi aprire ${profileLinks.length} profili in nuove schede?`)) return; + + profileLinks.forEach(link => { + window.open(link, '_blank'); + }); + + console.log(`GAIA Swissknife: Aperte ${profileLinks.length} schede da iframe.`); + }); + + // Inserimento del pulsante nel menu laterale o in floating + if ($('#sezione').length > 0) { + ensureSwissknifeHeader(); + + $('#sezione').append( + $('
  • ').append(openButton) + ); + } else { + openButton.css({ + position: 'fixed', + top: '10px', + right: '10px', + zIndex: 9999 + }).appendTo('body'); + } + } + + + + $(document).ready(() => { + addExamOutcomeButtons(); + addOpenAllProfilesButton(); + }); + } + + initScript(); + }); +})(); \ No newline at end of file