MediaWiki:Gadget-MoreMenu.enwiki.js
Appearance
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.
/**
* WARNING: GLOBAL GADGET FILE
* Please submit code changes as a pull request to the source repository at https://github.com/MusikAnimal/MoreMenu
* Only critical, urgent changes should be made to this file directly.
*
* Script: MoreMenu.js
* Version: 5.0.0
* Author: MusikAnimal
* License: MIT
* Documentation: [[meta:MoreMenu]]
* GitHub: https://github.com/MusikAnimal/MoreMenu
* Skins: Vector, Timeless, Monobook
* Browsers: All modern browsers and IE 11+
**/
"use strict";
/**
* Enwiki extension to MoreMenu.
* This adds a menu item with RfAs/RfBs and an item for XfD where applicable.
*/
$(function () {
/**
* Look for and add links to RfAs, RfBs, Arbitration cases, etc.
* @param {mw.Api} api
* @param {Object} config
*/
function addRfXs(api, config) {
var rfxs = {
'Wikipedia:Requests for adminship': 'rfa',
'Wikipedia:Requests for bureaucratship': 'rfb',
'Wikipedia:Arbitration/Requests/Case': 'rfarb',
'Wikipedia:Requests for comment': 'rfc',
'Wikipedia:Requests for checkuser': 'rfcu',
'Wikipedia:Requests for checkuser/Case': 'rfcuc',
'Wikipedia:Requests for oversight': 'rfo',
'Wikipedia:Contributor copyright investigations': 'cci',
'Wikipedia:Sockpuppet investigations': 'spi'
};
Object.assign(MoreMenu.messages, {
'rfa': 'RfAs',
'rfb': 'RfBs',
'rfarb': 'RfArbs',
'rfc': 'RfCs',
'rfcu': 'RfCUs',
'rfcuc': 'RfCUCs',
'rfo': 'RfOs',
'cci': 'CCIs',
'spi': 'SPIs'
});
var links = {};
api.get({
titles: Object.keys(rfxs).map(function (rfx) {
return "".concat(rfx, "/").concat(config.userName);
}).join('|'),
formatversion: 2
}).done(function (data) {
data.query.pages.forEach(function (page) {
if (!page.missing) {
var key = rfxs[page.title.replace("/".concat(config.userName), '')];
links[key] = {
url: mw.util.getUrl("Special:PrefixIndex/".concat(page.title))
};
}
});
if (Object.keys(links).length) {
MoreMenu.addItem('user', {
'RfXs': links
}, 'user-logs');
}
});
}
/**
* Look for and add a link to Special:PrefixIndex for AfDs or XfDs.
* @param {mw.Api} api
* @param {Object} config
*/
function addXfD(api, config) {
api.get({
titles: ["Wikipedia:Articles for deletion/".concat(config.pageName), "Wikipedia:Miscellany for deletion/".concat(config.pageName)].join('|'),
prop: 'info',
formatversion: 2
}).done(function (data) {
data.query.pages.some(function (page) {
if (page.missing) {
return;
}
var link = mw.util.getUrl("Special:PrefixIndex/".concat(page.title));
switch (page.title.split('/')[0]) {
case 'Wikipedia:Miscellany for deletion':
return MoreMenu.addItem('page', {
'MfDs': {
url: link
}
});
case 'Wikipedia:Articles for deletion':
return MoreMenu.addItem('page', {
'AfDs': {
url: link
}
});
}
});
});
}
mw.hook('moremenu.ready').add(function (config) {
var api = new mw.Api();
if (config.userName) {
addRfXs(api, config);
}
if (config.pageName) {
addXfD(api, config);
}
});
});