MediaWiki:Common.js: Difference between revisions

From Hidden Mickey Wiki

No edit summary
Tag: Manual revert
No edit summary
Tag: Reverted
Line 96: Line 96:
         'pt-editsource'
         'pt-editsource'
     );
     );
});
// Hamburger menu
// MediaWiki:Common.js
$(function() {
    // Create the hamburger container
    var $hamburger = $('<div id="mw-hamburger-menu">&#9776;</div>'); // ☰
    // Prepend it to the header
    // Try to place it before the site title
    var $title = $('#p-logo, #site-name, .mw-headline, #firstHeading').first();
    if ($title.length) {
        $title.before($hamburger);
    } else {
        // Fallback: prepend to the header container
        $('#mw-header, #mw-page-base, body').first().prepend($hamburger);
    }
    // Dropdown menu items
    var $menu = $('<ul id="mw-hamburger-dropdown" class="mw-dropdown"></ul>');
    var items = [
        {text: 'Main Page', href: '/wiki/Main_Page'},
        {text: 'Recent Changes', href: '/wiki/Special:RecentChanges'},
        {text: 'Random Page', href: '/wiki/Special:Random'},
        {text: 'Help', href: '/wiki/Help:Contents'}
    ];
    items.forEach(function(item) {
        $menu.append($('<li>').append($('<a>').attr('href', item.href).text(item.text)));
    });
    $hamburger.append($menu);
    // Toggle dropdown on click
    $hamburger.click(function(e) {
        e.stopPropagation();
        $menu.toggle();
    });
    // Hide dropdown if clicking elsewhere
    $(document).click(function() {
        $menu.hide();
    });
});
});

Revision as of 14:59, 19 September 2025

/* Any JavaScript here will be loaded for all users on every page load. */
// JavaScript code to save checkbox state and restore it when the page loads
$(document).ready(function() {
    // Function to save the state of checkboxes to localStorage
    function saveCheckboxState() {
        $('input[type="checkbox"]').each(function() {
            localStorage.setItem($(this).attr('id'), $(this).prop('checked'));
        });
    }

    // Function to load the state of checkboxes from localStorage
    function loadCheckboxState() {
        $('input[type="checkbox"]').each(function() {
            const savedState = localStorage.getItem($(this).attr('id'));
            if (savedState !== null) {
                $(this).prop('checked', savedState === 'true');
            }
        });
    }

    // Load the saved checkbox state when the page is loaded
    loadCheckboxState();

    // Save the checkbox state whenever a checkbox is changed
    $('input[type="checkbox"]').change(function() {
        saveCheckboxState();
    });
});

/* Adjust the search box width
$(document).ready(function () {
    $('#searchInput').css('width', '600px'); // Adjust width as needed
}); */

// "Where To" dropdown
$(function () {
    // Prevent duplicate
    if ($('#mw-settings-dropdown').length) return;

    // Create container
    var $container = $('<div id="mw-settings-dropdown"></div>');
    var $button = $('<button>Where To? ▾</button>');
    var $list = $('<ul></ul>');

    // Define menu items
    var menuItems = [
        { title: 'Disneyland', page: 'Disneyland' },
        { title: 'California Adventure', page: 'California Adventure' },
        { title: 'Disneyland Resort', page: 'Disneyland Resort' }
    ];

    // Populate dropdown
    menuItems.forEach(function(item) {
        var $li = $('<li></li>');
        var $a = $('<a></a>').attr('href', mw.util.getUrl(item.page)).text(item.title);
        $li.append($a);
        $list.append($li);
    });

    $container.append($button).append($list);

    // Insert into navbar-right if exists
    var $navbar = $('#mw-navbar-right');
    if ($navbar.length) {
        // Prepend = place at far left of navbar-right
        $navbar.prepend($container);
    } else {
        // fallback: absolute top-right
        $container.css({ position: 'absolute', top: '10px', right: '10px' });
        $('body').append($container);
    }

    // Toggle dropdown
    $button.on('click', function(e) {
        $list.toggle();
        e.stopPropagation();
    });

    // Close dropdown when clicking outside
    $(document).on('click', function() {
        $list.hide();
    });

    $container.on('click', function(e) {
        e.stopPropagation();
    });
});

// Add Edit Source to user dropdown
mw.loader.using('mediawiki.util', function () {
    // Add a new entry into the user dropdown
    mw.util.addPortletLink(
        'p-personal',                        // user menu ID
        mw.util.getUrl( mw.config.get('wgPageName'), { action: 'edit' } ), 
        'Edit Source',
        'pt-editsource'
    );
});

// Hamburger menu
// MediaWiki:Common.js
$(function() {
    // Create the hamburger container
    var $hamburger = $('<div id="mw-hamburger-menu">&#9776;</div>'); // ☰

    // Prepend it to the header
    // Try to place it before the site title
    var $title = $('#p-logo, #site-name, .mw-headline, #firstHeading').first();
    if ($title.length) {
        $title.before($hamburger);
    } else {
        // Fallback: prepend to the header container
        $('#mw-header, #mw-page-base, body').first().prepend($hamburger);
    }

    // Dropdown menu items
    var $menu = $('<ul id="mw-hamburger-dropdown" class="mw-dropdown"></ul>');
    var items = [
        {text: 'Main Page', href: '/wiki/Main_Page'},
        {text: 'Recent Changes', href: '/wiki/Special:RecentChanges'},
        {text: 'Random Page', href: '/wiki/Special:Random'},
        {text: 'Help', href: '/wiki/Help:Contents'}
    ];

    items.forEach(function(item) {
        $menu.append($('<li>').append($('<a>').attr('href', item.href).text(item.text)));
    });

    $hamburger.append($menu);

    // Toggle dropdown on click
    $hamburger.click(function(e) {
        e.stopPropagation();
        $menu.toggle();
    });

    // Hide dropdown if clicking elsewhere
    $(document).click(function() {
        $menu.hide();
    });
});