Jump to content

User:Anomie/watchlist-change-style-selector.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.
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));
    });
});