User:BZPN/Zgłaszarka.js: Difference between revisions

From Test Wiki
Content deleted Content added
BZPN (talk | contribs)
No edit summary
BZPN (talk | contribs)
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () {
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () {
function addReportButton() {
function addReportButton() {
// Przejście przez wszystkie linki edycji
// Znajdź każdą edycję
$('.mw-changeslist-links .mw-diff').each(function () {
$('.mw-changeslist-diff').each(function () {
var $diffLink = $(this);
var diffUrl = $(this).attr('href');
var diffHref = $diffLink.attr('href');
var diffNumber = diffUrl.match(/diff=(\d+)/)[1];
var diffNumber = diffHref.match(/oldid=(\d+)/)[1]; // Wyciągnięcie numeru edycji


// Sprawdzenie, czy przycisk już nie istnieje
// Dodaj przycisk, jeśli go jeszcze nie ma
if ($diffLink.siblings('.pt-report').length === 0) {
if ($(this).siblings('.pt-report').length === 0) {
// Tworzenie przycisku
var $button = $('<a>')
var $button = $('<a>')
.attr('href', '#')
.attr('href', '#')
Line 16: Line 14:
.css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' });
.css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' });


// Dodanie przycisku po linku edycji
$(this).after($button);
$diffLink.after($button);


// Obsługa kliknięcia w przycisk
// Obsługa kliknięcia w przycisk
Line 23: Line 20:
e.preventDefault();
e.preventDefault();


// Wyświetlenie popupu z możliwością wpisania uzasadnienia
// Popup do wpisania uzasadnienia
var reason = prompt('Podaj uzasadnienie zgłoszenia:');
var reason = prompt('Podaj uzasadnienie zgłoszenia:');
if (!reason || reason.trim() === '') {
if (!reason || reason.trim() === '') {
Line 31: Line 28:


// Potwierdzenie zgłoszenia
// Potwierdzenie zgłoszenia
var confirmReport = confirm('Czy na pewno chcesz zgłosić edycję do ukrycia?');
var doThis = confirm('Czy na pewno chcesz zgłosić edycję?');
if (!confirmReport) {
if (doThis) {
return;
var api = new mw.Api();

// Stwórz nowy wątek na Wikipedia:Prośby do administratorów
api.postWithToken('csrf', {
action: 'edit',
title: 'User:BZPN/Wikipedia:Prośby do administratorów',
section: 'new',
sectiontitle: 'Prośba o ukrycie',
text: '[[Specjalna:Diff/' + diffNumber + '|Diff ' + diffNumber + ']] - ' + reason + '\n\nZgłasza:'+'~~'+'~~',
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.');
});
}
}

// API do edycji strony z prośbami
var api = new mw.Api();

api.postWithToken('csrf', {
action: 'edit',
title: 'Wikipedia:Prośby do administratorów',
section: 'new',
sectiontitle: 'Prośba o ukrycie',
text: '[[Specjalna:Diff/' + diffNumber + '|Diff ' + diffNumber + ']] - ' + reason + '\nZgłasza: [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 19:56, 4 October 2024 (UTC)',
summary: 'Prośba o ukrycie edycji nr ' + diffNumber
}).done(function () {
alert('Zgłoszenie zostało wysłane.');
}).fail(function (error) {
console.error('Błąd podczas wysyłania zgłoszenia:', error);
alert('Wystąpił błąd podczas wysyłania zgłoszenia.');
});
});
});
}
}
Line 57: Line 52:
}
}


// Uruchomienie funkcji po załadowaniu strony
$(document).ready(function () {
$(document).ready(function () {
addReportButton();
addReportButton();