MediaWiki:Common.js: differenze tra le versioni
Nessun oggetto della modifica Etichetta: Ripristino manuale |
Nessun oggetto della modifica Etichetta: Annullato |
||
Riga 132: | Riga 132: | ||
importScript('MediaWiki:CommonDashboard.js'); | importScript('MediaWiki:CommonDashboard.js'); | ||
} | } | ||
/* =============== Aggiunta codice Tooltip ===========*/ | |||
function bindTooltipBox() { | |||
$('.tooltip-trigger-box').off('click').on('click', function () { | |||
$('.tooltip-overlay, .tooltip-box').remove(); | |||
const overlay = $('<div class="tooltip-overlay"></div>'); | |||
const content = $(this).data('tooltip-content') || 'Contenuto non disponibile'; | |||
const box = $(` | |||
<div class="tooltip-box"> | |||
<div class="tooltip-close-btn" title="Chiudi">×</div> | |||
${content} | |||
</div> | |||
`); | |||
$('body').append(overlay, box); | |||
$('.tooltip-overlay, .tooltip-close-btn').on('click', function () { | |||
$('.tooltip-overlay, .tooltip-box').remove(); | |||
}); | |||
}); | |||
} | |||
// 🔁 Esegui al caricamento iniziale e dopo ogni modifica del DOM | |||
$(function () { | |||
bindTooltipBox(); | |||
mw.hook('wikipage.content').add(bindTooltipBox); | |||
}); |
Versione delle 17:37, 19 apr 2025
/* ======================= PULSANTE PURGE ======================= */
mw.loader.using('mediawiki.util').then(function () {
setTimeout(function () {
let menuAzioni = document.getElementById('p-cactions');
if (menuAzioni && !document.getElementById('ca-purge')) {
mw.util.addPortletLink(
'p-cactions',
mw.config.get('wgScript') + '?title=' + mw.config.get('wgPageName') + '&action=purge',
'🔄 Purga',
'ca-purge',
'Pulisci la cache della pagina'
);
console.log("✅ Pulsante 'Purge' aggiunto con successo!");
}
}, 2000);
});
/* ======================= PULSANTE SCROLL TO TOP (Sempre visibile) ======================= */
mw.loader.using('mediawiki.util').then(function () {
mw.hook('wikipage.content').add(function () {
if (!document.getElementById("go-to-top")) {
let goToTopBtn = document.createElement("button");
goToTopBtn.id = "go-to-top";
goToTopBtn.innerText = "⬆️ TOP";
goToTopBtn.style.position = "fixed";
goToTopBtn.style.bottom = "50px";
goToTopBtn.style.right = "20px";
goToTopBtn.style.background = "#3498db";
goToTopBtn.style.color = "#fff";
goToTopBtn.style.border = "none";
goToTopBtn.style.padding = "10px";
goToTopBtn.style.cursor = "pointer";
goToTopBtn.style.borderRadius = "5px";
goToTopBtn.style.zIndex = "1000";
goToTopBtn.style.display = "none";
document.body.appendChild(goToTopBtn);
window.addEventListener("scroll", function () {
goToTopBtn.style.display = window.scrollY > 200 ? "block" : "none";
});
goToTopBtn.addEventListener("click", function () {
window.scrollTo({ top: 0, behavior: "smooth" });
});
console.log("✅ Pulsante Scroll-to-Top aggiunto!");
}
});
});
/* ======================= AGGIUNGE I PULSANTI NEI TOOLS ======================= */
mw.loader.using('mediawiki.util').then(function () {
function aggiungiAiTools(id, label, action) {
let toolsMenu = document.getElementById("p-tb");
if (!toolsMenu) {
console.warn("⚠️ Menu 'Tools' non trovato!");
return;
}
// Rimuove il pulsante dalla pagina, se esiste già
let button = document.getElementById(id);
if (button) {
button.remove();
}
// Crea il link nei Tools
if (!document.getElementById(id + "-tools")) {
let newItem = document.createElement("li");
let link = document.createElement("a");
link.href = "#";
link.id = id + "-tools";
link.textContent = label;
link.addEventListener("click", function (e) {
e.preventDefault();
$.ajax({
url: action,
dataType: "script",
cache: false,
success: function () {
console.log(`✅ Script ${action} caricato ed eseguito.`);
// Avvia la funzione giusta in base al pulsante cliccato
if (id === "traduci-contenuto") {
if (typeof traduciTesto === "function") {
traduciTesto();
} else {
console.error("❌ Errore: traduciTesto non è definita.");
}
} else if (id === "translate-update") {
if (typeof traduciTestoUpdate === "function") {
traduciTestoUpdate();
} else {
console.error("❌ Errore: traduciTestoUpdate non è definita.");
}
} else if (id === "reload-js") {
location.reload(); // Ricarica la pagina
}
},
error: function () {
console.error(`❌ Errore nel caricamento di ${action}`);
}
});
});
newItem.appendChild(link);
toolsMenu.querySelector("ul").appendChild(newItem);
console.log(`✅ Pulsante "${label}" aggiunto nei Tools!`);
}
}
// ✅ Aggiunge i pulsanti SEMPRE nei Tools
setTimeout(function () {
aggiungiAiTools("traduci-contenuto", "🌍 Traduci contenuto", "/index.php?title=MediaWiki:CommonTranslate.js&action=raw&ctype=text/javascript");
aggiungiAiTools("translate-update", "🔄 Aggiorna Traduzione", "/index.php?title=MediaWiki:CommonTranslateUpdate.js&action=raw&ctype=text/javascript");
aggiungiAiTools("reload-js", "♻️ Ricarica JS", "/index.php?title=MediaWiki:Common.js&action=raw&ctype=text/javascript");
}, 2000);
});
/* ======================= NASCONDE I PULSANTI DALLA PAGINA ======================= */
document.addEventListener("DOMContentLoaded", function () {
document.querySelectorAll("#traduci-contenuto-button, #translate-update-button").forEach(btn => btn.style.display = "none");
});
/* ======================= IMPORTA CommonTranslateUpdate.js ======================= */
importScript('MediaWiki:CommonTranslateUpdate.js');
/* ======================= IMPORTA CommonDashboard.js ======================= */
if (mw.config.get('wgPageName') === 'Dashboard_Masticationpedia') {
importScript('MediaWiki:CommonDashboard.js');
}
/* =============== Aggiunta codice Tooltip ===========*/
function bindTooltipBox() {
$('.tooltip-trigger-box').off('click').on('click', function () {
$('.tooltip-overlay, .tooltip-box').remove();
const overlay = $('<div class="tooltip-overlay"></div>');
const content = $(this).data('tooltip-content') || 'Contenuto non disponibile';
const box = $(`
<div class="tooltip-box">
<div class="tooltip-close-btn" title="Chiudi">×</div>
${content}
</div>
`);
$('body').append(overlay, box);
$('.tooltip-overlay, .tooltip-close-btn').on('click', function () {
$('.tooltip-overlay, .tooltip-box').remove();
});
});
}
// 🔁 Esegui al caricamento iniziale e dopo ogni modifica del DOM
$(function () {
bindTooltipBox();
mw.hook('wikipage.content').add(bindTooltipBox);
});