MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
 
Line 1: Line 1:
/* Force viewport meta for mobile responsiveness */
/* Force viewport meta for mobile responsiveness */
(function() {
(function() {
    var existing = document.querySelector('meta[name="viewport"]');
var existing = document.querySelector('meta[name="viewport"]');
    if (existing) {
if (existing) {
        existing.setAttribute('content', 'width=device-width, initial-scale=1');
existing.setAttribute('content', 'width=device-width, initial-scale=1');
    } else {
} else {
        var meta = document.createElement('meta');
var meta = document.createElement('meta');
        meta.name = 'viewport';
meta.name = 'viewport';
        meta.content = 'width=device-width, initial-scale=1';
meta.content = 'width=device-width, initial-scale=1';
        document.head.appendChild(meta);
document.head.appendChild(meta);
    }
}
})();
})();


$(document).ready(function () {
$(document).ready(function () {


    /* ===== PIN MAIN MENU ON DESKTOP ===== */
/* ===== PIN MAIN MENU ON DESKTOP ===== */
    if (window.innerWidth >= 1000) {
if (window.innerWidth >= 1000) {
        var pinnedContainer = document.getElementById('vector-main-menu-pinned-container');
var pinnedContainer = document.getElementById('vector-main-menu-pinned-container');
        var unpinnedContainer = document.getElementById('vector-main-menu-unpinned-container');
var unpinnedContainer = document.getElementById('vector-main-menu-unpinned-container');
        var mainMenu = document.getElementById('vector-main-menu');
var mainMenu = document.getElementById('vector-main-menu');


        if (unpinnedContainer && mainMenu) {
if (unpinnedContainer && mainMenu) {
            if (pinnedContainer && !pinnedContainer.contains(mainMenu)) {
if (pinnedContainer && !pinnedContainer.contains(mainMenu)) {
                pinnedContainer.appendChild(mainMenu);
pinnedContainer.appendChild(mainMenu);
            }
}
        }
}


        // Click pin button if available
// Click pin button if available
        var pinButton = document.querySelector('.vector-pinnable-header-pin-button');
var pinButton = document.querySelector('.vector-pinnable-header-pin-button');
        if (pinButton) pinButton.click();
if (pinButton) pinButton.click();
    }
}


    /* ===== MOVE TRANSLATE LINK INTO SIDEBAR ===== */
/* ===== MOVE TRANSLATE LINK INTO SIDEBAR ===== */
    // Find translate link from Tools menu
// Find translate link from Tools menu
    var $translateLi = $('#p-tb li').filter(function () {
var $translateLi = $('#p-tb li').filter(function () {
        return $(this).find('a').attr('href') &&
return $(this).find('a').attr('href') &&
              $(this).find('a').attr('href').indexOf('Translate') !== -1;
$(this).find('a').attr('href').indexOf('Translate') !== -1;
    });
});


    var translateHref = '#';
var translateHref = '#';
    if ($translateLi.length) {
if ($translateLi.length) {
        translateHref = $translateLi.find('a').attr('href');
translateHref = $translateLi.find('a').attr('href');
        $translateLi.hide(); // Hide from Tools menu
$translateLi.hide(); // Hide from Tools menu
    }
}


    // Also check ULS trigger (MediaWiki translate extension button)
// Also check ULS trigger (MediaWiki translate extension button)
    var $ulsBtn = $('#p-lang-btn, .uls-trigger, #pt-uls');
var $ulsBtn = $('#p-lang-btn, .uls-trigger, #pt-uls');
    if ($ulsBtn.length) {
if ($ulsBtn.length) {
        translateHref = $ulsBtn.attr('href') || translateHref;
translateHref = $ulsBtn.attr('href') || translateHref;
    }
}


    // Inject Translate into the sidebar navigation
    var $sidebarNav = $('#p-navigation .vector-menu-content-list');
    if ($sidebarNav.length) {
        $sidebarNav.append(
            '<li id="sidebar-translate-item">' +
            '<a id="sidebar-translate-link" href="' + translateHref + '">' +
            '🌐 Translate this page' +
            '</a>' +
            '</li>'
        );
    }


    /* ===== CLEAN UP TOOLS MENU — REMOVE LESS USEFUL ITEMS ===== */
/* ===== CLEAN UP TOOLS MENU — REMOVE LESS USEFUL ITEMS ===== */
    // Optional: hide items you don't want in Tools
// Optional: hide items you don't want in Tools
    var hideFromTools = ['t-permalink', 't-info']; // add IDs to hide
var hideFromTools = ['t-permalink', 't-info']; // add IDs to hide
    hideFromTools.forEach(function(id) {
hideFromTools.forEach(function(id) {
        $('#' + id).hide();
$('#' + id).hide();
    });
});


});
});