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
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
mw.loader.using(['mediawiki.api', 'oojs-ui', 'mediawiki.util']).done(function () {
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () {

// Funkcja dodająca przycisk zgłoszenia w odpowiednich miejscach
function addReportButton() {
function addReportButton() {
// 1. Ostatnie zmiany
// Znajdź każdą edycję
$('li.mw-changeslist-line').each(function () {
$('.mw-changeslist-diff').each(function () {
var $link = $(this).find('.mw-changeslist-diff');
var diffUrl = $(this).attr('href');
var diffNumber = diffUrl.match(/diff=(\d+)/)[1];

// Dodajemy przycisk (zgłoś) tylko raz
if ($link.siblings('.pt-report').length === 0) {
var diffUrl = $link.attr('href');
var diffNumber = diffUrl.match(/oldid=(\d+)/)[1]; // Wyciągnięcie numeru edycji


// 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' });


$link.after($button);
$(this).after($button);


// Obsługa kliknięcia przycisku
// Obsługa kliknięcia w przycisk
$button.click(function (e) {
$button.click(function (e) {
e.preventDefault();
e.preventDefault();
showReportPopup(diffNumber);
});
}
});


// 2. Podgląd porównywania zmian
// Popup do wpisania uzasadnienia
var reason = prompt('Podaj uzasadnienie zgłoszenia:');
if (mw.config.get('wgDiffOldId') && mw.config.get('wgDiffNewId')) {
var diffNumber = mw.config.get('wgDiffOldId');
if (!reason || reason.trim() === '') {
var $diffHeader = $('#mw-diff-ntitle1');
alert('Uzasadnienie jest wymagane.');
return;
}


// Dodajemy przycisk (zgłoś) tylko raz
// Potwierdzenie zgłoszenia
var doThis = confirm('Czy na pewno chcesz zgłosić edycję?');
if ($diffHeader.find('.pt-report').length === 0) {
var $button = $('<a>')
if (doThis) {
.attr('href', '#')
var api = new mw.Api();
.text('(zgłoś)')
.addClass('pt-report')
.css({ 'margin-left': '10px', 'cursor': 'pointer' });


// Stwórz nowy wątek na Wikipedia:Prośby do administratorów
$diffHeader.append($button);
api.postWithToken('csrf', {

// Obsługa kliknięcia przycisku
action: 'edit',
title: 'User:BZPN/Wikipedia:Prośby do administratorów',
$button.click(function (e) {
e.preventDefault();
section: 'new',
showReportPopup(diffNumber);
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.');
});
}
});
});
}
}
}
}

// Funkcja wyświetlająca popup do zgłoszenia
function showReportPopup(diffNumber) {
var dialog = new OO.ui.Dialog({
title: 'Zgłoś edycję',
content: [
new OO.ui.LabelWidget({ label: 'Wpisz uzasadnienie zgłoszenia:' }),
new OO.ui.TextInputWidget({ multiline: true, placeholder: 'Tutaj wpisz uzasadnienie' })
],
actions: [
{ action: 'save', label: 'Zgłoś', flags: 'primary' },
{ action: 'cancel', label: 'Anuluj', flags: 'safe' }
]
});

dialog.on('action:save', function () {
var reason = dialog.getElementByIndex(1).getValue().trim();
if (reason === '') {
alert('Uzasadnienie nie może być puste.');
return;
}
sendReport(diffNumber, reason);
dialog.close();
});

dialog.on('action:cancel', function () {
dialog.close();
});

dialog.open();
}

// Funkcja wysyłająca zgłoszenie na stronę Prośby do administratorów
function sendReport(diffNumber, reason) {
var api = new mw.Api();
var reportText = '== Prośba o ukrycie ==\n' +
'[[Specjalna:Diff/' + diffNumber + '|' + diffNumber + ']] - ' + reason + '\n' +
'Zgłasza: [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 19:54, 4 October 2024 (UTC)\n';

api.postWithToken('csrf', {
action: 'edit',
title: 'Wikipedia:Prośby do administratorów',
appendtext: reportText,
summary: 'Dodano prośbę o ukrycie edycji: ' + diffNumber
}).done(function () {
alert('Zgłoszenie zostało pomyślnie 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.');
});
});
}
}


// Uruchomienie skryptu 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();
    });
});