Przejdź do zawartości

MediaWiki:Common.js: Różnice pomiędzy wersjami

Z Arcarium Index
Nie podano opisu zmian
Nie podano opisu zmian
Linia 23: Linia 23:


     function runSort() {
     function runSort() {
        // small delay helps because Wikibase renders async
         setTimeout(sortAliases, 100);
         setTimeout(sortAliases, 50);
     }
     }


     // initial load
     // initial + normal loads
     $(document).ready(runSort);
     $(document).ready(runSort);
    // standard MW hook
     mw.hook('wikipage.content').add(runSort);
     mw.hook('wikipage.content').add(runSort);
    $(document).ajaxComplete(function (event, xhr, settings) {
        if (!settings || !settings.data) return;


    mw.hook('wikibase.entityPage.entityLoaded').add(runSort);
        if (typeof settings.data === 'string' && settings.data.includes('action=wbsetaliases')) {
            runSort();
        }
    });


});
});

Wersja z 10:20, 30 kwi 2026

/* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */
mw.loader.using(['mediawiki.util']).then(function () {

    function sortAliases() {
        const aliasContainers = document.querySelectorAll('.wikibase-aliasesview-list');

        aliasContainers.forEach(function (container) {
            const items = Array.from(container.querySelectorAll('.wikibase-aliasesview-list-item'));

            if (items.length <= 1) return;

            items.sort(function (a, b) {
                const textA = a.textContent.trim().toLowerCase();
                const textB = b.textContent.trim().toLowerCase();
                return textA.localeCompare(textB, 'pl');
            });

            items.forEach(function (item) {
                container.appendChild(item);
            });
        });
    }

    function runSort() {
        setTimeout(sortAliases, 100);
    }

    // initial + normal loads
    $(document).ready(runSort);
    mw.hook('wikipage.content').add(runSort);
 
    $(document).ajaxComplete(function (event, xhr, settings) {
        if (!settings || !settings.data) return;

        if (typeof settings.data === 'string' && settings.data.includes('action=wbsetaliases')) {
            runSort();
        }
    });

});