User:Anomie/watchlist-change-style-selector.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.
if(mw.config.get('wgPageName') == 'Special:Watchlist') mw.loader.using('mediawiki.cookie', function(){
    $(document).ready(function(){
        var x = $('#mw-watchlist-resetbutton');
        if(!x || !x.length) x = $('.mw-rcfilters-head');
        if(!x || !x.length) return;

        // Create selector with list of classes to apply
        var s = document.createElement('SELECT');
        s.options[s.options.length] = new Option('No indicator', 'wlswitch-none');
        s.options[s.options.length] = new Option('Bold (MediaWiki default)', 'wlswitch-bold');
        s.options[s.options.length] = new Option('Green stars', 'wlswitch-stars');
        s.options[s.options.length] = new Option('Stars and bold', 'wlswitch-starsbold');
        s.options[s.options.length] = new Option('Italic', 'wlswitch-italic');
        s.options[s.options.length] = new Option('Subtle underscore', 'wlswitch-underline');
        s.options[s.options.length] = new Option('Color change', 'wlswitch-colorchange');
        s.options[s.options.length] = new Option('Small \'c\' ("changed")', 'wlswitch-small-c');
        s.options[s.options.length] = new Option('Highlight', 'wlswitch-highlight');
        s.options[s.options.length] = new Option('Faded old changes', 'wlswitch-faded');
        s.options[s.options.length] = new Option('Green bullet', 'wlswitch-bullet');

        var current = mw.cookie.get('wlswitch-selected', '');
        if(current) $(s).val(current);

        // Event handler to change the classes
        var classlist=[];
        for(var i = 0; i < s.options.length; i++) classlist.push(s.options[i].value);
        var classlist=classlist.join(' ');
        var body = $(document.body);
        var setClass=function(){
            body.removeClass(classlist);
            var v = $(this).val();
            body.addClass(v);
            mw.cookie.set('wlswitch-selected', v, { expires:365 * 86400, path:'/', prefix:'' });
        };
        $(s).change(setClass);
        setClass.call(s);

        x.after($('<p>Watchlist change style: </p>').append(s));
    });
});

if(mw.config.get('wgAction') == 'history') mw.loader.using('mediawiki.cookie', function(){
    $(document).ready(function(){
        var x = $('.mw-history-legend');
        if(!x || !x.length) return;

        // Create selector with list of classes to apply
        var s = document.createElement('SELECT');
        s.options[s.options.length] = new Option('No indicator', 'histswitch-none');
        s.options[s.options.length] = new Option('Default green tag (MediaWiki default)', 'histswitch-default');
        s.options[s.options.length] = new Option('Bright green tag', 'histswitch-bright-tag');
        s.options[s.options.length] = new Option('Dull green tag (as on Commons)', 'histswitch-commons');
        s.options[s.options.length] = new Option('Green text tag', 'histswitch-greentext');
        s.options[s.options.length] = new Option('Bold', 'histswitch-bold');
        s.options[s.options.length] = new Option('Green stars', 'histswitch-stars');
        s.options[s.options.length] = new Option('Stars and bold', 'histswitch-starsbold');
        s.options[s.options.length] = new Option('Italic', 'histswitch-italic');
        s.options[s.options.length] = new Option('Subtle underscore', 'histswitch-underline');
        s.options[s.options.length] = new Option('Color change links', 'histswitch-colorchange');
        s.options[s.options.length] = new Option('Small \'c\' ("changed")', 'histswitch-small-c');
        s.options[s.options.length] = new Option('Highlight', 'histswitch-highlight');
        s.options[s.options.length] = new Option('Faded old changes', 'histswitch-faded');
        s.options[s.options.length] = new Option('Green bullet', 'histswitch-bullet');

        var current = mw.cookie.get('histswitch-selected', '');
        if(current) $(s).val(current);

        // Event handler to change the classes
        var classlist=[];
        for(var i = 0; i < s.options.length; i++) classlist.push(s.options[i].value);
        var classlist=classlist.join(' ');
        var body = $(document.body);
        var setClass=function(){
            body.removeClass(classlist);
            var v = $(this).val();
            body.addClass(v);
            mw.cookie.set('histswitch-selected', v, { expires:365 * 86400, path:'/', prefix:'' });
        };
        $(s).change(setClass);
        setClass.call(s);

        x.append($('<p>Unviewed changes style: </p>').append(s));
    });
});