Aggiunti file javascript

This commit is contained in:
2026-05-12 21:05:35 +02:00
commit 83a8402bb7
20 changed files with 2901 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
// ==UserScript==
// @name Correggi Offset COLLAUDO Portale
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Correzione puntuale: elimina sfasamento in testa e recupera coda dal campo successivo
// @author Gemini+Gatto.
// @match https://www.ilportaledellautomobilista.it/revisioni/certificatoApprovazioneVeicolo/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 0. STATO DI ESECUZIONE (Salvato nella sessione del browser)
// Usiamo sessionStorage così se l'utente ricarica la pagina, lo stato si resetta.
let giaEseguito = false;
// --- 1. CONFIGURAZIONE FILTRI ---
const targetPhrase = "Dettaglio Certificato Approvazione Veicolo";
//const targetDomain = "www.ilportaledeltrasporto.it";
// --- 2. VERIFICA CONDIZIONI DI ATTIVAZIONE ---
if (!document.body.innerText.includes(targetPhrase)) {
console.log("Script disattivato: Frase specifica non trovata nella pagina.");
return;
}
function correggiValorePerValore() {
const baseID = "DettaglioCertificatoApprovazioneVeicolo_richiestaCertificatoApprovazioneVeicoloView_righeDescrittiveList_";
const numCampi = 12; // Da 0 a 11 (a-l)
let v = [];
if (giaEseguito) {
console.warn("Tentativo duplicato: USCITA o ricaricamento pagina in corso...");
console.log("Script disattivato: Gia apportate modifiche.");
// window.location.reload(); // Forza il refresh (F5)
return;
}
// 1. Carichiamo i valori attuali in un array v (v[0]=a, v[1]=b, ..., v[11]=l)
for (let i = 0; i < numCampi; i++) {
let el = document.getElementById(baseID + i + "_");
v.push(el ? el.value : "");
}
console.log("Valori letti prima della correzione:", v);
let v_corr = new Array(numCampi);
// 2. Applicazione della strategia definita dall'utente
// a_corr = a inalterato
v_corr[0] = v[0];
// Da b a k (indici da 1 a 10)
// b_corr (i=1): elimina 1 char, aggiunge primi 1 di c (v[2])
// c_corr (i=2): elimina 2 char, aggiunge primi 2 di d (v[3])
// ...
for (let i = 1; i <= 10; i++) {
let n_da_eliminare = i;
let n_da_recuperare = i;
// Prendiamo il campo corrente, togliamo l'inizio
let parte_restante = v[i].substring(n_da_eliminare);
// Prendiamo i caratteri "scivolati" dal campo successivo
let coda_recuperata = v[i+1].substring(0, n_da_recuperare);
// Componiamo il valore corretto
v_corr[i] = parte_restante + coda_recuperata;
console.log(`Debug Cella ${i}: rimosse ${n_da_eliminare} in testa, aggiunte ${n_da_recuperare} da cella successiva.`);
}
// l_corr (l'ultimo campo, indice 11) - presumibilmente resta la parte rimanente o inalterato
v_corr[11] = v[11].substring(11);
// 3. Scrittura dei valori corretti nei campi HTML
for (let i = 0; i < numCampi; i++) {
let el = document.getElementById(baseID + i + "_");
if (el) {
// Assicuriamoci che non superi mai i 36 caratteri (limite database)
el.value = v_corr[i].substring(0, 36);
el.style.backgroundColor = "#e8f5e9"; // Feedback visivo (verde)
el.style.border = "1px solid #2e7d32";
}
}
giaEseguito = true;
// alert("Correzione applicata secondo lo schema definito.");
}
// Creazione del Pulsante (3cm da destra, 8cm dall'alto)
const btn = document.createElement('button');
btn.type = "button";
btn.innerHTML = "CORREGGI";
btn.style.cssText = `
position: fixed;
right: 3cm;
top: 4cm;
z-index: 10000;
padding: 12px 20px;
background-color: #ff5722;
color: white;
border: 2px solid #e64a19;
font-weight: bold;
cursor: pointer;
box-shadow: 0 4px 6px rgba(0,0,0,0.3);
`;
btn.onclick = (e) => {
e.preventDefault();
correggiValorePerValore();
};
document.body.appendChild(btn);
})();