Suradnik:Ivi104/Skripte/Zaštićene stranice u kategoriji.js

Izvor: Wikipedija

Napomena: Nakon objave možda ćete trebati očistiti međuspremnik svog preglednika kako biste vidjeli promjene.

  • Firefox / Safari: držite Shift i pritisnite Reload, ili pritisnite bilo Ctrl-F5 ili Ctrl-R (⌘-R na Macu)
  • Google Chrome: pritisnite Ctrl-Shift-R (⌘-Shift-R na Macu)
  • Internet Explorer / Edge: držite Ctrl i kliknite Refresh, ili pritisnite Ctrl-F5
  • Opera: pritisnite Ctrl-F5.
function toText(zastita) {

    var slika = document.createElement('img');
    slika.setAttribute('width', '10px');
    slika.style.display = 'inline';
    slika.style.paddingLeft = '5px';

    if (zastita.length == 0) {
    	;
    } else if (zastita[0].type == 'edit' && zastita[0].level == 'autoconfirmed') {
        slika.setAttribute('src', 'https://upload.wikimedia.org/wikipedia/commons/f/f0/Button_Icon_Yellow.svg');
        slika.setAttribute('alt', 'Samo autopotvrđeni!');
    } else if (zastita[0].type == 'edit' && zastita[0].level == 'sysop') {
        slika.setAttribute('src', 'https://upload.wikimedia.org/wikipedia/commons/0/07/Button_Icon_Red.svg');
        slika.setAttribute('alt', 'Samo administratori!');
    }


    return slika;
}

$(document).ready(function() {
    if (location.search.includes('title=Kategorija') ||
        location.href.includes('Kategorija:')) {
        console.log("drugi - na kategoriji smo!");
        if (mw.config.get("wgPageName")) { //not null or undefined
            console.log("Imam pagename, zovem API");
            var apirequest = "/api.php?action=query&format=json&prop=info&generator=categorymembers&inprop=protection&gcmtitle=" + mw.config.get("wgPageName") + "&gcmprop=ids%7Ctitle&gcmlimit=250";

            console.log("req: " + apirequest);
            var api = $.getJSON(mw.config.get("wgScriptPath") + apirequest)
                .done(function(query) {
                    if (!query.query) { console.log("API fail"); return; } // API fail
                    query = query.query;
                    var clanciID = Object.keys(query.pages);

                    items = document.querySelectorAll('.mw-category-group>ul>li');


                    items.forEach(function(item) {
                        for (var i = 0; i < clanciID.length; i++) {
                            if (item.innerText == query.pages[clanciID[i]].title)
                                item.append(toText(query.pages[clanciID[i]].protection));
                        }

                    });
                });
        }
    }
});