MediaWiki:Citizen.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
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() {
 
$(document).ready(function() {
 
setTimeout(function() {
// Check the initial state
 
 
if (mw.user.isAnon()) {
checkElements();
 
 
var elements = $('.cs-header > .oo-ui-widget-disabled');
 
// Use event delegation to handle dynamically added elements
+
elements.each(function() {
 
var $element = $(this);
$(document).on('DOMNodeInserted', function(event) {
 
 
var loginMessage = '<p style="cs-custom-login-prompt">Please <a href="/wiki/Special:UserLogin">login</a> or <a href="/wiki/Special:CreateAccount">sign up</a> to continue.</p>';
var target = $(event.target);
 
 
$element.after(loginMessage);
if (target.hasClass('oo-ui-buttonElement-button')) {
 
checkElements();
+
});
 
}
 
}
});
+
}, 250);
 
function checkElements() {
 
// Select all elements with the specified class
 
var elements = $('.oo-ui-buttonElement-button');
 
elements.each(function() {
 
var $element = $(this);
 
insertLoginMessage($element);
 
});
 
}
 
 
});
 
});

Latest revision as of 01:31, 15 October 2023

$(document).ready(function() {
    setTimeout(function() {
        if (mw.user.isAnon()) {
            var elements = $('.cs-header > .oo-ui-widget-disabled');
            elements.each(function() {
                var $element = $(this);
                var loginMessage = '<p style="cs-custom-login-prompt">Please <a href="/wiki/Special:UserLogin">login</a> or <a href="/wiki/Special:CreateAccount">sign up</a> to continue.</p>';
                $element.after(loginMessage);
            });
        }
    }, 250);
});