MediaWiki:Common.js

From the Super Mario Wiki, the Mario encyclopedia
Revision as of 11:29, October 19, 2022 by Porplemontage (talk | contribs)
Jump to navigationJump to search

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 users on every page load. */

/* Fix desktop anchor ad close button */
$('body.newbie').on('click', '#ssrt-close-anchor-button', function() {
	$('body > .ad-sticky-wrapper').hide();
});

/* Add subpages toolbox link on user pages */
$(function() {
	var title = mw.config.get('wgTitle');
	if (mw.config.get('wgCanonicalNamespace') === 'User' && !title.includes('/') && mw.config.get('skin') !== 'timeless') {
		var subpagesLink = '/Special:PrefixIndex/User:' + title + '/';
		mediaWiki.util.addPortletLink('p-tb', subpagesLink, 'User subpages', 't-subpages', 'Subpages of this page');
	}
});

/* TOC ad unit */
function tocAdPositioner() {
	if ($('.desktopBox').length) {
		var topOffset = 10;
		var windowTop = $(window).scrollTop();
		var tocHeight = $('#toc').outerHeight();
		var tocTopPos = $('#toc').offset().top;
		var tocBotPos = tocTopPos + tocHeight;
		var tocRightPos = $('#toc').offset().left + $('#toc').outerWidth();
		var boxWidth = $('.desktopBox').outerWidth();
		var boxHeight = $('.desktopBox').outerHeight();
		var boxMarginLeft = parseFloat($('.desktopBox').css('marginLeft'));
		var boxBotPos = $('.desktopBox').offset().top + boxHeight;
		var boxRightPos = $('.desktopBox').offset().left + boxWidth + parseFloat($('.desktopBox').css('right'));
		$('.desktopBox').css('right', (boxRightPos - tocRightPos - boxWidth - boxMarginLeft)/2);
		if (tocBotPos >= boxBotPos)
			if (tocTopPos - topOffset > windowTop)
				$('.desktopBox').css('top', 0);
			else if (tocBotPos - boxHeight - topOffset > windowTop)
				$('.desktopBox').css('top', windowTop - tocTopPos + topOffset);
			else
				$('.desktopBox').css('top', tocHeight - boxHeight);
	}
}
$(tocAdPositioner);
$(window).scroll(function() {
	$(tocAdPositioner);
});
$(window).resize(function() {
	clearTimeout(window.resizeFinished);
	window.resizeFinished = setTimeout(function() {
		$(tocAdPositioner);
	}, 100);
});