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

From Test Wiki
Jump to navigation Jump to search
Created page with "// Dodanie przycisku "Zgłoś" obok edycji na stronie "Ostatnie zmiany" oraz w podglądzie zmian $(function () { // Sprawdź, czy użytkownik jest zalogowany i w przestrzeni nazw "Specjalna" if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === 'Ostatnie_zmiany' || mw.config.get('wgAction') === 'compare')) { // Funkcja dodająca przycisk Zgłoś function dodajPrzyciskZglos() { // Dodajemy przyciski obo..."
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
// Dodanie przycisku "Zgłoś" obok edycji na stronie "Ostatnie zmiany" oraz w podglądzie zmian
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () {
$(function () {
    function addReportButton() {
    // Sprawdź, czy użytkownik jest zalogowany i w przestrzeni nazw "Specjalna"
        // Znajdź każdą edycję
    if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === 'Ostatnie_zmiany' || mw.config.get('wgAction') === 'compare')) {
        $('.mw-changeslist-diff').each(function () {
       
            var diffUrl = $(this).attr('href');
        // Funkcja dodająca przycisk Zgłoś
            var diffNumber = diffUrl.match(/diff=(\d+)/)[1];
        function dodajPrzyciskZglos() {
            // Dodajemy przyciski obok linków do edycji
            $('.mw-changeslist-links').each(function () {
                var diffLink = $(this).find('a:contains("porównaj")').attr('href');
                var diffNumber = diffLink ? new URL(diffLink, window.location.origin).searchParams.get('diff') : null;
               
                if (diffNumber) {
                    $(this).append(' | <a href="#" class="zglos" data-diff="' + diffNumber + '">Zgłoś</a>');
                }
            });
        }


        // Funkcja otwierająca popup i obsługująca zgłoszenie
            // Dodaj przycisk, jeśli go jeszcze nie ma
        function otworzPopup(diffNumber) {
            if ($(this).siblings('.pt-report').length === 0) {
            var uzasadnienie = prompt('Podaj uzasadnienie zgłoszenia:');
                 var $button = $('<a>')
            if (uzasadnienie) {
                    .attr('href', '#')
                 var trescZgloszenia = '== Prośba o ukrycie ==\n';
                    .text('(zgłoś)')
                trescZgloszenia += '[[Specjalna:Diff/' + diffNumber + '|diff ' + diffNumber + ']] - ' + uzasadnienie + '\n';
                    .addClass('pt-report')
                trescZgloszenia += 'Zgłasza: ' + mw.config.get('wgUserName') + ' [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 19:50, 4 October 2024 (UTC)\n';
                    .css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' });


                 // Wysyłanie zgłoszenia na stronę Wikipedia:Prośby do administratorów
                 $(this).after($button);
                $.post(mw.util.wikiScript('api'), {
 
                    action: 'edit',
                // Obsługa kliknięcia w przycisk
                    title: 'Wikipedia:Prośby do administratorów',
                $button.click(function (e) {
                    appendtext: '\n' + trescZgloszenia,
                    e.preventDefault();
                    summary: 'Zgłoszenie prośby o ukrycie zmian',
 
                    token: mw.user.tokens.get('csrfToken')
                    // Popup do wpisania uzasadnienia
                }).done(function () {
                    var reason = prompt('Podaj uzasadnienie zgłoszenia:');
                    alert('Zgłoszenie zostało wysłane.');
                    if (!reason || reason.trim() === '') {
                }).fail(function () {
                        alert('Uzasadnienie jest wymagane.');
                    alert('Wystąpił błąd podczas wysyłania zgłoszenia.');
                        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.');
                        });
                    }
                 });
                 });
             }
             }
        }
        // Dodanie przycisków po załadowaniu strony
        dodajPrzyciskZglos();
        // Obsługa kliknięcia w przycisk "Zgłoś"
        $(document).on('click', '.zglos', function (e) {
            e.preventDefault();
            var diffNumber = $(this).data('diff');
            otworzPopup(diffNumber);
         });
         });
     }
     }
    $(document).ready(function () {
        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();
    });
});