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

From Test Wiki
Jump to navigation Jump to search
No edit summary
Tag: Reverted
No edit summary
Tag: Reverted
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() {
         // Znajdź każdą edycję
         // Znajdź każdą edycję w historii zmian strony
         $('.mw-changeslist-diff').each(function () {
         $('.mw-changeslist-history .mw-changeslist-links a').each(function () {
             var diffUrl = $(this).attr('href');
             var diffUrl = $(this).attr('href');
             var diffNumber = diffUrl.match(/diff=(\d+)/)[1];
             var diffNumberMatch = diffUrl.match(/diff=(\d+)/);
           
            if (diffNumberMatch) {
                var diffNumber = diffNumberMatch[1];


            // Dodaj przycisk, jeśli go jeszcze nie ma
                // Dodaj przycisk, jeśli go jeszcze nie ma
            if ($(this).siblings('.pt-report').length === 0) {
                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', 'color': 'red' });
                        .css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' });


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


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


                    // Popup do 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() === '') {
                        alert('Uzasadnienie jest wymagane.');
                            alert('Uzasadnienie jest wymagane.');
                        return;
                            return;
                    }
                        }


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


                        // Stwórz nowy wątek na Wikipedia:Prośby do administratorów
                            // Stwórz nowy wątek na Wikipedia:Prośby do administratorów
                        api.postWithToken('csrf', {
                            api.postWithToken('csrf', {
                            action: 'edit',
                                action: 'edit',
                            title: 'User:BZPN/Wikipedia:Prośby do administratorów',
                                title: 'User:BZPN/Wikipedia:Prośby do administratorów',
                            section: 'new',
                                section: 'new',
                            sectiontitle: 'Prośba o ukrycie',
                                sectiontitle: 'Prośba o ukrycie',
                            text: '[[Specjalna:Diff/' + diffNumber + '|Edycja ' + diffNumber + ']] - ' + reason + '\n\nZgłasza:'+'~~'+'~~',
                                text: '[[Specjalna:Diff/' + diffNumber + '|Edycja ' + diffNumber + ']] - ' + reason + '\n\nZgłasza:'+'~~'+'~~',
                            summary: 'Zgłoszono edycję do ukrycia: ' + diffNumber
                                summary: 'Zgłoszono edycję do ukrycia: ' + diffNumber
                        }).done(function () {
                            }).done(function () {
                            alert('Edycja została zgłoszona.');
                                alert('Edycja została zgłoszona.');
                        }).fail(function (error) {
                            }).fail(function (error) {
                            console.error('Błąd podczas zgłaszania:', error);
                                console.error('Błąd podczas zgłaszania:', error);
                            alert('Wystąpił błąd podczas zgłaszania edycji.');
                                alert('Wystąpił błąd podczas zgłaszania edycji.');
                        });
                            });
                     }
                        }
                 });
                     });
                 }
             }
             }
         });
         });

Revision as of 19:17, 6 October 2024

mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () {
    function addReportButton() {
        // Znajdź każdą edycję w historii zmian strony
        $('.mw-changeslist-history .mw-changeslist-links a').each(function () {
            var diffUrl = $(this).attr('href');
            var diffNumberMatch = diffUrl.match(/diff=(\d+)/);
            
            if (diffNumberMatch) {
                var diffNumber = diffNumberMatch[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 + '|Edycja ' + 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();
    });
});