User:BZPN/Zgłaszarka.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
mw.loader.using([ |
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () { |
||
// Funkcja dodająca przycisk zgłoszenia w odpowiednich miejscach |
|||
function addReportButton() { |
function addReportButton() { |
||
// |
// Przejście przez wszystkie linki edycji |
||
$(' |
$('.mw-changeslist-links .mw-diff').each(function () { |
||
var $ |
var $diffLink = $(this); |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
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' }); |
.css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' }); |
||
// Dodanie przycisku po linku edycji |
|||
⚫ | |||
// Obsługa kliknięcia |
// Obsługa kliknięcia w przycisk |
||
$button.click(function (e) { |
$button.click(function (e) { |
||
e.preventDefault(); |
e.preventDefault(); |
||
⚫ | |||
⚫ | |||
⚫ | |||
}); |
|||
// Wyświetlenie popupu z możliwością wpisania uzasadnienia |
|||
// 2. Podgląd porównywania zmian |
|||
⚫ | |||
if (mw.config.get('wgDiffOldId') && mw.config.get('wgDiffNewId')) { |
|||
if (!reason || reason.trim() === '') { |
|||
alert('Uzasadnienie jest wymagane.'); |
|||
⚫ | |||
⚫ | |||
// Potwierdzenie zgłoszenia |
|||
var confirmReport = confirm('Czy na pewno chcesz zgłosić tę edycję do ukrycia?'); |
|||
if ($diffHeader.find('.pt-report').length === 0) { |
|||
if (!confirmReport) { |
|||
return; |
|||
} |
|||
⚫ | |||
.css({ 'margin-left': '10px', 'cursor': 'pointer' }); |
|||
// API do edycji strony z prośbami |
|||
⚫ | |||
api.postWithToken('csrf', { |
|||
action: 'edit', |
|||
title: 'Wikipedia:Prośby do administratorów', |
|||
section: 'new', |
|||
sectiontitle: 'Prośba o ukrycie', |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
}); |
}); |
||
} |
} |
||
} |
|||
} |
|||
// Funkcja wyświetlająca popup do zgłoszenia |
|||
function showReportPopup(diffNumber) { |
|||
var dialog = new OO.ui.Dialog({ |
|||
title: 'Zgłoś edycję', |
|||
content: [ |
|||
⚫ | |||
new OO.ui.TextInputWidget({ multiline: true, placeholder: 'Tutaj wpisz uzasadnienie' }) |
|||
], |
|||
actions: [ |
|||
{ action: 'save', label: 'Zgłoś', flags: 'primary' }, |
|||
{ action: 'cancel', label: 'Anuluj', flags: 'safe' } |
|||
] |
|||
}); |
|||
dialog.on('action:save', function () { |
|||
var reason = dialog.getElementByIndex(1).getValue().trim(); |
|||
if (reason === '') { |
|||
alert('Uzasadnienie nie może być puste.'); |
|||
⚫ | |||
} |
|||
sendReport(diffNumber, reason); |
|||
dialog.close(); |
|||
}); |
|||
dialog.on('action:cancel', function () { |
|||
dialog.close(); |
|||
}); |
|||
dialog.open(); |
|||
} |
|||
// Funkcja wysyłająca zgłoszenie na stronę Prośby do administratorów |
|||
function sendReport(diffNumber, reason) { |
|||
⚫ | |||
var reportText = '== Prośba o ukrycie ==\n' + |
|||
⚫ | |||
'Zgłasza: [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 19:54, 4 October 2024 (UTC)\n'; |
|||
api.postWithToken('csrf', { |
|||
action: 'edit', |
|||
title: 'Wikipedia:Prośby do administratorów', |
|||
appendtext: reportText, |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
}); |
}); |
||
} |
} |
||
// Uruchomienie |
// Uruchomienie funkcji po załadowaniu strony |
||
$(document).ready(function () { |
$(document).ready(function () { |
||
addReportButton(); |
addReportButton(); |
||
}); |
}); |
||
}); |
}); |
Revision as of 19:56, 4 October 2024
mw.loader.using(['oojs-ui', 'mediawiki.util']).done(function () {
function addReportButton() {
// Przejście przez wszystkie linki edycji
$('.mw-changeslist-links .mw-diff').each(function () {
var $diffLink = $(this);
var diffHref = $diffLink.attr('href');
var diffNumber = diffHref.match(/oldid=(\d+)/)[1]; // Wyciągnięcie numeru edycji
// Sprawdzenie, czy przycisk już nie istnieje
if ($diffLink.siblings('.pt-report').length === 0) {
// Tworzenie przycisku
var $button = $('<a>')
.attr('href', '#')
.text('(zgłoś)')
.addClass('pt-report')
.css({ 'margin-left': '10px', 'cursor': 'pointer', 'color': 'red' });
// Dodanie przycisku po linku edycji
$diffLink.after($button);
// Obsługa kliknięcia w przycisk
$button.click(function (e) {
e.preventDefault();
// Wyświetlenie popupu z możliwością wpisania uzasadnienia
var reason = prompt('Podaj uzasadnienie zgłoszenia:');
if (!reason || reason.trim() === '') {
alert('Uzasadnienie jest wymagane.');
return;
}
// Potwierdzenie zgłoszenia
var confirmReport = confirm('Czy na pewno chcesz zgłosić tę edycję do ukrycia?');
if (!confirmReport) {
return;
}
// API do edycji strony z prośbami
var api = new mw.Api();
api.postWithToken('csrf', {
action: 'edit',
title: 'Wikipedia:Prośby do administratorów',
section: 'new',
sectiontitle: 'Prośba o ukrycie',
text: '[[Specjalna:Diff/' + diffNumber + '|Diff ' + diffNumber + ']] - ' + reason + '\nZgłasza: [[User:BZPN|BZPN]] ([[User talk:BZPN|talk]]) 19:56, 4 October 2024 (UTC)',
summary: 'Prośba o ukrycie edycji nr ' + diffNumber
}).done(function () {
alert('Zgłoszenie zostało wysłane.');
}).fail(function (error) {
console.error('Błąd podczas wysyłania zgłoszenia:', error);
alert('Wystąpił błąd podczas wysyłania zgłoszenia.');
});
});
}
});
}
// Uruchomienie funkcji po załadowaniu strony
$(document).ready(function () {
addReportButton();
});
});