MediaWiki:Gadget-GlobalScript.js

/* Any JavaScript here will be loaded for all skins on both desktop and mobile */

/* 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);

/* Gallery videos */ $(function {	$('.gallery').each(function(i, gallery) { var videos = $(gallery).find('.gallerybox video'); if (!videos.length) return; var boxes = $(gallery).find('.gallerybox'); var onlyVideos = videos.length == boxes.length ? true : false; videos.each(function(ii, video) {			if (!onlyVideos)				$(video).css('max-height', 0);			$(video).parent.css({'width': '100%', 'min-width': '125px', 'max-width': 'calc(100% - 30px)', 'margin': 'auto'});		}); var timeOut = onlyVideos ? 500 : 0;		setTimeout(function {			var height = 0;			$(gallery).find('.gallerybox .thumb').each(function(ii, thumb) { if ($(thumb).innerHeight > height) height = $(thumb).innerHeight; });			videos.each(function(ii, video) { maxHeight = height - 30; $(video).css('max-height', maxHeight); $(video).parent.parent.css({'height': height, 'display': 'flex'}); });		}, timeOut); }); });

/* 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 */ $(function {	$('.site-button[type="button"]').click(function { $(this).prop('disabled', true); }); });