Suradnik:Ivi104/Skripte/Sakrivanje-svih-izmjena-suradnika-STARO.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.
function sakrijIzmjene() {
var sveIzmjene = document.querySelectorAll('ul.mw-contributions-list>li');
sveIzmjene.forEach(function(izmjena, index) {
var checkBox = document.createElement('input');
checkBox.className = 'webfonts-changed';
checkBox.type = 'checkbox';
var idIzmjene = sveIzmjene[index].getAttribute('data-mw-revid');
checkBox.setAttribute('name', 'ivi104-revdel-checkbox');
checkBox.setAttribute('value', idIzmjene);
//je li izmjena već sakrivena?
if (sveIzmjene[index].getElementsByClassName('history-deleted').length > 0) {
checkBox.setAttribute('disabled', 'disabled');
}
sveIzmjene[index].prepend(checkBox);
});
//onemogući ponovno klikanje poveznice za start
document.getElementsByClassName("ivi104-revdel-startbutton")[0].removeAttribute('onclick');
var gumbSakrij = document.createElement('input');
gumbSakrij.type = 'submit';
gumbSakrij.className = 'cdx-button webfonts-changed';
gumbSakrij.value = 'Sakrij odabrane izmjene';
gumbSakrij.setAttribute('onclick', 'printChecked()');
document.getElementsByClassName('mw-contributions-list')[0].prepend(gumbSakrij);
}
function printChecked() {
document.getElementsByTagName('input');
var checkedBoxes = document.querySelectorAll('input[name=ivi104-revdel-checkbox]:checked');
var checkedText = [];
if (checkedBoxes.length == 0) {
alert("Ništa nije označeno, molim pokušjte ponovno!");
} else {
checkedBoxes.forEach(function(box, index) {
checkedText.push(box.getAttribute('value'));
});
var odabirSakrivanja = "";
var regex = new RegExp("^[abc]{1,3}$");
if (window.confirm("Korak 1/3\nŽelite li zaista sakriti izmjene: \n" + checkedText.join(", "))) {
odabirSakrivanja = prompt("Korak 2/3\nOdaberite što sve želite sakriti:\n - upišite slovo 'a' za sakrivanje teksta izmjene\n - upišite slovo 'b' za sakrivanje sažetka\n - upišite slovo 'c' za sakrivanje imena suradnika\nDopušteno je unijeti više slova (unos 'abc' je u redu)");
if (odabirSakrivanja == null || odabirSakrivanja == "" || regex.test(odabirSakrivanja) == false) {
window.alert("Pogrešan unos, molim pokušajte ponovno.");
} else {
var razlog = window.prompt("Korak 3/3\nMolim unesite razlog sakrivanja:\n - unesite '1' za 'kršenje autorskih prava'\n - unesite '2' za 'neprimjereni osobni podatci'\n - unesite '3' za '[[Wikipedija:Vandalizam|vandalizam]]'\n - unesite '4' za 'grafit'\nTakođer možete ručno unijeti razlog:");
validacija(checkedText, odabirSakrivanja, razlog);
}
} else {
alert("Molim ispravite odabir.");
}
}
}
function validacija(checkedTextAny, odabirSakrivanjaAny, razlogAny) {
var checkedText = Array.of(checkedTextAny);
var odabirSakrivanja = String(odabirSakrivanjaAny);
var razlog = String(razlogAny);
var odabirArray = [];
if (odabirSakrivanja.includes("a")) {
odabirArray.push("content");
}
if (odabirSakrivanja.includes("b")) {
odabirArray.push("comment");
}
if (odabirSakrivanja.includes("c")) {
odabirArray.push("user");
}
var odabirString = odabirArray.join('|');
var razlogString = "";
if (razlog == "1") {
razlogString = "kršenje autorskih prava";
} else if (razlog == "2") {
razlogString = "neprimjereni osobni podatci";
} else if (razlog == "3") {
razlogString = "[[Wikipedija:Vandalizam|vandalizam]]";
} else if (razlog == "4") {
razlogString = "grafit";
} else {
razlogString = razlog;
}
var checkedString = checkedText.toString().replaceAll(',', '|');
//window.alert(checkedString + "\n" + odabirString + "\n" + razlogString);
if (confirm("Posljednja potvrda - zaista sakriti?")) {
apiPoziv(checkedString, odabirString, razlogString);
} else window.alert("Otkazano. Ništa nije izmjenjeno.");
}
function apiPoziv(checkedString, odabirString, razlogString) {
var params = {
action: 'revisiondelete',
type: 'revision',
ids: String(checkedString),
format: 'json',
hide: String(odabirString),
reason: String(razlogString),
tags: 'revdel-api',
},
api = new mw.Api();
console.log(params);
api.postWithToken('csrf', params).done(function(data) {
console.log(data);
});
window.alert("Dovršeno! Molim osvježite stranicu.");
//location.reload();
}
$(document).ready(function() {
if (location.search.includes('title=Posebno%3ADoprinosi') ||
location.href.includes('Special:Contributions') || location.href.includes('Posebno:Doprinosi') || location.href.includes('Posebno%3ADoprinosi')) {
var gumbStart = document.createElement('a');
gumbStart.className = "ivi104-revdel-startbutton";
gumbStart.innerHTML = 'sakrij više izmjena';
gumbStart.setAttribute('onclick', 'sakrijIzmjene()');
gumbStart.style.paddingLeft = '10px';
document.querySelectorAll('span.mw-changeslist-links')[0].after(gumbStart);
}
});