Aggiunti file javascript
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
// ==UserScript==
|
||||
// @name Pulsante NRAP Convalida - Footer
|
||||
// @namespace http://tampermonkey.net/
|
||||
// @version 1.0
|
||||
// @description Inserisce il pulsante "Convalida" nell'header blu, allineato a destra
|
||||
// @author Gemini+Gatto.
|
||||
// @match *://www.ilportaledeltrasporto.it/nove/gestioneistanzanove/spa/*
|
||||
// @grant none
|
||||
// ==/UserScript==
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
function injectButtonInHeader() {
|
||||
// 1. Cerchiamo l'header blu (HeaderComponent)
|
||||
const header = document.querySelector('header.HeaderComponent');
|
||||
|
||||
// 2. Cerchiamo il pulsante originale nel footer per sapere se dobbiamo mostrare il nostro
|
||||
const allButtons = document.querySelectorAll('footer button, .FooterNavComponent button');
|
||||
let originalBtn = null;
|
||||
for (let btn of allButtons) {
|
||||
if (btn.textContent.toLowerCase().includes('convalida')) {
|
||||
originalBtn = btn;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const existingBtn = document.querySelector('#quick-convalida-header');
|
||||
|
||||
// Se non c'è il tasto originale nel footer, nascondiamo il nostro
|
||||
if (!originalBtn) {
|
||||
if (existingBtn) existingBtn.style.display = 'none';
|
||||
return;
|
||||
}
|
||||
|
||||
// 3. Se l'header esiste e il tasto non c'è ancora, lo creiamo
|
||||
if (header && !existingBtn) {
|
||||
// Rendiamo l'header "relative" per poter posizionare il tasto "absolute" dentro di esso
|
||||
header.style.position = 'relative';
|
||||
|
||||
const btn = document.createElement('button');
|
||||
btn.id = 'quick-convalida-header';
|
||||
btn.innerHTML = '✅ CONVALIDA DOCUMENTAZIONE';
|
||||
|
||||
// STILE: Posizionato a destra, dentro la zona blu
|
||||
btn.style.cssText = `
|
||||
position: absolute;
|
||||
right: 56px; /* Distanza dal bordo destro */
|
||||
top: 78%; /* Centratura verticale rispetto all'header */
|
||||
transform: translateY(-50%);
|
||||
padding: 8px 20px;
|
||||
background-color: #28a745; /* Verde che stacca sul blu */
|
||||
color: white;
|
||||
border: 1px solid #ffffff;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
z-index: 9999;
|
||||
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
|
||||
white-space: nowrap;
|
||||
`;
|
||||
|
||||
// Azione al click
|
||||
btn.onclick = function(e) {
|
||||
e.preventDefault();
|
||||
// Ricerchiamo il tasto originale "fresco" nel footer
|
||||
const target = Array.from(document.querySelectorAll('footer button'))
|
||||
.find(b => b.textContent.toLowerCase().includes('convalida'));
|
||||
if (target) {
|
||||
console.log("Tampermonkey: Clicco Convalida originale...");
|
||||
target.click();
|
||||
} else {
|
||||
alert("Pulsante originale non trovato nel footer!");
|
||||
}
|
||||
};
|
||||
|
||||
header.appendChild(btn);
|
||||
} else if (existingBtn) {
|
||||
// Se esiste già, assicuriamoci che sia visibile
|
||||
existingBtn.style.display = 'block';
|
||||
}
|
||||
}
|
||||
|
||||
// Monitoraggio continuo per gestire i cambi pagina di React
|
||||
const observer = new MutationObserver(injectButtonInHeader);
|
||||
observer.observe(document.body, { childList: true, subtree: true });
|
||||
|
||||
setInterval(injectButtonInHeader, 1000);
|
||||
injectButtonInHeader();
|
||||
})();
|
||||
Reference in New Issue
Block a user