Пређи на садржај

Медијавики:Gadget-RevisionID.js

Iz Vojne Enciklopedije

Напомена: Пошто објавите измене, можда ћете морати да обришете кеш прегледача како бисте их видели.

  • Firefox / Safari: Држите Shift и кликните на Reload или притисните Ctrl-F5 или Ctrl-R (⌘-R на Mac-у).
  • Google Chrome: Притисните Ctrl-Shift-R (⌘-Shift-R на Mac-у).
  • Edge: Држите Ctrl и кликните на Refresh или притисните Ctrl-F5.
/*** Приказује ID измене и име корисника који ју је испатролирао те генерише опис измене у случају ручног враћања ***/

// Документација: User:BrandonXLF/ShowRevisionID
// Аутор: User:BrandonXLF
// Аутор2: User:Ivi104
function kopirajOpis(revid, korisnik, datumiVreme) {
    var vreme = datumiVreme.split(" у ")[1];
    var datum = datumiVreme.split(" у ")[0];
    var spolAPI = $.getJSON(mw.config.get("wgScriptPath") + "/api.php?action=query&format=json&prop=&list=users&meta=&usprop=gender&ususers=" + korisnik)
        .done(function(query) {
            if (!query.query) { return; } // API fail
            query = query.query;
            var gender = (typeof query.users[0].gender == "string") ? query.users[0].gender : null;
            var string, dummy;
            if (gender == "female") {
                string = "Ручно враћање на измену бр. [[Посебно:Разлике/" + revid + "|" + revid + "]] коју је унела " + korisnik + " на датум " + datum + " у " + vreme;
                //копирај у клипборд
                dummy = $('<input>').val(string).appendTo('body').select();
                document.execCommand('copy');
                document.body.lastElementChild.remove();

                console.log("Копирано: " + string);
            } else {
                string = "Ручно враћање на измену бр. [[Посебно:Разлике/" + revid + "|" + revid + "]] коју је унео " + korisnik + " на датум " + datum + " у " + vreme;
                //копирај у клипборд
                dummy = $('<input>').val(string).appendTo('body').select();
                document.execCommand('copy');
                document.body.lastElementChild.remove();

                console.log("Копирано: " + string);
            }
        });
}

// make globally available so can be used in onclick attribute below.
window.kopirajOpis = kopirajOpis;
function osveziRevID() {
    var stringHrefPrev = $('#mw-diff-otitle1').children('strong').children('a').attr('href');
    var stringHrefCurr = $('#mw-diff-ntitle1').children('strong').children('a').attr('href');
    if(!stringHrefCurr || !stringHrefPrev) return;

    var revidPrev = stringHrefPrev.split('oldid=')[1];
    var userNamePrev = document.getElementsByClassName('mw-userlink')[0].children[0].innerHTML;
    var datumiVremePrev = $('#mw-diff-otitle1').children('strong').children('a')[0].innerHTML.split("дан ")[1];

    var revidCurr = stringHrefCurr.split('oldid=')[1];
    var userNameCurr = document.getElementsByClassName('mw-userlink')[1].children[0].innerHTML;
    var datumiVremeCurr = $('#mw-diff-ntitle1').children('strong').children('a')[0].innerHTML.split("дан ")[1];

   var wgPageName = mw.config.get("wgPageName");



    var idValuePrev = document.createElement('abbr');

    idValuePrev.className = 'revID-ivi';
    idValuePrev.innerHTML = ' | ' + revidPrev + ' | ';
    $('#idValuePrev').click(function() { 
    	window.kopirajOpis("' + revidPrev + '","' + userNamePrev + '","' + datumiVremePrev + '");
    });


    var patrolAPI = $.getJSON(mw.config.get("wgScriptPath") + "/api.php?action=query&format=json&prop=&list=logevents&leprop=details%7Cuser&letype=patrol&letitle=" + wgPageName )
    .done(function(query) {
        if (!query.query) { return; } // API fail
        query = query.query;

        query.logevents.forEach(function(entry) {
            if(entry.params.curid == revidPrev){ 
                idValuePrev.setAttribute('title', 'Испатролирао ' + entry.user);
            }
        });
    });
    document.getElementsByClassName('mw-diff-edit')[0].before(idValuePrev);

    var idValueCurr = document.createElement('abbr');
    idValueCurr.className = 'revID-ivi';
    idValueCurr.innerHTML = ' | ' + revidCurr + ' | ';
    idValueCurr.setAttribute('onclick', 'kopirajOpis("' + revidCurr + '","' + userNameCurr + '","' + datumiVremeCurr + '")');

    patrolAPI.done(function(query) {
        if (!query.query) { return; } // API fail
        query = query.query;

        query.logevents.forEach(function(entry) {
            if(entry.params.curid == revidCurr){ 
                idValueCurr.setAttribute('title', 'Испатролирао ' + entry.user);
            }
        });
    });

    document.getElementsByClassName('mw-diff-edit')[1].before(idValueCurr);
}


$(function() {
    var items;
    if (location.search.includes('action=history') || location.search.includes('title=Посебно%3AДоприноси') ||
        location.href.includes('Special:Contributions') || location.href.includes('Посебно:Доприноси') || location.href.includes('Посебно%3AДоприноси')) {
        items = document.querySelectorAll('li[data-mw-revid]');
        for (var i = 0; i < items.length; i++) {
            items[i].getElementsByClassName('mw-changeslist-date')[0].after(document.createTextNode(' | ' + items[i].getAttribute('data-mw-revid')));
        }
    } else if (location.href.includes('Special:Diff') || location.href.includes('Посебно:Разлике') ||
        location.href.includes('diff') || location.href.includes('oldid')) {

        //var rev =	$( "a[data-revision-id]" )[0].attributes[3].value;
        osveziRevID();

        $(".mw-revslider-slider-wrapper").bind("click", function(e) {
            setTimeout(function() {
                osveziRevID();
            }, 1000);
        });
    }
});