Jump to content

User:GrayStorm/common.js

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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]]