Jump to content

User:GrayStorm/common.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//////////STATUS CHANGER
// Creator: Misza13
// Credits: Voyagerfan5761 for some minor improvements
//     Modified by Xenocidic to simply use /Status as a one word indicator,
//     Modified by Kraftlos to include Sleep status
//     Modified by APerson for compatibility with {{UserStatus}}
// compatible with {{Statustop}} for display
 
$.when(
    $.ready,
    mw.loader.using( [ "mediawiki.api" ] )
).then( function () {
    // create variable to store configuration
    if (typeof(statusChangerConfig) == 'undefined') {
        statusChangerConfig = {}
    }

    // check for configuration options, and set them to default values if
    // they're undefined

    if (typeof(statusChangerConfig.statusList) == 'undefined') {
        statusChangerConfig.statusList = [ 'online', 'offline', 'sleeping' ];
    }

    if (typeof(statusChangerConfig.statusPage) == 'undefined') {
        statusChangerConfig.statusPage = 'User:' + mw.config.get('wgUserName') + '/Status';
    }

    function makeListener(newStatus) {
        return function ( evt ) {
            evt.preventDefault();
            var api = new mw.Api({
                ajax: { headers: { 'Api-User-Agent': '[[w:User:Enterprisey/StatusChanger.js]]' } }
            });

            api.postWithEditToken({
                action: 'edit',
                title: statusChangerConfig.statusPage,
                text: newStatus,
                summary: mw.config.get('wgUserName') + " is now " + ((newStatus === "sleep") ? "sleeping" : newStatus) + "."
            }).then(function(){
                api.post( { action: "purge", titles: 'User:' + mw.config.get('wgUserName') } );
                mw.notify('Done setting status!');
            });
            return false;
        };
    }

    //Add the links
    for (var i=0; i<statusChangerConfig.statusList.length; i++) {
        var stat = statusChangerConfig.statusList[i];
        var message = (stat === "sleeping") ?  link = "asleep" : link = stat;
        mw.util.addPortletLink(
            "p-personal", //target tab - personal links
            "#",
            stat, //link text
            "pt-status-" + stat, //id of new button
            "I'm " + message + "!", //hover text
            "", // access key - no need to define one
            document.getElementById("pt-logout")) //add before logout button
        .addEventListener('click',makeListener(stat));
    }
});
//[[Category:Wikipedia scripts|statusChanger]]
importScript('User:Ingenuity/AntiVandal.js'); // Backlink: [[User:Ingenuity/AntiVandal.js]]
importScript('User:MusikAnimal/confirmationRollback.js'); // Backlink: [[User:MusikAnimal/confirmationRollback.js]]
importScript('User:Qwertyytrewqqwerty/DisamAssist.js'); // Backlink: [[User:Qwertyytrewqqwerty/DisamAssist.js]]
importScript('Wikipedia:AutoEd/complete.js');
importScript('User:Awesome_Aasim/xfdvote.js'); // Backlink: [[User:Awesome_Aasim/xfdvote.js]]

importScript('User:10nm/beta.js'); // Backlink: [[User:10nm/beta.js]]
importScript('User:Ingenuity/AbuseFilterContribs.js'); // Backlink: [[User:Ingenuity/AbuseFilterContribs.js]]
importScript('User:Suffusion of Yellow/filterDiff.js'); // Backlink: [[User:Suffusion of Yellow/filterDiff.js]]
importScript('User:Harej/citation-watchlist.js'); // Backlink: [[User:Harej/citation-watchlist.js]]
importScript('User:Evad37/rater.js'); // Backlink: [[User:Evad37/rater.js]]
importScript('User:CanonNi/Scripts/AlertAssistant.js'); // Backlink: [[User:CanonNi/Scripts/AlertAssistant.js]]
importScript('User:Lourdes/AfDclosing.js'); // Linkback: [[User:Lourdes/AfDclosing.js]]
importScript('User:Terasail/Edit_Request_Tool.js'); // Backlink: [[User:Terasail/Edit_Request_Tool.js]]
importScript('User:Jackmcbarn/editProtectedHelper.js'); // Backlink: [[User:Jackmcbarn/editProtectedHelper.js]]
importScript('User:Technical_13/Scripts/OneClickArchiver.js'); // Backlink: [[User:Technical_13/Scripts/OneClickArchiver.js]]
importScript('User:Elli/OneClickArchiver.js'); // Backlink: [[User:Elli/OneClickArchiver.js]]
importScript('User:DaxServer/DiscussionCloser.js'); // Backlink: [[User:DaxServer/DiscussionCloser.js]]
importScript('User:Alexis_Jazz/EditNoticesOnMobile.js'); // Backlink: [[User:Alexis_Jazz/EditNoticesOnMobile.js]]
importScript('User:Aaron_Liu/MoveTop.js'); // Backlink: [[User:Aaron_Liu/MoveTop.js]]
importScript('User:Andrybak/Scripts/Unsigned_helper.js'); // Backlink: [[User:Andrybak/Scripts/Unsigned_helper.js]]