User:BZPN/Zgłaszarka.js
From Test Wiki
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);
});
}
});