Користувач:Andriy.v/Gadget-DeleteRedirects.js
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5.
if (typeof(window.DeleteRedirects) == 'undefined') {
window.DeleteRedirects = {
display_option: function (redirects) {
var $target = $('#wpConfirmB');
var $redir = $target.clone().attr("id","wpConfirmR");
$redir.html('<button type="submit" tabindex="6" name="wpConfirmR" value="" class="oo-ui-inputWidget-input oo-ui-buttonElement-button"><span>Вилучити перенаправлення</span></button>');
$('#deleteconfirm').after($redir);
this.check(redirects);
},
check: function (redirects) {
var dr = this;
if (redirects.length > 0) {
$('#wpConfirmR').click(function () {
$( "#mw-content-text" ).append('<div id="dr-dialog"></div>');
//dr.wait('Вилучення перенаправлень');
mw.notify('Вилучення перенаправлень');
dr.delete_pages(redirects);
});
}
},
delete_pages: function (redirects) {
var dr = this;
var redirect = redirects.pop();
var params = {
action: 'delete',
title: redirect.title,
reason: 'перенаправлення на вилучену сторінку [[' mw.config.get('wgPageName').replace(/_/g,' ') ']]',
format: 'json'
},
api = new mw.Api();
api.postWithToken( 'csrf', params ).done( function ( data ) {
if (redirects.length > 0)
dr.delete_pages(redirects);
else
dr.success();
} ).fail(function(error){
alarm(error);
});
},
success: function () {
//this.wait('Перенаправлення вилучені');
mw.notify('Перенаправлення вилучені');
setTimeout(function(){
//$( '#dr-dialog' ).dialog('close');
$('#wpConfirmR')[0].style.display = "none" },500
);
},
wait: function (mes) {
$('#dr-dialog').prop('title', 'Зачекайте, будь ласка...');
$('#dr-dialog').html('<p style="font-size: 120%; font-weight:bold;">' mes '</p>');
$('#dr-dialog').dialog({
modal: true,
buttons: false
});
}
};
if (mw.config.get('wgAction') == 'delete') {
var params = {
action: 'query',
titles: mw.config.get('wgPageName'),
prop: 'redirects',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var pages = data.query.pages;
var redirects = pages[Object.keys(pages)].redirects;
if (redirects != undefined) {
DeleteRedirects.display_option(redirects);
}
});
}
}