Aggiunti file javascript
This commit is contained in:
@@ -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);
|
||||
})();
|
||||
Reference in New Issue
Block a user