User:BZPN/Zgłaszarka.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
mw.loader.using([ | mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () { | ||
function addReportButton() { | function addReportButton() { | ||
// | // Znajdź każdą edycję | ||
$(' | $('.mw-changeslist-diff').each(function () { | ||
var | var diffUrl = $(this).attr('href'); | ||
var diffNumber = diffUrl.match(/diff=(\d+)/)[1]; | |||
// Dodaj przycisk, jeśli go jeszcze nie ma | |||
if ($(this).siblings('.pt-report').length === 0) { | |||
var $button = $('<a>') | var $button = $('<a>') | ||
.attr('href', '#') | .attr('href', '#') | ||
.text('(zgłoś)') | .text('(zgłoś)') | ||
.addClass('pt-report') | .addClass('pt-report') | ||
.css({ 'margin-left': '10px', 'cursor': 'pointer' }); | .css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' }); | ||
$ | $(this).after($button); | ||
// Obsługa kliknięcia | // Obsługa kliknięcia w przycisk | ||
$button.click(function (e) { | $button.click(function (e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
// Popup do wpisania uzasadnienia | |||
var reason = prompt('Podaj uzasadnienie zgłoszenia:'); | |||
if (!reason || reason.trim() === '') { | |||
alert('Uzasadnienie jest wymagane.'); | |||
return; | |||
} | |||
// Potwierdzenie zgłoszenia | |||
var doThis = confirm('Czy na pewno chcesz zgłosić edycję?'); | |||
if (doThis) { | |||
var api = new mw.Api(); | |||
// Stwórz nowy wątek na Wikipedia:Prośby do administratorów | |||
api.postWithToken('csrf', { | |||
action: 'edit', | |||
title: 'Wikipedia:Prośby do administratorów', | |||
section: 'new', | |||
sectiontitle: 'Prośba o ukrycie', | |||
text: '[[Specjalna:Diff/' + diffNumber + '|Edycja ' + diffNumber + ']] - ' + reason + '\n\nZgłasza: [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 20:08, 4 October 2024 (UTC)', | |||
summary: 'Zgłoszono edycję do ukrycia: ' + diffNumber | |||
}).done(function () { | |||
alert('Edycja została zgłoszona.'); | |||
}).fail(function (error) { | |||
console.error('Błąd podczas zgłaszania:', error); | |||
alert('Wystąpił błąd podczas zgłaszania edycji.'); | |||
}); | |||
} | |||
}); | }); | ||
} | } | ||
}); | }); | ||
} | } | ||
$(document).ready(function () { | $(document).ready(function () { | ||
addReportButton(); | addReportButton(); | ||
}); | }); | ||
}); | }); |
Latest revision as of 20:08, 4 October 2024
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () {
function addReportButton() {
// Znajdź każdą edycję
$('.mw-changeslist-diff').each(function () {
var diffUrl = $(this).attr('href');
var diffNumber = diffUrl.match(/diff=(\d+)/)[1];
// Dodaj przycisk, jeśli go jeszcze nie ma
if ($(this).siblings('.pt-report').length === 0) {
var $button = $('<a>')
.attr('href', '#')
.text('(zgłoś)')
.addClass('pt-report')
.css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' });
$(this).after($button);
// Obsługa kliknięcia w przycisk
$button.click(function (e) {
e.preventDefault();
// Popup do wpisania uzasadnienia
var reason = prompt('Podaj uzasadnienie zgłoszenia:');
if (!reason || reason.trim() === '') {
alert('Uzasadnienie jest wymagane.');
return;
}
// Potwierdzenie zgłoszenia
var doThis = confirm('Czy na pewno chcesz zgłosić edycję?');
if (doThis) {
var api = new mw.Api();
// Stwórz nowy wątek na Wikipedia:Prośby do administratorów
api.postWithToken('csrf', {
action: 'edit',
title: 'Wikipedia:Prośby do administratorów',
section: 'new',
sectiontitle: 'Prośba o ukrycie',
text: '[[Specjalna:Diff/' + diffNumber + '|Edycja ' + diffNumber + ']] - ' + reason + '\n\nZgłasza: [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 20:08, 4 October 2024 (UTC)',
summary: 'Zgłoszono edycję do ukrycia: ' + diffNumber
}).done(function () {
alert('Edycja została zgłoszona.');
}).fail(function (error) {
console.error('Błąd podczas zgłaszania:', error);
alert('Wystąpił błąd podczas zgłaszania edycji.');
});
}
});
}
});
}
$(document).ready(function () {
addReportButton();
});
});