User:BZPN/Zgłaszarka.js: Difference between revisions
From Test Wiki
Content deleted Content added
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 |
||
| (12 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () { |
|||
// Dodanie przycisku "Zgłoś" obok edycji na stronie "Ostatnie zmiany" oraz w podglądzie zmian |
|||
function addReportButton() { |
|||
// Znajdź każdą edycję |
|||
// 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')) { |
|||
| ⚫ | |||
| ⚫ | |||
var diffNumber = diffUrl.match(/diff=(\d+)/)[1]; |
|||
// Funkcja dodająca przycisk Zgłoś |
|||
function dodajPrzyciskZglos() { |
|||
// Dodajemy przyciski obok linków do edycji |
|||
| ⚫ | |||
| ⚫ | |||
var diffNumber = diffLink ? new URL(diffLink, window.location.origin).searchParams.get('diff') : null; |
|||
| ⚫ | |||
| ⚫ | |||
$(this).append(' | <a href="#" class="zglos" data-diff="' + diffNumber + '">Zgłoś</a>'); |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
// Dodaj przycisk, jeśli go jeszcze nie ma |
|||
// Funkcja otwierająca popup i obsługująca zgłoszenie |
|||
if ($(this).siblings('.pt-report').length === 0) { |
|||
function otworzPopup(diffNumber) { |
|||
var |
var $button = $('<a>') |
||
.attr('href', '#') |
|||
.text('(zgłoś)') |
|||
| ⚫ | |||
| ⚫ | |||
.css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' }); |
|||
| ⚫ | |||
| ⚫ | |||
$.post(mw.util.wikiScript('api'), { |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
token: mw.user.tokens.get('csrfToken') |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
} |
|||
} |
|||
// Obsługa kliknięcia w przycisk |
|||
// Dodanie przycisków po załadowaniu strony |
|||
$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ę?'); |
|||
| ⚫ | |||
var api = new mw.Api(); |
|||
| ⚫ | |||
api.postWithToken('csrf', { |
|||
action: 'edit', |
|||
| ⚫ | |||
section: 'new', |
|||
| ⚫ | |||
| ⚫ | |||
summary: 'Zgłoszono edycję do ukrycia: ' + diffNumber |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
console.error('Błąd podczas zgłaszania:', error); |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
}); |
}); |
||
} |
} |
||
| ⚫ | |||
addReportButton(); |
|||
| ⚫ | |||
}); |
}); |
||