mediawiki-skins-MinervaNeue/resources/skins.minerva.toggling/init.js
Stephen Niedzielski 5593b23aa8 Hygiene: replace mobile.startup/paths with props
Replace all occurrences of `M.require( 'mobile.startup/pathToModule' )`
with `M.require( 'mobile.startup' ).pathToModule`. Where multiple
requires existed, add an intermediate variable,
`var mobile = M.require( 'mobile.startup' )`, and dot off that.

This changes improves the consistency of MinervaNeue which currently
contains a mix of require styles and eliminates any deprecated requires.

Bug: T208915
Change-Id: If14f280672d914d07275197100b12421bb217b67
2019-02-07 14:55:04 -07:00

55 lines
1.6 KiB
JavaScript

( function ( M ) {
var
page = M.getCurrentPage(),
// eslint-disable-next-line jquery/no-global-selector
$contentContainer = $( '#mw-content-text > .mw-parser-output' ),
mobile = M.require( 'mobile.startup' ),
Toggler = mobile.Toggler,
eventBus = mobile.eventBusSingleton;
if ( !page.getLeadSectionElement() ) {
// Operating in desktop Minerva mode. Stop execution. (T172948)
return;
}
// If there was no mw-parser-output wrapper, just use the parent
if ( $contentContainer.length === 0 ) {
// eslint-disable-next-line jquery/no-global-selector
$contentContainer = $( '#mw-content-text' );
}
/**
* Initialises toggling code.
*
* @method
* @param {JQuery.Object} $container to enable toggling on
* @param {string} prefix a prefix to use for the id.
* @param {Page} page The current page
* @ignore
*/
function init( $container, prefix, page ) {
// distinguish headings in content from other headings
$container.find( '> h1,> h2,> h3,> h4,> h5,> h6' ).addClass( 'section-heading' )
.removeAttr( 'onclick' );
// cleanup global as it is no longer needed. We check if it's undefined because
// there is no guarantee this won't be run on other skins e.g. Vector or cached HTML
if ( window.mfTempOpenSection !== undefined ) {
delete window.mfTempOpenSection;
}
// eslint-disable-next-line no-new
new Toggler( {
$container: $container,
prefix: prefix,
page: page,
eventBus: eventBus
} );
}
// avoid this running on Watchlist
if (
!page.inNamespace( 'special' ) &&
mw.config.get( 'wgAction' ) === 'view'
) {
init( $contentContainer, 'content-', page );
}
}( mw.mobileFrontend ) );