User:DR/test.js: Difference between revisions
From Test Wiki
Content deleted Content added
1st version Tag: Manual revert |
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({ |
|||
| ⚫ | |||
}), |
}), |
||
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, |
||
| ⚫ | |||
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 = { |
|||
| ⚫ | |||
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, { |
||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
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> |
|||