MediaWiki:Common.js

From Hidden Mickey Wiki

Revision as of 15:27, 18 September 2025 by Scokely (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* 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
});
/* MediaWiki:Common.js */

// Debug check — make sure the file runs
console.log("✅ Common.js is running!");

// Wait for the page to be ready
$(document).ready(function () {
    // Avoid adding it multiple times
    if ($("#settings-menu").length) return;

    // Create a minimal dropdown
    var menuHtml = `
        <div id="settings-menu" style="position:relative; display:inline-block; margin-left:15px;">
          <button id="settings-button" style="padding:6px 12px; cursor:pointer;">
            Settings ▼
          </button>
          <div id="settings-dropdown" style="
                display:none;
                position:absolute;
                background:#fff;
                border:1px solid #ccc;
                min-width:150px;
                z-index:9999;
              ">
            <a href="/wiki/Special:Preferences" style="display:block; padding:8px;">Preferences</a>
            <a href="/wiki/Special:UserLogout" style="display:block; padding:8px;">Log out</a>
          </div>
        </div>
    `;

    // Append to personal tools (usually top-right)
    $("#p-personal ul").first().append(
        $("<li>").append(menuHtml)
    );

    // Toggle dropdown visibility
    $(document).on("click", "#settings-button", function () {
        $("#settings-dropdown").toggle();
    });

    // Close dropdown when clicking elsewhere
    $(document).on("click", function (e) {
        if (!$(e.target).closest("#settings-menu").length) {
            $("#settings-dropdown").hide();
        }
    });
});