MediaWiki:Common.js
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: hold down Ctrl and click the Refresh or Reload button. Firefox: hold down ⇧ Shift while clicking Reload (or press Ctrl+⇧ Shift+R). Google Chrome and Safari users can just click the Reload button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/*global mw, $, console, enableOldForumEdit */
/*jshint browser:true, curly:false, eqnull:true, strict:false */
mw.loader.using(['mediawiki.util', 'jquery.client'], function () {
/* Begin of mw.loader.using callback */
/**
* update this (replace the timestamp with 5 tildes) whenever this page is edited
* this simplifies checking if new code has cleared server caches
*/
var LAST_LOG = '19:35, 20 April 2021 (UTC)';
console.log('MediaWiki:Common.js last updated:', LAST_LOG);
/**
* Customize wikitext highlighter colors.
*/
window.syntaxHighlighterSiteConfig = {
wikilinkColor: "#DFEFFF",
externalLinkColor: "#DFEFFF",
listOrIndentColor: "#FFDAD0",
tableColor: "#E8BDF0",
templateColor: "#EAE4D7",
parameterColor: "#BAFFBF",
tagColor: "#FFDAD0",
entityColor: "#B5C3B5"
};
/**
* Cleanup excessive space in hlist elements
*/
var items = document.querySelectorAll('.hlist li, .hlist dt, .hlist dd');
for (var i = items.length - 1; i >= 0; i--) {
items[i].innerHTML = items[i].innerHTML.trim();
}
/**
* Remove empty rows from {{Infobox}} transclusions
*/
$('.infobox tr').each(function () {
if (
!$.trim($(this).text()) &&
!$(this).find('img').length &&
!$(this).find('hr').length
) {
$(this).remove();
}
});
/**
* The following code is currently maintained by [[User:Becasita]].
* Contact [[User talk:Becasita]] if the need arises.
*/
( function( window, $, mw ) {
/**
* Fix Special:Ask table headers when wikilinked.
* Address to «.JS-changed» to find what elements were changed/created.
*/
$( function _specialAskLabelsLinks() {
if ( mw.config.get( 'wgPageName' ).split( /\s*\/\s*/ )[ 0 ] === 'Special:Ask' ) {
$( '.smwtable' ).find( 'th' ).each( function( i, el ) {
$( el ).html( function() {
return $( this ).text().replace( /\[\[(.*?)]]/g, $( '<a>', {
class: 'JS-changed',
href: 'wiki/$1',
text: '$1'
} ).prop( 'outerHTML' ) );
} );
} );
}
} );
/** End. */
/**
* Fix tabbers labels achors.
*/
$(function _fixTabAnchors() {
// Wait for the tabbers to load:
mw.loader.using( 'ext.tabber' ).then( function() {
mw.log( 'DEBUG: Tabbers loaded!' );
$( '.tabbernav' ).each( function( i, el ) {
const $el = $( el );
const $parent = $el.parent();
// Gets the tab content, given a tab label:
const getTab = function( $li ) {
return $parent.find( '.tabbertab' ).filter( function() {
return this.title.trim() === $li.find( 'a' ).attr( 'title' ).trim();
});
};
// Remove the default click event:
$el.off( 'click' );
// Create new click event
$el.children().click( function( e ) {
e.preventDefault();
// Current tab:
const $currentLabel = $el.find( '.tabberactive' );
const $currentContent = getTab( $currentLabel );
// New tab:
const $newLabel = $( this );
const $newContent = getTab( $newLabel );
// Switch tabs:
$currentLabel.removeClass( 'tabberactive' );
$newLabel.addClass( 'tabberactive' );
$currentContent.hide();
$newContent.show();
} );
} );
} );
} );
/** End. */
/**
* Styles for the edit textbox after wikitext highlight kicks in.
*/
mw.hook( 'wikipage.editform' ).add( function( $editform ) {
var times = 0;
var interval = window.setInterval(function() {
if ( mw.loader.getState( 'ext.gadget.DotsSyntaxHighlighter' ) === 'ready' ) {
mw.log( '[DotsSyntaxHighlighter styles] - modifing' );
$editform.find( '#wpTextbox0, #wpTextbox1' )
.css( {
'border': 'unset',
'line-height': '1.5em',
'height': 'unset',
} )
;
window.clearInterval( interval );
mw.log( '[DotsSyntaxHighlighter styles] - clearing: Managed to style it.' );
return;
}
if ( times > 10 ) {
window.clearInterval( interval );
mw.log( '[DotsSyntaxHighlighter styles] - clearing: Exceeding 10 times.' );
return;
}
times++;
}, 250 );
} );
/**
* Automatically add alt attributes to thumbnail images using the image's caption.
*/
$('.thumbinner').each(function(){
var attr = $(this).find('img').attr('alt');
if (typeof attr !== typeof undefined && attr !== false) {
var caption = $(this).find('.thumbcaption');
caption.attr('aria-hidden', 'true');
$(this).find('img').attr('alt', caption.text());
}
});
/**
* Hide checkbox to prevent updating double redirects
* automatically after page move.
*/
$( '.mw-special-Movepage #wpFixRedirects' )
.closest( '.oo-ui-layout' ).hide()
;
/** End. */
} )( window, window.jQuery, window.mediaWiki );
/* End of mw.loader.using callback; DO NOT ADD CODE BELOW THIS LINE */
});