MediaWiki:Gadget-GlobalScript.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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all skins on both desktop and mobile */

/* Fix media negative margin bug for wide galleries */
$(function() {
	$('.gallerybox audio').each(function(i, obj) {
		if ($(this).parent().css('margin-top') < '15px')
			$(this).parent().css('margin', '15px auto');
	});
});

/* Add autocollapse support to mw-collapsible */
function mwCollapsibleSetup($collapsibleContent) {
	var $element, autoCollapseThreshold = 2;
	$.each($collapsibleContent, function (index, element) {
		$element = $(element);
		if ($collapsibleContent.length >= autoCollapseThreshold && $element.hasClass('autocollapse'))
			$element.data('mw-collapsible').collapse();
	});
}
mw.hook('wikipage.collapsibleContent').add(mwCollapsibleSetup);

/* SocialProfile: Point social talk tabs to user talk */
$(function() {
	var namespace = mw.config.get('wgCanonicalNamespace');
	if (namespace === 'UserProfile' || namespace === 'UserWiki') {
		var talkTab;
		if (mw.config.get('skin') == 'nimbus') {
			talkTab = $('a#ca-talk');
			talkTab.removeClass('tab-new');
		} else if (mw.config.get('skin') == 'minerva') {
			talkTab = $('a[data-event-name="tabs.talk"]');
			talkTab.removeClass('new');
		} else {
			talkTab = $('#ca-talk a');
			$('#ca-talk').removeClass('new');
		}
		var talkUrl = talkTab.attr('href').replace('index.php?title=', '').replace(namespace, 'User').replace('?action=edit&redlink=1', '');
		var subIndex = talkUrl.indexOf('/', 1);
		if (subIndex > 0)
			talkUrl = talkUrl.substring(0, subIndex);
		talkTab.attr('href', talkUrl);
	}
});

/* SocialProfile: Prevent repeated button clicks */
$('.site-button[type="button"]').click(function() {
	$(this).prop('disabled', true);
});