MediaWiki:Gadget-PostBlockActions.js
Appearance
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
if (window.MassRevDelete === undefined) {
window.MassRevDelete = {
install: function () {
var mrd = this;
var $pre = $('#mw-content-text').clone();
$("#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 () {
if ($('.mw-checkbox-toggle-controls').length == 0)
mrd.interface();
else
$('#mw-content-text').replaceWith($pre);
});
},
interface: function () {
var mrd = this;
$('.mw-pager-body').prepend('<div class="mw-checkbox-toggle-controls">Виберіть: <a id="mw-checkbox-all" role="button"\
tabindex="0">все</a>, <a id="mw-checkbox-none" role="button" tabindex="0">нічого</a>, <a id="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>\
<option value="Застаріла [[ВП:КДВ|невільна версія файлу]]">Застаріла [[ВП:КДВ|невільна версія файлу]]</option></optgroup></select>\
<button id="submit-button" type="submit" style="align:right">Затвердити</button><input class="name-checkbox" \
type="checkbox">приховати ім\'я</input></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></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) {
return !val;
});
$('.hide-cb').toggle();
});
$('.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());
ids.push($('.mw-contributions-list > 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(0).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 = "Тест";
mw.notify('Приховуються редагування. Зачекайте будь ласка...');
mrd.revisiondelete(pages, ids, nhide, reason);
},
revisiondelete: function(pages, ids, selects, summary) {
var mrd = this;
var page = pages.pop();
var id = ids.pop();
var select = selects.pop();
var params = {
action: 'revisiondelete',
type: 'revision',
target: page,
ids: id,
format: 'json',
hide: select,
reason: summary,
},
api = new mw.Api();
api.postWithToken( 'csrf', params ).done(function () {
if (pages.length)
mrd.revisiondelete(pages, ids, selects, summary);
else
location.reload();
}).fail(function (error) {
alert(error);
});
}
};
}
if (mw.config.get('wgCanonicalSpecialPageName') === "Contributions" && $('#mrd-link').text() == "") {
MassRevDelete.install();
}