Користувач:Andriy.v/Gadget-MassRevDelete.js
Перейти до навігації
Перейти до пошуку
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
- Opera: натисніть Ctrl-F5
if (window.MassRevDelete === undefined) {
window.MassRevDelete = {
install: function () {
var mrd = this;
$("#firstHeading").append('<span style="margin-left:20px; font-size:20px">[<span id="mrd-link" style="color:#0645ad; cursor:pointer;">Масове приховування</span>]</span>');
$("#mrd-link").click(function () {
mrd.interface();
});
},
interface: function () {
var mrd = this;
$('.mw-contributions-list').prepend('<div class="mw-checkbox-toggle-controls">Виберіть: <a class="mw-checkbox-all" role="button" tabindex="0">все</a>, <a class="mw-checkbox-none" role="button" tabindex="0">нічого</a>, <a class="mw-checkbox-invert" role="button" tabindex="0">інвертувати</a> Причина:<select id="RevDeleteReason"><optgroup label="Типові причини вилучення"><option value="[[ВП:АП|Порушення авторських прав]]">[[ВП:АП|Порушення авторських прав]]</option><option value="[[ВП:БЛОК|Недоречна особиста інформація]]">[[ВП:БЛОК|Недоречна особиста інформація]]</option><option value="Непристойний вміст">Непристойний вміст</option><option value="Грубе порушення [[ВП:НО]]">Грубе порушення [[ВП:НО]]</option><option value="[[ВП:СПАМ|Спам/реклама]]">[[ВП:СПАМ|Спам/реклама]]</option><option value="Помилкова дія">Помилкова дія</option><option value="Застаріла [[ВП:КДВ|невільна версія файлу]]">Застаріла [[ВП:КДВ|невільна версія файлу]]</option></optgroup></select><button id="submit-button" type="submit" style="align:right">Затвердити</button></div>');
$('[data-mw-revid]').append('<div class="hide-cb" style="text-align:right; display:none;">Приховати: <input class="text-checkbox" type="checkbox">текст</input><input class="com-checkbox" type="checkbox">коментар</input><input class="name-checkbox" type="checkbox">ім\'я</input></div>');
if ($('.mw-contributions-blocked-notice').html() != undefined || $('.mw-contributions-blocked-notice-partial').html() != undefined)
for (i=1; $('.mw-revdelundel-link').eq(i).html() != undefined; i++)
$('.mw-revdelundel-link').eq(i).html('<input class="rev-checkboxes" type="checkbox" >');
else
$('.mw-revdelundel-link').html('<input class="rev-checkboxes" type="checkbox" >');
$("a.mw-checkbox-all").click(function(){
$('.rev-checkboxes').prop('checked', true);
$('.hide-cb').show();
});
$("a.mw-checkbox-none").click(function(){
$('.rev-checkboxes').prop('checked', false);
$('.hide-cb').hide();
});
$("a.mw-checkbox-invert").click(function(){
$('.rev-checkboxes').prop('checked', function(i, val) {
$('.hide-cb').toggle();
return !val;
});
});
$('.rev-checkboxes').change(function(){
for (i=0;$('.rev-checkboxes').eq(i).html() != undefined;i++) {
if($('.rev-checkboxes').eq(i).is(':checked'))
$('.hide-cb').eq(i).show();
else
$('.hide-cb').eq(i).hide();
}
});
$('#submit-button').click(function() {
mrd.getrevtohide();
});
},
getrevtohide: function () {
var mrd = this;
var pages = [];
var ids = [];
var nhide = [];
var hide = [];
for (i=0; $('.mw-revdelundel-link').eq(i).html() !== undefined; i++) {
if ($('.rev-checkboxes').eq(i).is(':checked')) {
pages.push($('a.mw-contributions-title').eq(i).text());
if ($('.mw-contributions-blocked-notice').html() != undefined || $('.mw-contributions-blocked-notice-partial').html() != undefined)
ids.push($('li').eq(i+1).attr('data-mw-revid'));
else
ids.push($('li').eq(i).attr('data-mw-revid'));
if($('.text-checkbox').eq(i).is(':checked'))
hide.push("content");
if($('.com-checkbox').eq(i).is(':checked'))
hide.push("comment");
if($('.name-checkbox').eq(i).is(':checked'))
hide.push("user");
if (hide.length == 0) {
alert('Ви не вказали ціль приховування принаймні в одній версії');
return;
}
hide = hide.join("|");
nhide.push(hide);
hide = [];
}
}
var redpages = pages;
var rednhide = nhide;
for (var i in pages) {
for (var j in pages) {
if (pages[i] == pages[j] && j != i && nhide[i] == nhide[j]) {
ids[i] = ids[i] + "|" + ids[j];
ids.splice(j,1);
redpages.splice(j,1);
rednhide.splice(j,1);
j--;
}
}
}
console.log(redpages);
console.log(ids);
console.log(rednhide);
var reason = document.querySelector('#RevDeleteReason').value;
//var reason = "Тест";
for (i in pages)
mrd.revisiondelete(pages[i], ids[i], nhide[i], reason);
setTimeout(function(){
location.reload(); },1000
);
},
revisiondelete: function(page, ids, select, summary) {
var params = {
action: 'revisiondelete',
type: 'revision',
target: page,
ids: ids,
format: 'json',
hide: select,
reason: summary,
},
api = new mw.Api();
api.postWithToken( 'csrf', params ).done().fail(function (error) {
alert(error);
});
}
};
}
if (mw.config.get('wgCanonicalSpecialPageName') === "Contributions" && $.inArray(mw.config.get('wgUserGroups'), ["sysop"]) && $('#mrd-link').text() == "") {
MassRevDelete.install();
}