User:JJMC89/global.js
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>
/*******************************************************************************
* Variables
*******************************************************************************/
lwgGlobalGroups = mw.config.get( 'wgGlobalGroups', [] );
lwgScript = mw.config.get( 'wgScript' );
lwgUserGroups = mw.config.get( 'wgUserGroups' );
lwgUserName = mw.config.get( 'wgUserName' );
lwgNamespaceNumber = mw.config.get( 'wgNamespaceNumber' );
lwgPageName = mw.config.get( 'wgPageName' );
lwgServerName = mw.config.get( 'wgServerName' );
/*******************************************************************************
* Functions
*******************************************************************************/
function importMwScript( page, family, lang ) {
$.when( $.ready, mw.loader.using( ['mediawiki.util'] ) ).then( function() {
if ( typeof family === 'undefined' && typeof lang === 'undefined' ) {
console.log( 'Loading ' + page );
mw.loader.load( lwgScript + '?title=' + mw.util.wikiUrlencode( page ) + '&action=raw&ctype=text/javascript' );
} else {
if ( typeof family === 'undefined' ) {
family = 'wikipedia';
} else if ( typeof lang === 'undefined' ) {
lang = 'en';
}
console.log( 'Loading script: ' + lang + ':' + family + ':' + page );
mw.loader.load( 'https://' + mw.util.wikiUrlencode( lang + '.' + family + '.org' ) + lwgScript + '?title=' + mw.util.wikiUrlencode( page ) + '&action=raw&ctype=text/javascript' );
}
} );
}
function importMwStylesheet( page, family, lang ) {
$.when( $.ready, mw.loader.using( ['mediawiki.util'] ) ).then( function() {
if ( typeof family === 'undefined' && typeof lang === 'undefined' ) {
console.log( 'Adding ' + page );
mw.loader.load( lwgScript + '?title=' + mw.util.wikiUrlencode( page ) + '&action=raw&ctype=text/css', 'text/css' );
} else {
if ( typeof family === 'undefined' ) {
family = 'wikipedia';
} else if ( typeof lang === 'undefined' ) {
lang = 'en';
}
console.log( 'Loading stylesheet: ' + lang + ':' + family + ':' + page );
mw.loader.load( 'https://' + mw.util.wikiUrlencode( lang + '.' + family + '.org' ) + lwgScript + '?title=' + mw.util.wikiUrlencode( page ) + '&action=raw&ctype=text/css', 'text/css' );
}
} );
}
/*******************************************************************************
* Links
*******************************************************************************/
$.when( $.ready, mw.loader.using( ['mediawiki.util'] ) ).then( function() {
// Don't open red links in edit mode
$( function() {
var $alinks = mw.util.$content.find( 'a.new' )
.each( function(i, aa) {
aa.href = aa.href.replace(/[?&]action=edit/,'');
});
});
// My subpages
mw.util.addPortletLink(
'p-personal',
mw.util.getUrl( 'Special:PrefixIndex/User:' ) + mw.util.wikiUrlencode( lwgUserName + '/' ),
'Subpages',
'pt-subpages',
'Your subpages',
null,
'#pt-preferences'
);
// Subpages of current page
mw.util.addPortletLink(
'p-tb',
mw.util.getUrl( 'Special:PrefixIndex/' ) + mw.util.wikiUrlencode( lwgPageName + '/' ),
'Subpages',
't-subpages',
'Subpages of this page',
null,
'#t-recentchangeslinked'
);
} );
/*******************************************************************************
* Scripts for all namespaces
*******************************************************************************/
/* Automatically submit the purge confirmation */
if ( mw.config.get( 'wgAction' ) === 'purge' ) {
$('form.mw-htmlform').submit();
}
/**
* Forces left-to-right layout and editing on RTL wikis.
* @see https://meta.wikimedia.org/wiki/Force_ltr
* @update-token [[File:pathoschild/forceltr.js]]
*/
mw.loader.load( '//tools-static.wmflabs.org/meta/scripts/pathoschild.forceltr.js' );
// [[:en:User:Cacycle/wikEd]]
( function () {
var script = document.createElement( 'script' );
script.src = '//en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js&action=raw&ctype=text/javascript';
script.async = true;
document.getElementsByTagName( 'head' )[ 0 ].appendChild( script );
} ) ();
if ( mw.config.get( 'wgAction' ) !== 'edit' ) {
importMwScript( 'User:Volker E. (WMF)/dark-mode.js', 'wikipedia' ); // [[:en:User:Volker E. (WMF)/dark-mode]]
}
importMwScript( 'MediaWiki:MoreMenu.import.js', 'wikimedia', 'meta' ); // [[MoreMenu]]
importMwScript( 'User:BrandonXLF/NoRedirect.js', 'wikipedia' ); // [[:en:User:BrandonXLF/NoRedirect]]
var autolinkParseLink = false; // Links in diffs will be parsed by wikEd
importMwScript( 'User:Lenore/autolink.js', 'wikipedia' ); // [[:en:User:Lenore/autolink]]
importMwScript( 'User:Anomie/useridentifier.js', 'wikipedia' ); // [[:en:User:Anomie/useridentifier.js]]
importMwScript( 'MediaWiki:Gadget-markblocked.js', 'wikipedia' ); // Mark blocked users
importMwScript( 'User:GeneralNotability/mark-locked.js', 'wikipedia' ); // [[:en:User:GeneralNotability/mark-locked.js]]
importMwScript( 'User:GeneralNotability/cumarkips.js', 'wikipedia' ); // [[:en:User:GeneralNotability/cumarkips.js]]
importMwScript( 'User:GeneralNotability/ip-ext-info.js', 'wikipedia' ); // [[:en:User:GeneralNotability/ip-ext-info.js]]
// [[:en:User:Anomie/lastmod]]
window.LastModRelative = true;
importMwScript( 'User:Anomie/lastmod.js', 'wikipedia' ); // [[:en:User:Anomie/lastmod.js]]
importMwStylesheet( 'User:Anomie/lastmod.css', 'wikipedia' ); // [[:en:User:Anomie/lastmod.css]]
importMwScript( 'User:PleaseStand/userinfo.js', 'wikipedia' ); // [[:en:User:PleaseStand/User info]]
// [[:en:User:Writ Keeper/Scripts/commonHistory]]
inspectText = '+';
showText = '+';
hideText = '-';
importMwScript( 'User:Writ Keeper/Scripts/commonHistory.js', 'wikipedia' );
importMwScript( 'XTools/ArticleInfo.js', 'mediawiki', 'www' ); // [[:mw:XTools]]
importMwScript( 'User:Enterprisey/copy-section-link.js', 'wikipedia' ); // [[:en:User:Enterprisey/copy-section-link]]
importMwScript( 'User:Enterprisey/diff-permalink.js', 'wikipedia' ); // [[:en:User:Enterprisey/diff-permalink]]
importMwScript( 'User:Enterprisey/section-redir-note.js', 'wikipedia' ); // [[:en:User:Enterprisey/section-redir-note]]
importMwScript( 'User:Nardog/Consecudiff.js', 'wikipedia' ); // [[:en:User:Nardog/Consecudiff]]
importMwScript( 'User:Nardog/MoveHistory.js', 'wikipedia' ); // [[:en:User:Nardog/MoveHistory]]
importMwScript( 'User:Xiplus/TwinkleGlobal/load.js', 'wikimedia', 'meta'); // [[:User:Xiplus/TwinkleGlobal]]
importMwScript( 'User:Krinkle/Scripts/CVNSimpleOverlay wiki.js', 'wikimedia', 'meta'); // [[:User:Krinkle/Scripts/CVNSimpleOverlay wiki.js]]
/*******************************************************************************
* Scripts by namespace
*******************************************************************************/
if ( [ 0, 2, 118 ].indexOf( lwgNamespaceNumber ) !== -1 ) { // Main, user, draft
importMwScript( 'Benutzer:TMg/autoFormatter.js', 'wikipedia', 'de' ); // [[:en:User:TMg/autoFormatter]]
importMwScript( 'User:Frietjes/findargdups.js', 'wikipedia' ); // [[:en:User:Frietjes/findargdups]]
// [[:en:Wikipedia:AutoEd]]
autoEdClick = false; // Disables the diff page from opening automatically (required for wikEd compatability)
importMwScript( 'Wikipedia:AutoEd/complete.js', 'wikipedia' );
importMwScript( 'User:Zhaofeng_Li/Reflinks.js', 'wikimedia', 'meta' ); // [[:en:User:Zhaofeng Li/reFill]]
} else if ( lwgNamespaceNumber === 6 ) { // File
importMwScript( 'User:Rillke/SVGedit.js', 'wikimedia', 'commons' ); // [[:c:User:Rillke/SVGedit.js]]
} else if ( lwgNamespaceNumber === 14 ) { // Category
// [[:en:User:Nardog/CatChangesViewer]]
window.catchangesviewerDefaultLimit = 500;
window.catchangesviewerChangesPerPage = 500;
importMwScript( 'User:Nardog/CatChangesViewer.js', 'wikipedia' );
// [[:c:Help:Gadget-Cat-a-lot]]
mw.loader.using( ['jquery.ui', 'mediawiki.util'], function() {
mw.loader.load( '//commons.wikimedia.org/w/load.php?modules=ext.gadget.Cat-a-lot' );
});
} else if ( lwgNamespaceNumber === -1 ) { // Special
// [[:en:User:Evad37/Watchlist-openUnread]]
var openUnread_oldest = true;
importMwScript( 'User:Evad37/Watchlist-openUnread.js', 'wikipedia' );
importMwScript( 'User:Firefly/more-block-info.js', 'wikipedia' ); // [[:en:User:Firefly/more-block-info]]
importMwScript( 'User:Tks4Fish/CARedirect.js', 'wikimedia', 'meta' ); // [[User:Tks4Fish/CARedirect.js]]
importMwScript( 'User:Tks4Fish/CAWhoisProxy.js', 'wikimedia', 'meta' ); // [[User:Tks4Fish/CAWhoisProxy.js]]
importMwScript( 'User:Bradv/endlesscontribs.js', 'wikipedia' ); // [[:en:User:Bradv/endlesscontribs.js]]
} else {
importMwScript( 'User:Ais523/votesymbols.js', 'wikipedia' ); // [[:en:User:Ais523/votesymbols.js]]
}
/*******************************************************************************
* Scripts by rights
*******************************************************************************/
mw.hook('moremenu.ready').add(function (config) {
var myrights = config.currentUser.rights;
if ( myrights.indexOf( 'rollback' ) !== -1 ) {
// [[:User:Dragoniez/Selective Rollback]]
importMwScript( 'User:Dragoniez/Selective Rollback.js', 'wikimedia', 'meta' );
if ( typeof( selectiveRollbackConfig ) === 'undefined' ) selectiveRollbackConfig = {};
if ( typeof( selectiveRollbackConfig.editSummaries ) === 'undefined' ) selectiveRollbackConfig.editSummaries = {};
if ( typeof( selectiveRollbackConfig.lang ) === 'undefined' ) selectiveRollbackConfig.lang = 'en';
if ( typeof( selectiveRollbackConfig.markBot ) === 'undefined' ) selectiveRollbackConfig.markBot = false;
if ( typeof( selectiveRollbackConfig.showKeys ) === 'undefined' ) selectiveRollbackConfig.showKeys = true;
if ( typeof( selectiveRollbackConfig.watchPage ) === 'undefined' ) selectiveRollbackConfig.watchPage = false;
selectiveRollbackConfig.editSummaries.Hidden = 'Reverted to revision $3';
selectiveRollbackConfig.editSummaries.ContentRemoval = selectiveRollbackConfig.editSummaries.Hidden + ': unexplained removal of content';
selectiveRollbackConfig.editSummaries.CWA = selectiveRollbackConfig.editSummaries.Hidden + ': cross-wiki abuse';
selectiveRollbackConfig.editSummaries.LTA = selectiveRollbackConfig.editSummaries.Hidden + ': long-term abuse';
selectiveRollbackConfig.editSummaries.Spam = selectiveRollbackConfig.editSummaries.Hidden + ': spam';
}
if ( myrights.includes( 'delete' ) ) {
importMwScript( 'User:AntiCompositeNumber/CleanDeleteReasons.js', 'wikimedia', 'meta' ); // [[:User:AntiCompositeNumber/CleanDeleteReasons.js]]
}
if ( lwgNamespaceNumber === -1 && myrights.includes( 'deleterevision' ) ) {
importMwScript( 'User:Writ Keeper/Scripts/massRevdel.js', 'wikipedia' ); // [[:en:User:Writ Keeper/Scripts/massRevdel.js]]
}
if ( myrights.includes( 'deletedtext' ) ) {
importMwScript( 'User:Enterprisey/link-deleted-revs.js', 'wikipedia' ); // [[:en:User:Enterprisey/link-deleted-revs]]
}
if ( myrights.includes( 'block' ) && myrights.includes( 'delete' ) ) {
// [[:User:WhitePhosphorus/all-in-one]]
importMwScript( 'User:WhitePhosphorus/js/all-in-one.js', 'wikimedia', 'meta' );
if ( typeof( p4js_all_in_one ) === 'undefined' ) p4js_all_in_one = {};
if ( typeof( p4js_all_in_one.packages ) === 'undefined' ) p4js_all_in_one.packages = {};
p4js_all_in_one.packages.Vandalism = {
tracingedits: {
duration: 111600,
indefregistered: true,
},
rollback: {
enabled: true,
bot: false,
showname: true,
},
block: {
enabled: true,
duration: '31 hours',
indefregistered: true,
reason: 'Vandalism',
autoblock: true,
hardblock: false,
create: true,
talk: false,
mail: false,
hidename: false,
},
pagedelete: {
enabled: true,
reason: 'Vandalism',
},
revisiondelete: {
enabled: false,
content: true,
summary: true,
username: false,
reason: 'Blatantly offensive material',
oversight: false,
},
};
p4js_all_in_one.packages.VOA = JSON.parse( JSON.stringify( p4js_all_in_one.packages.Vandalism ) );
p4js_all_in_one.packages.VOA.block.reason = 'Vandalism-only account';
p4js_all_in_one.packages.VOA.block.hardblock = true;
p4js_all_in_one.packages.Spam = JSON.parse( JSON.stringify( p4js_all_in_one.packages.Vandalism ) );
p4js_all_in_one.packages.Spam.block.reason = 'Spam';
p4js_all_in_one.packages.Spam.pagedelete.reason = 'Spam';
p4js_all_in_one.packages.SOA = JSON.parse( JSON.stringify( p4js_all_in_one.packages.Spam ) );
p4js_all_in_one.packages.SOA.block.reason = 'Spam-only account';
p4js_all_in_one.packages.SOA.block.hardblock = true;
p4js_all_in_one.packages.LTA = JSON.parse( JSON.stringify( p4js_all_in_one.packages.Vandalism ) );
p4js_all_in_one.packages.LTA.rollback.showname = false;
p4js_all_in_one.packages.LTA.block.reason = 'Long-term abuse';
p4js_all_in_one.packages.LTA.block.hardblock = true;
p4js_all_in_one.packages.LTA.block.talk = true;
p4js_all_in_one.packages.LTA.revisiondelete.reason = 'Purely disruptive material';
if ( lwgServerName.includes( 'beta' ) ) {
p4js_all_in_one.packages.SOA.block.talk = true;
p4js_all_in_one.packages.VOA.block.talk = true;
p4js_all_in_one.default_package = 'SOA';
} else {
p4js_all_in_one.default_package = 'LTA';
}
}
if ( myrights.includes( 'checkuser' ) || /* MoreMenu caching */lwgUserGroups.includes( 'checkuser' ) ) {
mw.loader.load('//tnt.toolforge.org/js/CheckUserHelper/CheckUserHelper.js');
importMwScript( 'User:GeneralNotability/InvestorGoat.js', 'wikipedia' ); // [[:en:User:GeneralNotability/InvestorGoat.js]]
}
if ( myrights.includes( 'checkuser-log' ) ) {
importMwScript( 'User:L235/culoghelper-personaltesting.js', 'wikipedia' ); // [[:en:User:L235/culoghelper-personaltesting.js]]
}
if ( myrights.includes( 'suppressrevision' ) || /* MoreMenu caching */lwgUserGroups.includes( 'suppress' ) ) {
importMwScript( 'User:JJMC89/add-suppress-reasons.js', 'wikimedia', 'meta' ); // [[:User:JJMC89/add-suppress-reasons.js]]
}
});
/*******************************************************************************
* GS/Steward scripts
*******************************************************************************/
if ( !lwgServerName.includes( 'beta' ) ) {
if ( [ 'global-sysop', 'steward' ].some( i => lwgGlobalGroups.includes( i ) ) && ![ 'sysop', 'contentadmin' ].some( i => lwgUserGroups.includes( i ) ) ) {
importMwScript( 'User:WhitePhosphorus/js/active sysops.js', 'wikimedia', 'meta' ); // [[:User:WhitePhosphorus/active sysops]]
importMwScript( 'User:WhitePhosphorus/js/GS Rationale.js', 'wikimedia', 'meta' ); // [[:User:WhitePhosphorus/GS Rationale]]
importMwScript( 'User:Elton/HideButtonsFromNonGsProjects.js', 'wikimedia', 'meta' ); // [[:User:Elton/HideButtonsFromNonGsProjects.js]]
}
if ( lwgGlobalGroups.includes( 'steward' ) ) {
importMwScript( 'User:AntiCompositeNumber/stewserrights.js', 'wikimedia', 'meta' ); // [[:User:AntiCompositeNumber/stewserrights.js]]
importMwScript( 'User:Erwin/stewardlinks.js', 'wikimedia', 'meta' ); // [[:User:Erwin/stewardlinks.js]]
}
}
// </nowiki>