Aggiungi pulsanti per impostare gli esiti degli esami e recupera la versione dello script

This commit is contained in:
Luigi D'Acunto 2025-03-06 23:36:56 +01:00
parent 0be64297ad
commit 61c3048d6f

View file

@ -1,6 +1,7 @@
// ==UserScript==
// @id gaia-swissknife@luigidacunto
// @name GAIA - Swissknife
// @namespace https://luigidacunto.com
// @namespace https://gitlab.luigidacunto.com/consultant/gaia-swissknife
// @author Luigi D'Acunto
// @version 0.1b
// @description Aggiunge funzionalità alle pagine di GAIA
@ -11,6 +12,8 @@
(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) {
@ -27,41 +30,57 @@
ensureJQuery(($) => {
console.log("GAIA Swissknife: jQuery caricato con successo!");
// Verifica la presenza dei <select> prima di aggiungere il pulsante
function addButtonSetAMPP() {
if ($("select[id^='id_part_'][id$='-ammissione']").length > 0) {
console.log("GAIA Swissknife: Elementi trovati, aggiungo il pulsante...");
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...");
// Crea il pulsante
const btn = $('<button>')
.text('Tutti Ammessi/Esito Positivo')
.css({
position: 'fixed',
top: '10px',
right: '10px',
zIndex: 9999,
padding: '8px',
backgroundColor: '#007BFF',
color: '#FFF',
border: 'none',
borderRadius: '4px',
cursor: 'pointer'
})
.appendTo('body')
.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');
const buttonsHTML = `
<hr>
<li class="dropdown-header grassetto piu-grande">GAIA Swissknife v${currentVersion}</li>
<li role="presentation">
<button id="button_set_ampp" style="margin: 5px; padding: 8px; width: 97%; background-color: #007BFF; color: #FFF; border: none; border-radius: 4px; cursor: pointer;">
Ammessi, Positivo, Positivo
</button>
</li>
<li role="presentation">
<button id="button_set_ampo" style="margin: 5px; padding: 8px; width: 97%; background-color: #28a745; color: #FFF; border: none; border-radius: 4px; cursor: pointer;">
Ammessi, Positivo, Non previsto
</button>
</li>
`;
$('#sezione').append(buttonsHTML);
console.log("GAIA Swissknife: Tutti i valori impostati correttamente!");
});
} else {
console.log("GAIA Swissknife: Nessun elemento trovato, il pulsante non verrà mostrato.");
// 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);
}
// Aspetta che il DOM sia completamente caricato prima di eseguire la funzione
$(document).ready(addButtonSetAMPP);
initScript();
});
})();