MediaWiki:Citizen.js

MediaWiki interface page
Revision as of 01:03, 15 October 2023 by Quenty (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.
function isUserLoggedIn() {
    // Use MediaWiki's user interface elements to check the login status
    return !mw.user.isAnon();
}

function insertLoginMessage($element) {
    // Check if aria-disabled is set to "true"
    if ($element.attr('aria-disabled') === 'true') {
        // Create a new HTML snippet with MediaWiki links
        var loginMessage = '<p>Please <a href="/wiki/Special:UserLogin">login</a> or <a href="/wiki/Special:UserSignup">sign up</a> to continue.</p>';

        // Insert the message after the disabled button
        $element.after(loginMessage);
    }
}

$(document).ready(function() {
    // Check the initial state
    checkElements();

    // Use event delegation to handle dynamically added elements
    $(document).on('DOMNodeInserted', function(event) {
        var target = $(event.target);
        if (target.hasClass('oo-ui-buttonElement-button')) {
            checkElements();
        }
    });

    function checkElements() {
        // Select all elements with the specified class
        var elements = $('.oo-ui-buttonElement-button');
        elements.each(function() {
            var $element = $(this);
            insertLoginMessage($element);
        });
    }
});