JGonera has uploaded a new change for review. https://gerrit.wikimedia.org/r/83561
Change subject: Introduce header-loaded event ...................................................................... Introduce header-loaded event Use it to bind the left nav opening JS as soon as possible. In future can be also used for binding search earlier. Change-Id: I0955a418068123634d5d067bc3ddbcfccb33291a --- M includes/Resources.php M includes/skins/MinervaTemplate.php M javascripts/common/application.js M javascripts/common/eventemitter.js M javascripts/common/navigation.js 5 files changed, 23 insertions(+), 25 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend refs/changes/61/83561/1 diff --git a/includes/Resources.php b/includes/Resources.php index e80141f..c2fd164 100644 --- a/includes/Resources.php +++ b/includes/Resources.php @@ -131,6 +131,8 @@ 'scripts' => array( 'javascripts/common/polyfills.js', 'javascripts/common/modules.js', + 'javascripts/common/Class.js', + 'javascripts/common/eventemitter.js', 'javascripts/common/navigation.js', ), 'position' => 'top', @@ -142,8 +144,6 @@ ), 'scripts' => array( 'javascripts/externals/hogan.js', - 'javascripts/common/Class.js', - 'javascripts/common/eventemitter.js', 'javascripts/common/Router.js', 'javascripts/common/api.js', 'javascripts/common/PageApi.js', diff --git a/includes/skins/MinervaTemplate.php b/includes/skins/MinervaTemplate.php index 466d706..ce3b9dd 100644 --- a/includes/skins/MinervaTemplate.php +++ b/includes/skins/MinervaTemplate.php @@ -193,6 +193,9 @@ echo $data['userButton']; ?> </div> + <script> + mw.mobileFrontend.emit( 'header-loaded' ); + </script> <?php $this->renderContentWrapper( $data ); $this->renderFooter( $data ); diff --git a/javascripts/common/application.js b/javascripts/common/application.js index d31c2f4..4a13940 100644 --- a/javascripts/common/application.js +++ b/javascripts/common/application.js @@ -1,29 +1,11 @@ // FIXME: make this an object with a constructor to facilitate testing // (see https://bugzilla.wikimedia.org/show_bug.cgi?id=44264) ( function( M, $ ) { - var EventEmitter = M.require( 'eventemitter' ), - Router = M.require( 'Router' ), + var Router = M.require( 'Router' ), PageApi = M.require( 'PageApi' ), - // FIXME: when mobileFrontend is an object with a constructor, - // just inherit from EventEmitter instead - eventEmitter = new EventEmitter(), $viewportMeta, viewport, template, templates = {}; - - /** - * See EventEmitter#on. - */ - function on(/* event, callback */ ) { - return eventEmitter.on.apply( eventEmitter, arguments ); - } - - /** - * See EventEmitter#emit. - */ - function emit(/* event, arg1, arg2, ... */ ) { - return eventEmitter.emit.apply( eventEmitter, arguments ); - } template = { /** @@ -273,14 +255,12 @@ $.extend( M, { init: init, - emit: emit, jQuery: typeof jQuery !== 'undefined' ? jQuery : false, getOrigin: getOrigin, getSessionId: getSessionId, isLoggedIn: isLoggedIn, lockViewport: lockViewport, log: log, - on: on, supportsGeoLocation: supportsGeoLocation, supportsPositionFixed: supportsPositionFixed, prettyEncodeTitle: prettyEncodeTitle, diff --git a/javascripts/common/eventemitter.js b/javascripts/common/eventemitter.js index 4a6afd7..e8bfe44 100644 --- a/javascripts/common/eventemitter.js +++ b/javascripts/common/eventemitter.js @@ -49,5 +49,8 @@ } ); M.define( 'eventemitter', EventEmitter ); + // FIXME: if we want more of M's functionality in loaded in <head>, + // move this to a separate file + $.extend( M, new EventEmitter() ); }( mw.mobileFrontend, jQuery ) ); diff --git a/javascripts/common/navigation.js b/javascripts/common/navigation.js index 37fd17e..d20a359 100644 --- a/javascripts/common/navigation.js +++ b/javascripts/common/navigation.js @@ -3,6 +3,8 @@ var m = ( function( $ ) { var menu, + // FIXME: remove when header-loaded is in all cached pages + initialized = false, inAlpha = mw.config.get( 'wgMFMode' ) === 'alpha', inBeta = mw.config.get( 'wgMFMode' ) === 'beta'; @@ -14,10 +16,16 @@ $( 'body' ).removeClass( 'navigation-enabled' ); } - $( function() { + function initialize() { var moved = false, search = document.getElementById( 'searchInput' ); + + // FIXME: remove when header-loaded is in all cached pages + if ( initialized ) { + return; + } + initialized = true; $( '#mw-mf-page-left a' ).click( function() { toggleNavigation(); // close before following link so that certain browsers on back don't show menu open @@ -78,7 +86,11 @@ closeNavigation(); } } ); - } ); + } + + M.on( 'header-loaded', initialize ); + // FIXME: remove when header-loaded is in all cached pages + $( initialize ); menu = { close: closeNavigation, -- To view, visit https://gerrit.wikimedia.org/r/83561 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0955a418068123634d5d067bc3ddbcfccb33291a Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MobileFrontend Gerrit-Branch: master Gerrit-Owner: JGonera <jgon...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits