Suradnik:Ivi104/Skripte/Neophođene-promjene-u-doprinosima.js
< Suradnik:Ivi104 | Skripte
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.
/* jshint esversion: 6 */
$(document).ready(function () {
if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" || mw.config.get("wgAction") == "history") {
var api = new mw.Api();
var request = {
"action": "query",
"format": "json",
"prop": "info",
"list": "recentchanges",
"rcprop": "ids|patrolled",
"rcshow": "!patrolled",
"rclimit": "200"
};
var navbar;
var spanZaBrojac = document.createElement('span');
if (mw.config.get("wgAction") == "history") {
if (mw.config.get("wgPageName")) {
console.log("imam ime stranice!");
request.rctitle = mw.config.get("wgPageName");
navbar = document.querySelector('.mw-checkbox-toggle-controls');
if (navbar) navbar.append(spanZaBrojac);
}
} else if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions") {
if (mw.config.get("wgRelevantUserName")) { //not null or undefined
console.log("Imam username!");
request.rcuser = mw.config.get("wgRelevantUserName");
navbar = document.querySelector('.mw-pager-body');
if (navbar) navbar.prepend(spanZaBrojac);
}
}
api.get(request).done(function(data) {
if (!data.query) { console.log("API fail"); return; } // API fail
data = data.query;
mw.util.addCSS('.row-unpatrolled { background-color: #fff0c2 !important; }');
//postavi brojač neophođenih
spanZaBrojac.innerHTML = ' | <span id="ivi-span-brojacNeophodjenih">' + data.recentchanges.length + '</span> neophođeno';
data.recentchanges.forEach((entry) => {
if (entry.unpatrolled === "") {
document.querySelectorAll('li[data-mw-revid]').forEach((item) => {
if (item.getAttribute('data-mw-revid') == entry.revid) {
var unpatrolledMarker = document.createElement('abbr');
unpatrolledMarker.className = 'unpatrolled';
unpatrolledMarker.title = 'Nepregledana izmjena';
unpatrolledMarker.innerHTML = '!';
unpatrolledMarker.style.display = 'inline';
unpatrolledMarker.style.padding = '10px';
unpatrolledMarker.onclick = () => { ophodiIzmjenu(entry.revid); };
item.classList.add('row-unpatrolled');
item.prepend(unpatrolledMarker);
}
});
}
});
});
}
});
function ophodiIzmjenu(revid) {
var patrolSelectedEditParams = {
"action": "patrol",
"format": "json",
"tags": (mw.config.get('wgUserName') == "Ivi104" ? "" : "patrol-api"),
"revid": revid
};
var api = new mw.Api();
var patrolPromise = api.postWithToken('patrol', patrolSelectedEditParams);
patrolPromise.done(function (data) {
mw.notify('Izmjena ' + revid + ' označena je kao ophođena.');
document.querySelector('li[data-mw-revid="' + revid + '"]').classList.remove('row-unpatrolled');
document.querySelector('li[data-mw-revid="' + revid + '"]').getElementsByTagName('abbr')[0].remove();
document.querySelector('#ivi-span-brojacNeophodjenih').innerHTML -= 1;
});
patrolPromise.fail(function (data) {
mw.notify('Izmjenu ' + revid + ' nije moguće ophoditi.');
});
}