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 = `
-
-
GAIA Swissknife v${currentVersion}
-
-
-
-
-
-
- `;
- $('#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 = `
+
+
+ GAIA Swissknife v${currentVersion}
+
+ `;
+ $('#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