Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 143: Riga 143:
/* ======================= IMPORTA CitationPopup.js======================= */
/* ======================= IMPORTA CitationPopup.js======================= */


mw.loader.load('/mediawiki/index.php?title=MediaWiki:CommonCita.js&action=raw&ctype=text/javascript');
var script = document.createElement('script');
script.src = '/mediawiki/index.php?title=MediaWiki:CommonCita.js&action=raw&ctype=text/javascript';
script.type = 'text/javascript';
document.head.appendChild(script);

Versione delle 10:23, 25 apr 2025

console.log("✅ Common.js è attivo");

/* ======================= 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", "/mediawiki/index.php?title=MediaWiki:CommonTranslate.js&action=raw&ctype=text/javascript");
        aggiungiAiTools("translate-update", "🔄 Aggiorna Traduzione", "/mediawiki/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 CommonTranslate.js ======================= */
importScript('MediaWiki:CommonTranslateUpdate.js');

/* ======================= IMPORTA CommonDashboard.js ======================= */

if (mw.config.get('wgPageName') === 'Dashboard_Masticationpedia') {
  importScript('MediaWiki:CommonDashboard.js');
}

// Carica Merriweather da Google Fonts
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://fonts.googleapis.com/css2?family=Merriweather&display=swap';
document.head.appendChild(link);

/* ======================= IMPORTA CitationPopup.js======================= */

var script = document.createElement('script');
script.src = '/mediawiki/index.php?title=MediaWiki:CommonCita.js&action=raw&ctype=text/javascript';
script.type = 'text/javascript';
document.head.appendChild(script);