User:BZPN/RfD.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
Content deleted Content added
No edit summary
Tags: Mobile edit Mobile web edit
Replaced content with "Nothing here"
Tags: Replaced Mobile edit Mobile web edit
 
Line 1: Line 1:
Nothing here
(function() {
if (mw.config.get('wgNamespaceNumber') < 0 || mw.config.get('wgIsArticle') === false) return;

// Dodaj przycisk "Nominate for deletion" do paska narzędzi
var nominateLink = mw.util.addPortletLink(
'p-tb', // Pasek narzędzi
'#', // link docelowy
'Nominate for deletion', // Tekst przycisku
'ca-nominate-deletion', // ID linku
'Nominate this page for deletion' // Podpowiedź tekstowa
);

// Jeśli dodanie przycisku się powiodło, przypisz funkcję do obsługi kliknięcia
if (nominateLink) {
nominateLink.onclick = function(event) {
event.preventDefault();
openDeletionPopup();
};
}

// Dodanie zakładki Quick Delete do popupu
function addQuickDeleteTab(popup) {
const quickDeleteTab = $('<div>').attr('id', 'quick-delete-tab').css({
'display': 'none' // Domyślnie ukryty
}).appendTo(popup);

$('<h3>').text('Quick Delete').css({
'font-size': '18px',
'margin-bottom': '10px'
}).appendTo(quickDeleteTab);

$('<p>').html('Before proceeding with Quick Deletion, please read the <a href="/wiki/Template:QD" target="_blank">Template:QD</a> documentation and the <a href="/wiki/Wikipedia:Deletion_policy" target="_blank">Wikipedia Deletion Policy</a>.')
.css({
'font-size': '14px',
'margin-bottom': '10px'
}).appendTo(quickDeleteTab);

const consentCheckbox = $('<input>').attr('type', 'checkbox').attr('id', 'consent-checkbox').css('margin-right', '10px');
const consentLabel = $('<label>').attr('for', 'consent-checkbox').text('I have read and understand the deletion policy.');
$('<div>').append(consentCheckbox).append(consentLabel).appendTo(quickDeleteTab);

$('<p>').text('Choose a reason for quick deletion from the list below:').css({
'font-size': '14px',
'margin-bottom': '10px'
}).appendTo(quickDeleteTab);

const quickDeleteSelect = $('<select>').attr('id', 'quick-delete-reason').css({
'width': '100%',
'padding': '6px',
'font-size': '14px',
'margin-bottom': '10px'
}).appendTo(quickDeleteTab);

const reasons = [
{ value: 'A1', text: 'Little or no meaning' },
{ value: 'A2', text: 'No content' },
{ value: 'A3', text: 'Article is transwikied' },
{ value: 'A4', text: 'Does not say why it is notable' },
{ value: 'A5', text: 'Not in English' },
{ value: 'A6', text: 'Hoax' }
];

$.each(reasons, function(index, reason) {
quickDeleteSelect.append($('<option>').attr('value', reason.value).text(reason.text));
});

// Przycisk do szybkiego usunięcia
$('<button>').text('Quick Delete').css({
'width': '100%',
'padding': '10px',
'background-color': '#d9534f',
'color': '#fff',
'border': 'none',
'border-radius': '5px',
'cursor': 'pointer',
'font-size': '16px'
}).on('click', function() {
const reason = quickDeleteSelect.val();
const consent = consentCheckbox.is(':checked');
if (reason && consent) {
tagPageForQuickDeletion(reason);
} else if (!consent) {
alert('Please confirm you have read the deletion policy.');
} else {
alert('Please choose a reason for quick deletion.');
}
}).appendTo(quickDeleteTab);
}

// Tworzenie i otwarcie okna popup dla nominacji do usunięcia
function openDeletionPopup() {
// Tworzenie nakładki
const overlay = $('<div>').attr('id', 'deletion-popup-overlay').css({
'position': 'fixed',
'top': '0',
'left': '0',
'width': '100%',
'height': '100%',
'background-color': 'rgba(0, 0, 0, 0.5)',
'z-index': '1000'
}).appendTo('body');

// Tworzenie okna popup
const popup = $('<div>').attr('id', 'deletion-popup').css({
'position': 'fixed',
'top': '50%',
'left': '50%',
'transform': 'translate(-50%, -50%)',
'background-color': '#fff',
'padding': '20px',
'border': '1px solid #ddd',
'border-radius': '5px',
'box-shadow': '0 0 10px rgba(0, 0, 0, 0.5)',
'z-index': '1001'
}).appendTo('body');

// Dodanie zakładki Request for Deletion
const requestDeletionTab = $('<div>').attr('id', 'request-deletion-tab').appendTo(popup);

$('<h3>').text('Request for Deletion').css({
'font-size': '18px',
'margin-bottom': '10px'
}).appendTo(requestDeletionTab);

$('<p>').html('Before proceeding with Request for Deletion, please read the <a href="/wiki/Wikipedia:Deletion_policy" target="_blank">Wikipedia Deletion Policy</a>.')
.css({
'font-size': '14px',
'margin-bottom': '10px'
}).appendTo(requestDeletionTab);

const reasonInput = $('<textarea>').attr('id', 'deletion-reason').css({
'width': '100%',
'height': '100px',
'padding': '10px',
'font-size': '14px',
'margin-bottom': '10px'
}).appendTo(requestDeletionTab);

// Przycisk do nominacji do usunięcia
$('<button>').text('Nominate for Deletion').css({
'width': '100%',
'padding': '10px',
'background-color': '#337ab7',
'color': '#fff',
'border': 'none',
'border-radius': '5px',
'cursor': 'pointer',
'font-size': '16px'
}).on('click', function() {
const reason = reasonInput.val();
if (reason) {
tagPageForDeletion(reason);
} else {
alert('Please enter a reason for deletion.');
}
}).appendTo(requestDeletionTab);

// Dodanie zakładki Quick Delete
addQuickDeleteTab(popup);

// Zamknięcie okna popup po kliknięciu poza nim
overlay.on('click', function() {
overlay.remove();
popup.remove();
});
}

// Funkcja oznaczająca stronę do usunięcia
function tagPageForDeletion(reason) {
const tag = `{{db|${reason}}}`;
const editSummary = 'Nominating for deletion ([[User :BZPN/RfD.js|RfD]])';

new mw.Api().postWithToken('csrf', {
action: 'edit',
title: mw.config.get('wgPageName'),
prependtext: tag + '\n',
summary: editSummary,
watchlist: 'watch',
}).done(function() {
alert('Page tagged for deletion.');
}).fail(function() {
alert('Failed to tag the page for deletion. Please try again.');
});
}

// Funkcja tworząca stronę dyskusji o usunięciu
function createDiscussionPage(reason) {
const discussionPageTitle = `Wikipedia:Requests for deletion/Requests/2024/${mw.config.get('wgPageName')}`;
const discussionContent = `{{subst:RfD/Preload/Template|deletereason=${reason}}}\n\n==Deletion discussion==\nMore detailed reason why this page should be deleted:\n* ${reason}`;

new mw.Api().postWithToken('csrf', {
action: 'edit',
title: discussionPageTitle,
text: discussionContent,
summary: 'Starting deletion discussion ([[User :BZPN/RfD.js|RfD]])',
watchlist: 'watch',
}).done(function() {
alert('Deletion discussion page created.');
}).fail(function() {
alert('Failed to create deletion discussion page. Please try again.');
});
}

// Funkcja dodająca dyskusję do listy
function addToDeletionList() {
const deletionListTitle = 'Wikipedia:Requests for deletion/Current discussions';
const discussionLink = `{{subst:Wikipedia:Requests for deletion/Requests/2024/${mw.config.get('wgPageName')}}}`;

new mw.Api().edit(deletionListTitle, function(revision) {
return {
text: discussionLink + '\n' + revision.content,
summary: 'Adding new deletion discussion ([[User :BZPN/RfD.js|RfD]])',
watchlist: 'watch',
};
}).done(function() {
alert('Deletion discussion added to the list.');
}).fail(function() {
alert('Failed to add the discussion to the deletion list. Please try again.');
});
}

// Funkcja powiadamiająca autora strony
function notifyPageCreator() {
const creator = mw.config.get('wgPageContentModel') === 'wikitext' ? mw.config.get('wgPageCreator') : null;
if (creator) {
const notification = `{{subst:RFDNote|${mw.config.get('wgPageName')}}} ~~"+"~~`;
new mw.Api().postWithToken('csrf', {
action: 'edit',
title: `User talk:${creator}`,
appendtext: '\n' + notification,
summary: 'Notifying page creator about deletion nomination ([[User :BZPN/RfD.js|RfD]])',
watchlist: 'watch',
}).done(function() {
alert('Page creator notified.');
}).fail(function() {
alert('Failed to notify the page creator. Please try again.');
});
}
}

// Funkcja oznaczająca stronę do szybkiego usunięcia
function tagPageForQuickDeletion(reason) {
const tag = `{{qd|${reason}}}`;
const editSummary = 'Nominating for quick deletion ([[User :BZPN/RfD.js|QD]])';

new mw.Api().postWithToken('csrf', {
action: 'edit',
title: mw.config.get('wgPageName'),
prependtext: tag + '\n',
summary: editSummary,
watchlist: 'watch',
}).done(function() {
alert('Page tagged for quick deletion.');
}).fail(function() {
alert('Failed to tag the page for quick deletion. Please try again.');
});
}
})();

Latest revision as of 19:44, 1 November 2024

Nothing here