MediaWiki:Gadget-GlobalScript.js: Difference between revisions

From SmashWiki, the Super Smash Bros. wiki
Jump to navigationJump to search
No edit summary
mNo edit summary
 
(11 intermediate revisions by the same user not shown)
Line 12: Line 12:
mw.hook('wikipage.collapsibleContent').add(mwCollapsibleSetup);
mw.hook('wikipage.collapsibleContent').add(mwCollapsibleSetup);


/* Gallery videos */
/* Fix search suggestions on mobile devices */
$(function() {
$(function() {
$('.gallery').each(function(i, gallery) {
$('#searchInput').on('input', function(e) {
var videos = $(gallery).find('.gallerybox video');
$(this).trigger(jQuery.Event('keydown', {
if (!videos.length)
keyCode: e.keyCode,
return;
which: e.which
var boxes = $(gallery).find('.gallerybox');
}));
var onlyVideos = videos.length == boxes.length ? true : false;
$(this).trigger(jQuery.Event('keypress', {
videos.each(function(ii, video) {
keyCode: e.keyCode,
if (onlyVideos)
which: e.which
$(video).css('height', 'auto');
}));
$(video).parent().css('max-width', 'calc(100% - 30px)');
});
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);
});
});
});
/* 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, '').replace(/[‘’]{3}/g, "'''").replace(/[‘’]{2}/g, "''"));
}
}
$(function() {
$('#searchform').on('submit', function() {
$('#searchInput').val($('#searchInput').val().replace(/[‘’]/g, "'").replace(/[“”]/g, '"'));
});
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);
}
});
/* SmashWiki: Match active tabber tab to infobox */
$(function() {
if ($('.infobox .tabber').length && $('.infobox th').length) {
var bgColor = $('.infobox th').css('background');
if (bgColor !== 'none' && bgColor !== 'rgb(255, 255, 255)')
$('head').append('<style type="text/css">body .mw-parser-output .infobox ul.tabbernav li.tabberactive a { background: ' + bgColor + '; }</style>');
}
});
});

Latest revision as of 17:05, February 15, 2024

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

/* Fix search suggestions on mobile devices */
$(function() {
	$('#searchInput').on('input', function(e) {
		$(this).trigger(jQuery.Event('keydown', {
			keyCode: e.keyCode,
			which: e.which
		}));
		$(this).trigger(jQuery.Event('keypress', {
			keyCode: e.keyCode,
			which: e.which
		}));
	});
});

/* 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, '').replace(/[‘’]{3}/g, "'''").replace(/[‘’]{2}/g, "''"));
	}
}
$(function() {
	$('#searchform').on('submit', function() {
		$('#searchInput').val($('#searchInput').val().replace(/[‘’]/g, "'").replace(/[“”]/g, '"'));
	});
	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);
	}
});

/* SmashWiki: Match active tabber tab to infobox */
$(function() {
	if ($('.infobox .tabber').length && $('.infobox th').length) {
		var bgColor = $('.infobox th').css('background');
		if (bgColor !== 'none' && bgColor !== 'rgb(255, 255, 255)')
			$('head').append('<style type="text/css">body .mw-parser-output .infobox ul.tabbernav li.tabberactive a { background: ' + bgColor + '; }</style>');
	}
});