Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/*
* <nowiki>
* Mark for deletion
*
* Adds a button to the toolbar that automatically adds {{delete|reason}} to the top of a page
* so that users can quickly mark spam or inappropriate pages for deletion
*
* https://dev.fandom.com/wiki/MarkForDeletion
*/
/*jshint forin:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, unused:true, curly:true, browser:true, jquery:true */
/*global mw, BannerNotification, importArticle */
(function () {
'use strict';
var config = mw.config.get([
'wgAction',
'wgNamespaceNumber',
'wgPageName',
'wgUserGroups',
'wgUserName'
]);
if (
config.wgAction !== 'view' ||
config.wgNamespaceNumber === -1 ||
config.wgUserName === null ||
/content-moderator|sysop|staff|wiki-specialist|soap|global-edit-reviewer/.test(config.wgUserGroups.join('|')) ||
window.MarkForDeletionLoaded
) {
return;
}
window.MarkForDeletionLoaded = true;
var i18n;
function setDeleteNotice(deleteReason) {
var params = {
action: 'edit',
title: config.wgPageName,
summary: i18n.inContentLang().msg('summaryPrefix').plain() + ': ' + deleteReason,
token: mw.user.tokens.get('csrfToken'),
format: 'json'
};
params[
(window.MarkForDeletion || {}).replace ?
'text' :
'prependtext'
] = '{{delete|' + deleteReason + '}}';
$.ajax({
type: 'POST',
url: mw.util.wikiScript('api'),
data: params,
success: function (d) {
window.location.reload();
},
error: function (code) {
mw.notify(i18n.msg('error').plain() + ': ' + (code || 'http'));
}
});
}
function click(event) {
event.preventDefault();
var promptedDeleteReason = i18n.inContentLang().msg('spam').plain();
if (window.MarkForDeletion && typeof window.MarkForDeletion.promptedDeleteReason === 'string') {
promptedDeleteReason = window.MarkForDeletion.promptedDeleteReason;
}
// [[mw:OOUI/Windows/Simple messages]]
mw.loader.using('oojs-ui-windows').done(function () {
OO.ui.prompt(i18n.msg('prompt').plain(), {textInput: {placeholder: promptedDeleteReason }}).done(function(deleteReason) {
if (typeof deleteReason === 'string' && deleteReason.length > 0 ) {
setDeleteNotice(deleteReason);
}
});
});
}
function initDeleteNoticeButton(i18na) {
i18n = i18na;
var $button = $('<li>').append(
$('<a>', {
click: click,
href: '#',
id: 'mark-for-deletion-link',
text: i18n.msg('buttonTitle').plain()
})
), $toolbar = $('#WikiaBarWrapper'),
$tools = $toolbar.find('li.mytools'),
$dropdown = $('.page-header__contribution-buttons .wds-list, .page-header__actions .wds-list');
if (window.MarkForDeletionEditDropdown && $dropdown.length) {
// insert link in edit dropdown if user wants that
$dropdown.append($button);
} else if ($tools.length) {
// insert link before My Tools
$tools.before($button);
} else {
// try to insert link before Customize
$toolbar.find('a.tools-customize').parent().before($button);
}
}
importArticle({
type: 'script',
article: 'u:dev:MediaWiki:I18n-js/code.js'
});
mw.hook('dev.i18n').add(function (i18n) {
i18n.loadMessages('MarkForDeletion').done(initDeleteNoticeButton);
});
})();
// </nowiki>