User:Diegusjaimes/global.js

From Meta, a Wikimedia project coordination wiki

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.
// [[:w:en:User:Lupin/popups.js]]
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript');
popupImages=false;
popupMaxWidth=450;
popupAdminLinks=true;

// [[:m:User:Erwin/removespam.js]]
mw.loader.load('https://meta.wikimedia.org/w/index.php?title=User:Erwin/removespam.js&action=raw&ctype=text/javascript');

// [[:m:User:Erwin/xwikirollback.js]]
mw.loader.load('https://meta.wikimedia.org/w/index.php?title=User:Erwin/xwikirollback.js&action=raw&ctype=text/javascript');

mw.loader.load('http://toolserver.org/~erwin85/test.js');

// [[:m:User:Erwin/global.css]]
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Erwin/global.css&action=raw&ctype=text/css', 'text/css');


/**
 * Other functions
 */

//Add new section link for summary
function newSection()
{
    var f = document.editform, t = f.wpTextbox1;
    var re = new RegExp("\=\=(.*?)\=\=","g");
    do
    {
        m = re.exec(t.value);
        if (m != null)
        {
            result = m
        }
    }
    while (m != null)
 
    subject = result[1]
    summary = (typeof(newsectionSummary) != 'undefined' ? newsectionSummary : 'New section')
    f.wpSummary.value = summary + ': /*' + subject + '*/';
}   

$( function ()
{
    // New section summary
    if (wgAction == 'edit' || wgAction == 'submit')
    {
        document.getElementById('wpSummaryLabel').innerHTML = "<a href=\"javascript:newSection()\">New section</a>"
    }
});

/**
 * Steward toolbox
 */
function loadGroups() {
    document.getElementById('n-groups').innerHTML = 'Loading…';
    var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=parse&text={{NUMBERINGROUP:sysop}};{{NUMBERINGROUP:bureaucrat}};{{NUMBERINGROUP:checkuser}};{{NUMBERINGROUP:oversight}};';
    var request = sajax_init_object() ;
    if (request == null) {
        return null;
    }    
    request.open('GET', url, true);
    request.onreadystatechange = function () {
        if(request.readyState==4) {
            parseGroups(request)
        }
    };
    request.setRequestHeader('Pragma', 'cache=yes');
    request.setRequestHeader('Cache-Control', 'no-transform');
    request.send(null);
}

function parseGroups(request) {
    var xml = request.responseXML;
    if ( xml != null ) {
        rtext = xml.getElementsByTagName('text')[0].childNodes[0].nodeValue;
        text = '';
        
        var valueRe = RegExp ('([0-9,]+);', 'g');
        try {
            text += '<a href="' + wgServer + '/wiki/Special:Listusers/sysop">s = ' + valueRe.exec(rtext)[1] + '</a>;';
            text += ' <a href="' + wgServer + '/wiki/Special:Listusers/bureaucrat">b = ' + valueRe.exec(rtext)[1] + '</a>;';
            text += ' <a href="' + wgServer + '/wiki/Special:Listusers/checkuser">c = ' + valueRe.exec(rtext)[1] + '</a>;';
            text += ' <a href="' + wgServer + '/wiki/Special:Listusers/oversight">o = ' + valueRe.exec(rtext)[1] + '</a>;';
        } catch (someError) {
            text += 'Regex error';
        }
    } else {
        text = 'AJAX error';
    }
    document.getElementById('n-groups').innerHTML = text;
}    
            
function stewardLinks() {
    var contents = '<h5>Steward toolbox</h5><div class="pBody"><ul>';
    var groups = '';
    if (wgUserGroups) {
        for (var i = 0; i < wgUserGroups.length; i++) {
            if (wgUserGroups[i] != "*" && wgUserGroups[i] != "user" && wgUserGroups[i] != "autoconfirmed" ) { //Exclude standard rights
                groups += ", " + wgUserGroups[i];
            }
        }
    }
    
    if (groups) {
        groups = groups.substr(2);
    } else {
        groups = 'none';
    }
    contents += '<li id="n-rights"><a href="' + wgServer + '/w/index.php?title=Special%3AListUsers&username=' + wgUserName + '&limit=1">Rights</a>: ' + groups + ' (<a href="http://meta.wikimedia.org/wiki/Special:Userrights/' + wgUserName + '@' + wgDBname + '">e</a>)</li>';
    contents += '<li id="n-groups"><a href="javascript:loadGroups()">Users per group</a></li>';
    contents += '<li id="n-stewardry"><a href="http://toolserver.org/~pathoschild/stewardry/?wiki=' + wgDBname + '">Stewardry</a></li>';
    contents += '<li id="n-checkuser"><a href="' + wgServer + '/wiki/Special:Checkuser">Checkuser</a></li>';
    contents += '<li id="n-oversight"><a href="' + wgServer + '/wiki/Special:Oversight">Oversight</a></li>';
    contents += '<li id="n-suppres"><a href="' + mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=Special:Log&type=suppress">Suppression log</a></li>';
    contents += '</ul></div>';
    
    var toolbox = document.createElement("div");
    toolbox.className = "portlet";
    toolbox.id = "p-steward";
    toolbox.innerHTML = contents;

    parent = document.getElementById("p-logo").parentNode;
    siblings = parent.childNodes;
    for (var i = 0; i < siblings.length; i++) {
        c = siblings[i].className;
        if (!c) {
            continue;
        }
        
        if (c.indexOf("generated-sidebar") != -1) {
            sibling = siblings[i+1];
            break;
        }
    }
    document.getElementById("column-one").insertBefore(toolbox, sibling);
}
 
// OnloadHook
$( function () {
    stewardLinks();
});

/**
 * End steward toolbox
 */