MediaWiki:Gadget-proofsect-to-main.js

Z Wikiźródeł, wolnej biblioteki

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
//za https://pl.wikisource.org/w/index.php?title=Wikiskryba:Msz2001/common.js&oldid=3357445
//Autor: Wikiskryba:Msz2001

mw.hook('wikiEditor.toolbarReady').add(function(){
    // Uruchom tylko w przestrzeni Strona:
    if(mw.config.get('wgNamespaceNumber') !== 100) return;

    // Oczekuje, aż element będzie dostępny w drzewie DOM
    // https://stackoverflow.com/a/61511955/8127198
    // by Yong Wang, CC BY-SA 4.0
    function waitForElement(selector) {
        var deferred = $.Deferred();
        if (document.querySelector(selector)) {
            return deferred.resolve().promise();
        }

        var observer = new MutationObserver(function(){
            if (document.querySelector(selector)) {
                deferred.resolve();
                observer.disconnect();
            }
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });

        return deferred.promise();
    }

    var buttonsSelector = '.wikiEditor-ui-toolbar [rel=toggle-layout], .wikiEditor-ui-toolbar [rel=toggle-visibility]';
    waitForElement(buttonsSelector).then(function(){
        // Przenieś przyciski do przełączania układu
        var buttonsToMove = $(buttonsSelector);
        var newParent = $('.wikiEditor-ui-toolbar [rel=main] .group-custom');
        newParent.append(buttonsToMove);
    
        // Usuń pustą zakładkę menu (tylko gdy nie ma w niej żadnych przycisków)
        var proofreadSection = $('.wikiEditor-ui-toolbar [rel=proofreadpage-tools]');
        if(proofreadSection.find('.tool').length == 0){
            proofreadSection.remove();
        }
    });
});