Utilisateur:Od1n/HideLastEditedPages.js

Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* jshint esversion: 6, laxbreak: true */
/* globals mw, $ */

if (mw.config.get('wgCanonicalSpecialPageName') === 'Contributions') {

    mw.loader.using('mediawiki.util', function () {
        $(function ($) {
            'use strict';

            const userName = mw.config.get('wgUserName');
            const relevantUserName = mw.config.get('wgRelevantUserName');

            if (!relevantUserName) {
                return;
            }

            const message = 'Masquer les pages dont '
                + (userName === relevantUserName ? 'je suis' : mw.html.escape(relevantUserName) + ' est')
                + ' le dernier contributeur';

            $('.mw-htmlform-submit').after(' <label><input type="checkbox" id="hide-last-edited-pages"> ' + message + '</label>');

            let firstRun = true;
            let sheet;

            $('#hide-last-edited-pages').change(function () {
                if (firstRun) {
                    addClasses();
                    sheet = mw.util.addCSS('li.last-edited { display:none }');
                    firstRun = false;
                } else {
                    if (this.checked) {
                        sheet.disabled = false;
                    } else {
                        sheet.disabled = true;
                    }
                }
            });

            function addClasses() {
                const excludeSet = new Set();
                $('ul.mw-contributions-list > li:not(.mw-flow-contribution)').each(function () {
                    const title = this.querySelector('a.mw-contributions-title').textContent;

                    if (this.querySelector('span.mw-uctop')) {
                        this.classList.add('last-edited');
                        excludeSet.add(title);
                    }
                    else if (excludeSet.has(title)) {
                        this.classList.add('last-edited');
                    }
                });
            }

        });
    });

}