User:BZPN/Zgłaszarka.js

From Test Wiki
Revision as of 19:50, 4 October 2024 by BZPN (talk | contribs) (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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// 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 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
        function otworzPopup(diffNumber) {
            var uzasadnienie = prompt('Podaj uzasadnienie zgłoszenia:');
            if (uzasadnienie) {
                var trescZgloszenia = '== Prośba o ukrycie ==\n';
                trescZgloszenia += '[[Specjalna:Diff/' + diffNumber + '|diff ' + diffNumber + ']] - ' + uzasadnienie + '\n';
                trescZgloszenia += 'Zgłasza: ' + mw.config.get('wgUserName') + ' [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 19:50, 4 October 2024 (UTC)\n';

                // Wysyłanie zgłoszenia na stronę Wikipedia:Prośby do administratorów
                $.post(mw.util.wikiScript('api'), {
                    action: 'edit',
                    title: 'Wikipedia:Prośby do administratorów',
                    appendtext: '\n' + trescZgloszenia,
                    summary: 'Zgłoszenie prośby o ukrycie zmian',
                    token: mw.user.tokens.get('csrfToken')
                }).done(function () {
                    alert('Zgłoszenie zostało wysłane.');
                }).fail(function () {
                    alert('Wystąpił błąd podczas wysyłania zgłoszenia.');
                });
            }
        }

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