Користувач:Avatar6/MediaWiki:Gadget-SpeedyDeletion.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
/*
* Скрипт для швидкої номінації статтей на швидке вилучення
* Ліцензія: GNU GPL
* Версія: 2.0 06.06.2015
* Автор першої версії: анонімний розробник, зв'язок — xzs.jx@yandex.ru
* Адаптовано з РуВікі у версії 68977088 (v.1.9 02.03.2013)
* Практично повністю переписано 06.06.2015
* Модифіковано користувачем Andriy.v
*/
//<nowiki>
if ( typeof( window.SpeedyDeletion ) == 'undefined' ) {
window.SpeedyDeletion = {
reasons: [
{ tmpl: 'catempty', reason: 'Порожня категорія' },
{ tmpl: 'test', reason: 'Незв\'язний вміст / Тест' },
{ tmpl: 'vand', reason: 'Вандалізм' },
{ tmpl: 'repost', reason: 'Ідентична копія раніше вилученої сторінки' },
{ tmpl: 'author', reason: 'За запитом єдиного автора' },
{ tmpl: 'misuse', reason: 'Нецільове використання сторінки' },
{ tmpl: 'empty', reason: 'Порожня або дуже коротка стаття' },
{ tmpl: 'lang', reason: 'Неукраїномовна стаття або машинний переклад' },
{ tmpl: 'na', reason: 'Стаття, що складається з одних внутрішніх чи зовнішніх посилань' },
{ tmpl: 'nn', reason: 'Стаття про безсумнівно незначимі речі' },
{ tmpl: 'duplicate', reason: 'Дублікат уже існуючої статті' },
{ tmpl: 'spam', reason: 'Явний спам' },
{ tmpl: 'redirtypo', reason: 'Перенаправлення з грубою помилкою' },
{ tmpl: 'wrr', reason: 'Некоректне перенаправлення' },
{ tmpl: 'redirtalk', reason: 'Перенаправлення між сторінками обговорення' },
{ tmpl: 'u1', reason: 'Сторінка користувача або в особистому просторі за запитом її власника' },
{ tmpl: 'move', reason: 'Для звільнення шляху перейменування сторінки' },
{ tmpl: '', reason: 'Інша причина' }
],
install: function () {
var sd = this;
this.title = "Швидке вилучення";
if( $( '#SD-dialog' ).length === 0 ) {
$( "#mw-content-text" ).append('<div id="SD-dialog" style="display:none;" title="' + this.title + '">Критерії швидкого вилучення<br/><form id="SD-radiobox"></form></div>');
$.each(this.reasons, function() {
if(this.tmpl === 'duplicate') {
$('#SD-radiobox').append('<input type="radio" name="SD-radio" id="sd-duplicate">' + this.reason + '<br/>');
$('#SD-radiobox').append('<input id="SD-duplicate" style="display:none; width:100%"><br/>');
} else if(this.tmpl === 'move') {
$('#SD-radiobox').append('<input type="radio" name="SD-radio" id="sd-move">' + this.reason + '<br/>');
$('#SD-radiobox').append('<input id="SD-move" style="display:none; width:100%"><br/>');
} else if(this.tmpl === '') {
$('#SD-radiobox').append('<input type="radio" name="SD-radio" id="sd-other">' + this.reason + '<br/>');
$('#SD-radiobox').append('<input id="SD-othreason" style="display:none; width:100%"><br/>');
} else {
$('#SD-radiobox').append('<input type="radio" name="SD-radio" id="' + this.tmpl + '">' + this.reason + '<br/>');
}
});
$('#SD-radiobox').append('<input type="checkbox" id="SpeedyDeletion-forcewrap" checked/>Помістити шаблон швидкого вилучення в тег <noinclude><br/>');
$('#SD-dialog input:radio').change(function(){
if($(this).attr('id') == 'sd-other'){
$('#SD-othreason').show(500);
} else if($(this).attr('id') == 'sd-duplicate'){
$('#SD-duplicate').show(500);
} else if($(this).attr('id') == 'sd-move'){
$('#SD-move').show(500);
} else {
$('#SD-duplicate').hide(500);
$('#SD-othreason').hide(500);
$('#SD-move').hide(500);
}
});
}
mw.loader.using( 'jquery.ui', function() {
$( '#SD-dialog' ).dialog({
width: 400,
buttons: {
'Надіслати' : function() {
sd.check();
},
}
});
});
},
check: function() {
if($.inArray('Статті до швидкого вилучення', mw.config.get('wgCategories')) >= 0) {
alert('Сторінка вже номінована на швидке вилучення.');
return;
}
if(!$('#SD-dialog input:checked')) {
alert('Оберіть причину!');
return;
} else {
if($('#SD-dialog input:checked').attr('id') == 'sd-other' && this.isEmpty($('#SD-othreason').val())) {
alert('Введіть причину!');
$('#SD-othreason').focus();
return;
} else if ($('#SD-dialog input:checked').attr('id') == 'sd-duplicate' && this.isEmpty($('#SD-duplicate').val())) {
alert('Введіть назву сторінки!');
$('#SD-duplicate').focus();
return;
} else if($('#SD-dialog input:checked').attr('id') == 'sd-duplicate') {
this.prep = "{{db-duplicate|" + $('#SD-duplicate').val() + "}}";
} else if ($('#SD-dialog input:checked').attr('id') == 'sd-move' && this.isEmpty($('#SD-move').val())) {
alert('Введіть назву сторінки!');
$('#SD-move').focus();
return;
} else if($('#SD-dialog input:checked').attr('id') == 'sd-move') {
this.prep = "{{db-move|" + $('#SD-move').val() + "}}";
} else if($('#SD-dialog input:checked').attr('id') == 'sd-other') {
this.prep = "{{db|" + $('#SD-othreason').val() + "}}";
} else {
this.prep = "{{db-" + $('#SD-dialog input:checked').attr('id') + "}}";
}
this.execute();
}
},
execute: function() {
var tpl = this.prep, sd = this, par;
if($('#SpeedyDeletion-forcewrap').prop( "checked" )) {
this.prep = '<noinclude>' + this.prep + '</noinclude>';
}
this.wait("Додавання шаблону на сторінку");
par = mw.config.get( 'wgIsRedirect' ) ? 'appendtext' : 'prependtext';
this.writeInPage( mw.config.get( 'wgPageName' ), this.prep + "\n", "Номінація на швидке вилучення (" + tpl + ") за допомогою [[MediaWiki:Gadget-SpeedyDeletion.js]]", par, null, function () {
sd.wait("Перезавантаження сторінки");
setTimeout(function(){
$( '#SD-dialog' ).dialog('close');
location.reload(); },1000);
});
},
wait: function(mes) {
$('#SD-dialog').dialog("close");
$('#SD-dialog').prop('title', 'Зачекайте, будь ласка...');
if($('#SD-dialog').length !== 0) {
$('#SD-dialog').html('<p style="font-size: 120%; font-weight:bold;">' + mes + '</p>');
} else {
$( "#mw-content-text" ).append('<div id="SD-dialog" style="display:none;"><p style="font-size: 120%; font-weight:bold;">' + mes + '</p></div>');
}
$('#SD-dialog').dialog({
modal: true,
buttons: false,
close: function(event, ui)
{
$(this).dialog('destroy').remove();
}
});
},
writeInPage: function ( title, content, summary, option, section, success ) {
var param = {
action: 'edit',
title: title,
summary: summary,
watchlist: 'watch',
token: mw.user.tokens.get('csrfToken'),
format: 'json'
};
param[option || 'text'] = content;
if (section || section === 0)
param.section = section;
$.post(mw.util.wikiScript('api'), param, function() {
if (typeof(success) === 'function')
success();
});
},
isEmpty: function( str ) {
return (!/\S/.test(str));
},
};
}
// Якщо ми не на службовій сторінці, не на сторінці файлів, а на існуючій сторінці, яку можна редагувати, додає вкладку
$(document).ready(function () {
if( mw.config.get('wgCanonicalNamespace') != 'Special' && mw.config.get('wgCanonicalNamespace') !== 'File' && mw.config.get('wgCanonicalNamespace') !== 'MediaWiki' && $("#ca-viewsource").length === 0 && mw.config.get('wgArticleId') ) {
mw.util.addPortletLink("p-cactions", "javascript:SpeedyDeletion.install()", "ШВ", "ca-contrib", "Номінувати на швидке вилучення");
}
});
//</nowiki>