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

From Test Wiki
Jump to navigation Jump to search
Content deleted Content added
No edit summary
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();

Latest revision as of 19:25, 6 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: '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.');
                        });
                    }
                });
            }
        });
    }

    $(document).ready(function () {
        addReportButton();
    });
});