Difference between revisions of "MediaWiki:Common.js"

From AYSO Wiki
 
Line 44: Line 44:
 
}
 
}
 
});
 
});
 +
 +
/**
 +
* Collapsible tables; reimplemented with mw-collapsible
 +
* Styling is also in place to avoid FOUC
 +
*
 +
* Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].
 +
* @version 3.0.0 (2018-05-20)
 +
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
 +
* @author [[User:R. Koot]]
 +
* @author [[User:Krinkle]]
 +
* @author [[User:TheDJ]]
 +
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
 +
* is supported in MediaWiki core. Shimmable since MediaWiki 1.32
 +
*
 +
* @param {jQuery} $content
 +
*/
 +
function makeCollapsibleMwCollapsible( $content ) {
 +
var $tables = $content
 +
.find( 'table.collapsible:not(.mw-collapsible)' )
 +
.addClass( 'mw-collapsible' );
 +
 +
$.each( $tables, function ( index, table ) {
 +
// mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.');
 +
if ( $( table ).hasClass( 'collapsed' ) ) {
 +
$( table ).addClass( 'mw-collapsed' );
 +
// mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.');
 +
}
 +
} );
 +
if ( $tables.length > 0 ) {
 +
mw.loader.using( 'jquery.makeCollapsible' ).then( function () {
 +
$tables.makeCollapsible();
 +
} );
 +
}
 +
}
 +
mw.hook( 'wikipage.content' ).add( makeCollapsibleMwCollapsible );

Latest revision as of 04:59, 12 May 2022

/* Any JavaScript here will be loaded for all users on every page load. */

$('#ayso-banner').insertBefore('#ayso-subcontent');	

$('#ayso-subcontent-wrapper').prepend($('#subcontent'));

$('#ayso-footer .ayso-footer-menu.social a.fas, #ayso-footer .ayso-footer-menu.social a.far, #ayso-footer .ayso-footer-menu.social a.fab').empty();

$('#menu-toggle').click(function(){
	$('#ayso-footer').toggleClass('position-fixed');
});

$(function() {
	$('#toc ul').addClass('ayso-toc').detach().appendTo('#ayso-sidebar');
	$('#ayso-footer .ayso-footer-menu.social a.fas, #ayso-footer .ayso-footer-menu.social a.far, #ayso-footer .ayso-footer-menu.social a.fab').show().addClass('d-flex');	
});

var resizeId;

$(window).resize(function() {
    clearTimeout(resizeId);
    resizeId = setTimeout(doneResizing, 500);
});

function doneResizing(){
	$( "#ayso-banner" ).load(window.location.href + " #ayso-slides" );
}

$.fn.isInViewport = function() {
    var elementTop = $(this).offset().top;
    var elementBottom = elementTop + $(this).outerHeight();

    var viewportTop = $(window).scrollTop();
    var viewportBottom = viewportTop + $(window).height();

    return elementBottom > viewportTop && elementTop < viewportBottom;
};

$(window).on('resize scroll', function() {
	if ($('#ayso-footer').isInViewport()) {
		$('#ayso-sidebar').css({"height": "calc(100% - 54px - 210px )"});
	} else {
		$('#ayso-sidebar').css({"height": "calc(100% - 54px )"});
	}
});

/**
 * Collapsible tables; reimplemented with mw-collapsible
 * Styling is also in place to avoid FOUC
 *
 * Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].
 * @version 3.0.0 (2018-05-20)
 * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
 * @author [[User:R. Koot]]
 * @author [[User:Krinkle]]
 * @author [[User:TheDJ]]
 * @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
 * is supported in MediaWiki core. Shimmable since MediaWiki 1.32
 *
 * @param {jQuery} $content
 */
function makeCollapsibleMwCollapsible( $content ) {
	var $tables = $content
		.find( 'table.collapsible:not(.mw-collapsible)' )
		.addClass( 'mw-collapsible' );

	$.each( $tables, function ( index, table ) {
		// mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.');
		if ( $( table ).hasClass( 'collapsed' ) ) {
			$( table ).addClass( 'mw-collapsed' );
			// mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.');
		}
	} );
	if ( $tables.length > 0 ) {
		mw.loader.using( 'jquery.makeCollapsible' ).then( function () {
			$tables.makeCollapsible();
		} );
	}
}
mw.hook( 'wikipage.content' ).add( makeCollapsibleMwCollapsible );