User:DR/test.js: Difference between revisions

From Test Wiki
Content deleted Content added
DR (talk | contribs)
1st version
Tag: Manual revert
DR (talk | contribs)
No edit summary
Line 1: Line 1:
//<nowiki>
$(document).ready(function() {
$(document).ready(function() {
function initializeMassDelete() {
function initializeMassDelete() {
Line 11: Line 12:
reasonInputField = new OO.ui.TextInputWidget({
reasonInputField = new OO.ui.TextInputWidget({
placeholder: 'Reason for deletion'
placeholder: 'Reason for deletion'
}),
deleteTalkCheckbox = new OO.ui.CheckboxInputWidget({
selected: true
}),
}),
previewButton = new OO.ui.ButtonWidget({
previewButton = new OO.ui.ButtonWidget({
Line 31: Line 35:
var labels = {
var labels = {
pagesLabel: $('<p>').text('Pages to Delete:').css('font-weight', 'bold'),
pagesLabel: $('<p>').text('Pages to Delete:').css('font-weight', 'bold'),
reasonLabel: $('<p>').text('Reason:').css('font-weight', 'bold')
reasonLabel: $('<p>').text('Reason:').css('font-weight', 'bold'),
deleteTalkLabel: $('<label>').append(deleteTalkCheckbox.$element, ' Also delete talk pages')
};
};


Line 37: Line 42:
labels.pagesLabel, pagesTextarea.$element,
labels.pagesLabel, pagesTextarea.$element,
labels.reasonLabel, reasonInputField.$element,
labels.reasonLabel, reasonInputField.$element,
'<br/>',
labels.deleteTalkLabel,
'<br/>',
'<br/>',
previewButton.$element,
previewButton.$element,
Line 45: Line 52:
);
);


function deletePage(page, reason, callback) {
function deletePage(page, reason, deleteTalk, callback) {
var params = {
action: 'delete',
title: page,
reason: reason
};
if (deleteTalk) {
params.deletetalk = true;
}

(new mw.Api({
(new mw.Api({
ajax: {
ajax: {
Line 52: Line 68:
}
}
}
}
})).postWithToken('csrf', {
})).postWithToken('csrf', params, {
action: 'delete',
title: page,
reason: reason
}, {
async: false
async: false
}).done(function(data) {
}).done(function(data) {
Line 81: Line 93:
function previewDeleting() {
function previewDeleting() {
var pages = pagesTextarea.getValue().replace(/^\s*[\r\n]/gm, '').split("\n"),
var pages = pagesTextarea.getValue().replace(/^\s*[\r\n]/gm, '').split("\n"),
reason = reasonInputField.getValue().trim();
reason = reasonInputField.getValue().trim(),
deleteTalk = deleteTalkCheckbox.isSelected();


if (pages[0].trim() === "" || reason === "") {
if (pages[0].trim() === "" || reason === "") {
Line 98: Line 111:
logList.append("<li><b>" + page + "</b> will be deleted for reason: <b>" + reason + "</b></li>");
logList.append("<li><b>" + page + "</b> will be deleted for reason: <b>" + reason + "</b></li>");
});
});

if (deleteTalk) {
logList.append("<li>Talk pages will also be deleted if they exist.</li>");
}


startButton.setDisabled(false);
startButton.setDisabled(false);
Line 108: Line 125:


var pages = pagesTextarea.getValue().replace(/^\s*[\r\n]/gm, '').split("\n"),
var pages = pagesTextarea.getValue().replace(/^\s*[\r\n]/gm, '').split("\n"),
reason = reasonInputField.getValue().trim() + " (using [[User:DreamRimmer/MassDelete|MassDelete.js]])";
reason = reasonInputField.getValue().trim() + " (using [[:meta:User:DreamRimmer/MassDelete|MassDelete.js]])",
deleteTalk = deleteTalkCheckbox.isSelected();


if (pages[0].trim() === "" || reason === "") {
if (pages[0].trim() === "" || reason === "") {
Line 128: Line 146:
var page = pages[currentIndex].trim();
var page = pages[currentIndex].trim();


deletePage(page, reason, function(err, data) {
deletePage(page, reason, deleteTalk, function(err, data) {
handleDeleteResponse(err, data, page);
handleDeleteResponse(err, data, page);
currentIndex++;
currentIndex++;
Line 166: Line 184:
}
}
});
});
//</nowiki>