MediaWiki:Citizen.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
Line 1: Line 1:
 
$(document).ready(function() {
 
$(document).ready(function() {
  +
setTimeout(function() {
// Check if the user is not logged in
 
if (mw.user.isAnon()) {
+
// Check if the user is not logged in
var handleElements = function() {
+
if (mw.user.isAnon()) {
 
// Select the elements with the specified class
 
// Select the elements with the specified class
 
var elements = $('.oo-ui-buttonElement-button');
 
var elements = $('.oo-ui-buttonElement-button');
Line 15: Line 15:
 
var loginMessage = '<p>Please <a href="/wiki/Special:UserLogin">login</a> or <a href="/wiki/Special:CreateAccount">sign up</a> to continue.</p>';
 
var loginMessage = '<p>Please <a href="/wiki/Special:UserLogin">login</a> or <a href="/wiki/Special:CreateAccount">sign up</a> to continue.</p>';
   
// Check if the message is already present to avoid duplication
+
// Insert the message after the disabled button
if (!$element.next().hasClass('login-message')) {
+
$element.after(loginMessage);
// Insert the message after the disabled button
 
$element.after(loginMessage);
 
}
 
 
}
 
}
 
});
 
});
};
+
}
  +
}, 2000); // Delay for 2 seconds (adjust as needed)
 
// Initial check
 
handleElements();
 
 
// Use delegated event handling to handle dynamically added elements
 
$(document).on('DOMNodeInserted', function(event) {
 
var target = $(event.target);
 
 
// Check if the target has the specified class
 
if (target.hasClass('oo-ui-buttonElement-button')) {
 
handleElements();
 
}
 
});
 
}
 
 
});
 
});

Revision as of 01:18, 15 October 2023

$(document).ready(function() {
    setTimeout(function() {
        // Check if the user is not logged in
        if (mw.user.isAnon()) {
            // Select the elements with the specified class
            var elements = $('.oo-ui-buttonElement-button');

            // Iterate through the selected elements
            elements.each(function() {
                var $element = $(this);

                // 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:CreateAccount">sign up</a> to continue.</p>';

                    // Insert the message after the disabled button
                    $element.after(loginMessage);
                }
            });
        }
    }, 2000); // Delay for 2 seconds (adjust as needed)
});