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

/* Clean-up Unicode */ function unicodeFixer { var textAreas = ['#wpTextbox1', '#wikitext-editor']; for (var i = 0; i < textAreas.length; i++) { if ($(textAreas[i]).length) $(textAreas[i]).val($(textAreas[i]).val.replace(/[\u200B-\u200F\uFEFF]/g, '')); } } $(function {	if (['edit', 'submit'].includes(mw.config.get('wgAction')) && ![8, 274, 828, 2300].includes(mw.config.get('wgNamespaceNumber'))) {		$('.editButtons input').click(unicodeFixer);		if ($('body.skin-minerva').length)			setTimeout(function { $('.header-action button').click(unicodeFixer) }, 3000);	} });

/* 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('height', 'auto');			$(video).parent.css({'max-width': 'calc(100% - 30px)', 'margin': '15px auto'});		}); var timeOut = onlyVideos ? 1000 : 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).parent.parent.css({'height': height, 'display': 'flex'}); $(video).parent.css({'width': '100%', 'min-width': '125px', 'margin': 'auto'}); $(video).css({'height': 'auto', 'max-height': maxHeight}); });		}, timeOut); }); });