MediaWiki:Gadget-GlobalScript.js
From Halopedia, the Halo wiki
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 */
/* 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);
/* Replace smart quotes */
function quoteFixer() {
var textAreas = ['#wpTextbox1', '#wikitext-editor'];
for (var i = 0; i < textAreas.length; i++) {
if ($(textAreas[i]).length)
$(textAreas[i]).val($(textAreas[i]).val().replace(/[‘’]/g, "'").replace(/[“”]/g, '"'));
}
}
$(function() {
if (['edit', 'submit'].includes(mw.config.get('wgAction')) && ![8, 10, 274, 828, 2300].includes(mw.config.get('wgNamespaceNumber'))) {
$('.editButtons input').click(quoteFixer);
if ($('body.skin-minerva').length)
setTimeout(function() { $('.header-action button').click(quoteFixer) }, 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);
});
});
/* 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);
});
});