Користувач:RLuts/Gadget-reporter.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.
/*
Скрипт для запитів на ВП:ЗА та ВП:ЗС.
@version 1.1
@author ru.wikipedia.org/wiki/user:Absconditus v.1.0
@author uk.wikipedia.org/wiki/user:Максим_Підліснюк v.1.0u - адаптовано до україномовної Вікіпедії
@author RLuts v.1.1
*/
(function($, mw) {
'use strict';
if(mw.reporter) return;
var rep = mw.reporter = {
msgs: {
'report': 'Запит',
'report-desc': 'Додати запит до адміністраторів або на захист',
'page-protect': 'Вікіпедія:Захист сторінок',
'page-protect-debug': 'Користувач:RLuts/Gadget-reporter.js/debug/Вікіпедія:Захист сторінок',
'page-sysoprep': 'Вікіпедія:Запити до адміністраторів',
'page-sysoprep-debug': 'Користувач:RLuts/Gadget-reporter.js/debug/Вікіпедія:Запити до адміністраторів'
},
errors: {
'editconflict': 'Конфлікт редагувань на сторінці {title}. Відкиньте редагування, зроблені цим додатком за останні декілька секунд та спробуйте ще раз',
'protectedtitle': 'Сторінка {title} захищена. Зв\'яжіться з адміністраторами на сторінці ВП:Запити до адміністраторів',
'spamdetected':'Ви заблоковані у цій вікі. Спробуйте, будь ласка, пізніше',
'filtered': 'Автоматичний фільтр заборонив редагування сторінки {title}',
'notoken': 'Неможливо отримати токен. Зверніться, будь ласка, у «Кнайпу (технічні питання)',
'captcha': 'API Вікіпедії повернув капчу, яку цей додаток поки що не підтримує. Можливо ви занадто часто робите редагування? Спробуйте, будь ласка, через декілька хвилин або подайте запит вручну',
'default': 'Невідома помилка при редагуванні сторінки {title}. Відкиньте редагування, зроблені цим додатком за останні декілька секунд та спробуйте пізніше'
},
install: function() {
var link = mw.util.addPortletLink( 'p-cactions', '#', rep.msgs.report );
$(link).click(function (e) {
e.preventDefault();
rep.showDialog();
});
},
showDialog: function() {
if($('#reporter-dialog').length === 0) {
$('#mw-content-text').append('<div id="reporter-dialog" style="display:none;" title="' + rep.msgs.report + '"><p>Відправити запит на сторінку:</p></div>');
}
mw.loader.using('jquery.ui', function() {
$('#reporter-dialog').dialog({
width: 400
});
});
},
editPage: function (title, content, timestamp, summary, option, section, success) {
var param = {
action: 'edit',
title: title,
summary: summary,
watchlist: 'watch',
basetimestamp: timestamp,
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).done( function(data) {
if (data.hasOwnProperty('edit') && data.edit.result == 'Success') {
success();
} else if (data.hasOwnProperty('edit') && data.edit.result == 'Failure') {
if(data.edit.hasOwnProperty(code)) {
var code = data.edit.code;
switch(code) {
case 'editconflict':
alert(rep.errors.editconflict.replace('{title}', title));
break;
case 'protectedtitle':
alert(rep.errors.protectedtitle.replace('{title}', title));
break;
case 'spamdetected':
alert(rep.errors.spamdetected.replace('{title}', title));
break;
case 'blocked':
alert(rep.errors.blocked.replace('{title}', title));
break;
case 'filtered':
case 'abusefilter-disallowed':
alert(rep.errors.filtered.replace('{title}', title));
break;
case 'notoken':
alert(rep.errors.notoken.replace('{title}', title));
break;
default:
alert(rep.errors.default.replace('{title}', title));
break;
}
} else if(data.edit.hasOwnProperty(captcha)) {
alert(rep.errors.captcha.replace('{title}', title));
}
rep.success();
}
});
}
};
})(jQuery, mediaWiki);
$(mw.reporter.install());