Bmansurov has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/183754

Change subject: Move modes.js into context.js
......................................................................

Move modes.js into context.js

* Split mobile.startup into multiple modules
* also create context module

Although context.js is supposed be loaded by beta and alpha features
only, the current setup doesn't allow this. For example Icon class uses
this file and Icon is used everywhere.

Bug: T85572
Change-Id: Ibf474ee0baacbb04f39381f10edab1e9c8756298
---
M includes/MobileFrontend.hooks.php
M includes/Resources.php
M javascripts/Icon.js
M javascripts/PageApi.js
M javascripts/Schema.js
M javascripts/Section.js
R javascripts/context.js
M javascripts/loggingSchemas/init.js
M javascripts/modules/bannerImage/init.js
M javascripts/modules/errorReport/init.js
M javascripts/modules/infobox/init.js
M javascripts/modules/issues/init.js
M javascripts/modules/references/init.js
M javascripts/modules/search/init.js
M javascripts/modules/talk/TalkOverlay.js
M javascripts/modules/talk/TalkSectionAddOverlay.js
M javascripts/modules/talk/TalkSectionOverlay.js
M javascripts/modules/talk/talk.js
M javascripts/modules/toggling/init.js
M javascripts/modules/uploads/UploadTutorial.js
M javascripts/modules/wikiGrokRoulette/init.js
M javascripts/modules/wikigrok/WikiGrokResponseApi.js
M javascripts/specials/mobileoptions.js
M tests/qunit/modules/references/test_init.js
24 files changed, 192 insertions(+), 81 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/54/183754/1

diff --git a/includes/MobileFrontend.hooks.php 
b/includes/MobileFrontend.hooks.php
index 3e010ee..b659efa 100644
--- a/includes/MobileFrontend.hooks.php
+++ b/includes/MobileFrontend.hooks.php
@@ -917,6 +917,7 @@
                $wgResourceModules['mobile.loggingSchemas'] = 
$wgMFResourceFileModuleBoilerplate + array(
                        'dependencies' => array_merge( $additionalDependencies, 
array(
                                'mobile.startup',
+                               'mobile.context',
                                'mobile.settings',
                        ) ),
                        'scripts' => $scripts,
diff --git a/includes/Resources.php b/includes/Resources.php
index 62a5fd3..53cbf01 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -172,7 +172,7 @@
 
        'mobile.toc' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.templates',
                        'mobile.loggingSchemas',
                        'mobile.toggling',
@@ -194,6 +194,9 @@
        ),
 
        'mobile.ajax' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.api',
+               ),
                'styles' => array(
                        'less/spinner.less',
                ),
@@ -209,37 +212,110 @@
                ),
        ),
 
-       // FIXME: Split this module into different features.
        'mobile.startup' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
                        'mobile.head',
-                       'mobile.templates',
                        'mobile.user',
                        'mediawiki.api',
-                       'mobile.redlinks',
                ),
-               'templates' => array(
-                       'icon.hogan' => 'templates/icon.hogan',
-                       'Section.hogan' => 'templates/Section.hogan',
+       ),
+
+       'mobile.api' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.startup',
+               ),
+               'scripts' => array(
+                       'javascripts/api.js',
+               ),
+       ),
+
+       'mobile.util' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.head',
+               ),
+               'scripts' => array(
+                       'javascripts/util.js',
+               ),
+       ),
+
+       'mobile.view' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.head',
+                       'mobile.templates',
                ),
                'scripts' => array(
                        'javascripts/View.js',
-                       'javascripts/Router.js',
-                       'javascripts/OverlayManager.js',
-                       // FIXME: Remove api code to mobile.ajax
-                       'javascripts/api.js',
-                       'javascripts/PageApi.js',
-                       'javascripts/Icon.js',
-                       'javascripts/icons.js',
-                       'javascripts/Panel.js',
-                       'javascripts/Section.js',
-                       'javascripts/Page.js',
-                       'javascripts/Skin.js',
-                       'javascripts/Schema.js',
-                       'javascripts/util.js',
-                       'javascripts/application.js',
                ),
                'position' => 'bottom',
+       ),
+
+       'mobile.panel' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.view',
+               ),
+               'scripts' => array(
+                       'javascripts/Panel.js',
+               )
+       ),
+
+       'mobile.icon' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.view',
+                       'mobile.context',
+               ),
+               'templates' => array(
+                       'icon.hogan' => 'templates/icon.hogan',
+               ),
+               'scripts' => array(
+                       'javascripts/Icon.js',
+                       'javascripts/icons.js',
+               )
+       ),
+
+       'mobile.section' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.icon',
+               ),
+               'templates' => array(
+                       'Section.hogan' => 'templates/Section.hogan',
+               ),
+               'scripts' => array(
+                       'javascripts/Section.js',
+               )
+       ),
+
+       'mobile.page' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.api',
+                       'mobile.section',
+               ),
+               'scripts' => array(
+                       'javascripts/PageApi.js',
+                       'javascripts/Page.js',
+               )
+       ),
+
+       'mobile.skin' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.page',
+               ),
+               'scripts' => array(
+                       'javascripts/Skin.js',
+               )
+       ),
+
+       'mobile.application' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.redlinks',
+                       'mobile.view',
+                       'mobile.skin'
+               ),
+               'scripts' => array(
+                       'javascripts/Router.js',
+                       'javascripts/OverlayManager.js',
+                       'javascripts/Schema.js',
+                       'javascripts/application.js',
+               )
        ),
 
        'mobile.redlinks' => $wgMFResourceFileModuleBoilerplate + array(
@@ -265,7 +341,7 @@
 
        'mobile.leadPhotoUploader' => $wgMFResourceFileModuleBoilerplate + 
array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.user',
                        'mobile.upload.ui',
                ),
@@ -278,7 +354,8 @@
 
        'mobile.editor' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.util',
+                       'mobile.application',
                        'mobile.drawers',
                        'mediawiki.ui.input',
                        'mobile.settings',
@@ -308,7 +385,7 @@
        'mobile.abusefilter' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
                        'mobile.overlays',
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.templates',
                ),
                'templates' => array(
@@ -496,7 +573,7 @@
 
        'mobile.preferredLanguages' => $wgMFResourceFileModuleBoilerplate + 
array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.settings',
                ),
                'scripts' => array(
@@ -582,7 +659,7 @@
                'dependencies' => array(
                        'mobile.overlays',
                        // for Api.js
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.templates',
                ),
                'styles' => array(
@@ -636,7 +713,8 @@
 
        'mobile.wikigrok' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.util',
+                       'mobile.application',
                        'mobile.wikigrok.abTest',
                        'mobile.loggingSchemas',
                ),
@@ -649,7 +727,7 @@
        'mobile.overlays' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
                        'mobile.templates',
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.ajax',
                ),
                'scripts' => array(
@@ -675,7 +753,8 @@
 
        'mobile.drawers' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.panel',
+                       'mobile.application',
                ),
                'templates' => array(
                        'Cta.hogan' => 'templates/ctaDrawer.hogan',
@@ -705,7 +784,7 @@
 
        'mobile.upload.ui' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.ajax',
                        'mobile.overlays',
                ),
@@ -734,7 +813,7 @@
        // This module remembers that desktop site is your preference for 
viewing on a mobile phone
        'mobile.redirect' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.toast',
                        'mobile.settings',
                ),
@@ -781,7 +860,8 @@
 
        'mobile.toggling' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.util',
+                       'mobile.application',
                        'mobile.settings',
                ),
                'styles' => array(
@@ -814,6 +894,7 @@
 
        'mobile.newusers' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
+                       'mobile.util',
                        'mobile.templates',
                        'mobile.editor',
                        'mobile.contentOverlays',
@@ -833,7 +914,7 @@
 
        'mobile.watchstar' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.templates',
                        'mobile.drawers',
                        'mobile.ajax',
@@ -860,7 +941,7 @@
 
        'mobile.errorReport' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.overlays',
                ),
                'scripts' => array(
@@ -1017,6 +1098,7 @@
 
        'mobile.wikigrok.roulette' => $wgMFResourceFileModuleBoilerplate + 
array(
                'dependencies' => array(
+                       'mobile.util',
                        'mobile.overlays',
                        'mobile.wikigrok.dialog.b',
                ),
@@ -1059,7 +1141,7 @@
 
        'mobile.wikidata.api' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                ),
                'scripts' => array(
                        'javascripts/modules/wikigrok/WikiDataApi.js'
@@ -1068,7 +1150,7 @@
 
        'mobile.wikigrok.api' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                ),
                'scripts' => array(
                        'javascripts/modules/wikigrok/WikiGrokResponseApi.js',
@@ -1078,7 +1160,7 @@
        // See https://www.mediawiki.org/wiki/Extension:MobileFrontend/WikiGrok
        'mobile.wikigrok.dialog' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.overlays',
                        'mobile.loggingSchemas',
                        'mobile.wikigrok.api',
@@ -1148,7 +1230,7 @@
 
        'mobile.fontchanger' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.settings',
                        'mobile.templates',
                        'mobile.drawers',
@@ -1172,11 +1254,15 @@
 
        // Custom ResourceLoaderModule classes
        'mobile.site' => array(
-               'dependencies' => array( 'mobile.startup' ),
+               'dependencies' => array(
+                       'mobile.application',
+               ),
                'class' => 'MobileSiteModule',
        ),
        'mobile.usermodule' => array(
-               'dependencies' => array( 'mobile.startup' ),
+               'dependencies' => array(
+                       'mobile.application',
+               ),
                'class' => 'MobileUserModule',
        ),
 ) );
@@ -1239,7 +1325,7 @@
        'mobile.special.mobileoptions.scripts' => 
$wgMFMobileSpecialPageResourceBoilerplate + array(
                'position' => 'top',
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.settings',
                        'mobile.templates',
                ),
@@ -1311,7 +1397,7 @@
        'mobile.special.uploads.scripts' => $wgMFResourceFileModuleBoilerplate 
+ array(
                'dependencies' => array(
                        'mobile.upload.ui',
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.toast',
                ),
                'templates' => array(
@@ -1386,8 +1472,9 @@
 
        'skins.minerva.special.watchlist.scripts' => 
$wgMFMobileSpecialPageResourceBoilerplate + array(
                'dependencies' => array(
+                       'mobile.util',
                        'mobile.loggingSchemas',
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.pagelist.scripts',
                ),
                'scripts' => array(
@@ -1419,7 +1506,6 @@
                        'javascripts/modules.js',
                        'javascripts/Class.js',
                        'javascripts/eventemitter.js',
-                       'javascripts/modes.js',
                        'javascripts/browser.js',
                        'javascripts/mainmenu.js',
                        'javascripts/modules/lastEdited/time.js',
@@ -1441,7 +1527,7 @@
        // By mode.
        'mobile.stable' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
-                       'mobile.startup',
+                       'mobile.application',
                        'mobile.loggingSchemas',
                        // FIXME: Review the modules that follow. Ensure they 
are in the correct module definition.
                        'mobile.user',
@@ -1467,8 +1553,18 @@
                        'javascripts/modules/languages/init.js',
                ),
        ),
+       'mobile.context' => $wgMFResourceFileModuleBoilerplate + array(
+               'dependencies' => array(
+                       'mobile.head',
+               ),
+               'scripts' => array(
+                       'javascripts/context.js'
+               ),
+       ),
+
        'mobile.beta' => $wgMFResourceFileModuleBoilerplate + array(
                'dependencies' => array(
+                       'mobile.context',
                        'mobile.stable',
                        // Feature modules that should be loaded in beta should 
be listed below here.
                        // These modules should only setup routes/events or
diff --git a/javascripts/Icon.js b/javascripts/Icon.js
index 84fc5dc..50cf360 100644
--- a/javascripts/Icon.js
+++ b/javascripts/Icon.js
@@ -1,7 +1,8 @@
 ( function ( M, $ ) {
 
        var View = M.require( 'View' ),
-               useMediaWikiUI = M.isAlphaGroupMember(),
+               context = M.require( 'context' ),
+               useMediaWikiUI = context.isAlphaGroupMember(),
                Icon;
 
        /**
@@ -65,7 +66,7 @@
                toHtmlString: function () {
                        return $( '<div>' ).append( this.$el ).html();
                },
-               template: mw.template.get( 'mobile.startup', 'icon.hogan' )
+               template: mw.template.get( 'mobile.icon', 'icon.hogan' )
        } );
 
        M.define( 'Icon', Icon );
diff --git a/javascripts/PageApi.js b/javascripts/PageApi.js
index 00af750..b437a50 100644
--- a/javascripts/PageApi.js
+++ b/javascripts/PageApi.js
@@ -1,7 +1,7 @@
 ( function ( M, $ ) {
        var PageApi,
                Api = M.require( 'api' ).Api,
-               sectionTemplate = mw.template.get( 'mobile.startup', 
'Section.hogan' );
+               sectionTemplate = mw.template.get( 'mobile.section', 
'Section.hogan' );
 
        /**
         * Add child to listOfSections if the level of child is the same as the 
last
diff --git a/javascripts/Schema.js b/javascripts/Schema.js
index 046e762..32d30d8 100644
--- a/javascripts/Schema.js
+++ b/javascripts/Schema.js
@@ -1,5 +1,6 @@
 ( function ( M, $ ) {
        var Schema,
+               context = M.require( 'context' ),
                browser = M.require( 'browser' ),
                Class = M.require( 'Class' );
 
@@ -16,7 +17,7 @@
                 * @cfg {String} defaults.mobileMode whether user is in stable 
beta or alpha
                 */
                defaults: {
-                       mobileMode: M.getMode()
+                       mobileMode: context.getMode()
                },
                /**
                 * Name of Schema to log to
diff --git a/javascripts/Section.js b/javascripts/Section.js
index 95c1515..16888e3 100644
--- a/javascripts/Section.js
+++ b/javascripts/Section.js
@@ -10,7 +10,7 @@
         * @extends View
         */
        Section = View.extend( {
-               template: mw.template.get( 'mobile.startup', 'Section.hogan' ),
+               template: mw.template.get( 'mobile.section', 'Section.hogan' ),
                /**
                 * @cfg {Object} defaults Default options hash.
                 * @cfg {String} defaults.text Section text.
diff --git a/javascripts/modes.js b/javascripts/context.js
similarity index 82%
rename from javascripts/modes.js
rename to javascripts/context.js
index 8c272ba..ac1b320 100644
--- a/javascripts/modes.js
+++ b/javascripts/context.js
@@ -1,12 +1,13 @@
-/**
- * Mobile mode helper class
- *
- * @class mw.mobileFrontend
- * @singleton
- */
-( function ( $ ) {
-       mw.mobileFrontend = $.extend( {
+( function ( M, $ ) {
+       var context;
 
+       /**
+        * Mobile mode helper class
+        *
+        * @class context
+        * @singleton
+        */
+       context = {
                /**
                 * Gets current mobile mode
                 * @method
@@ -46,6 +47,8 @@
                                throw new Error( 'Attempt to run module outside 
declared environment mode ' + mode );
                        }
                }
-       }, mw.mobileFrontend );
+       };
 
-}( jQuery ) );
+       M.define( 'context', context );
+
+}( mw.mobileFrontend, jQuery ) );
diff --git a/javascripts/loggingSchemas/init.js 
b/javascripts/loggingSchemas/init.js
index ea75b8b..11a4d8a 100644
--- a/javascripts/loggingSchemas/init.js
+++ b/javascripts/loggingSchemas/init.js
@@ -1,6 +1,7 @@
 // Add EventLogging to hamburger menu
 ( function ( M, $ ) {
        var SchemaMobileWebClickTracking = M.require( 
'loggingSchemas/SchemaMobileWebClickTracking' ),
+               context = M.require( 'context' ),
                mainMenuSchema = new SchemaMobileWebClickTracking( {}, 
'MobileWebMainMenuClickTracking' ),
                uiSchema = new SchemaMobileWebClickTracking( {}, 
'MobileWebUIClickTracking' );
 
@@ -12,7 +13,7 @@
         */
        function mainMenuIconSelector( name ) {
                // FIXME: Remove when mw-ui-icon is in stable
-               if ( !M.isAlphaGroupMember() ) {
+               if ( !context.isAlphaGroupMember() ) {
                        return '#mw-mf-page-left .icon-' + name;
                } else {
                        return '#mw-mf-page-left .mw-ui-icon-' + name;
diff --git a/javascripts/modules/bannerImage/init.js 
b/javascripts/modules/bannerImage/init.js
index ce97fd2..289c41d 100644
--- a/javascripts/modules/bannerImage/init.js
+++ b/javascripts/modules/bannerImage/init.js
@@ -1,5 +1,5 @@
 ( function ( M ) {
-       M.assertMode( [ 'alpha' ] );
+       M.require( 'context' ).assertMode( [ 'alpha' ] );
        var bannerImage,
                page = M.getCurrentPage(),
                browser = M.require( 'browser' ),
diff --git a/javascripts/modules/errorReport/init.js 
b/javascripts/modules/errorReport/init.js
index e463458..2f5266c 100644
--- a/javascripts/modules/errorReport/init.js
+++ b/javascripts/modules/errorReport/init.js
@@ -1,6 +1,6 @@
 ( function ( M, $ ) {
        // Run only in alpha mode
-       M.assertMode( [ 'alpha' ] );
+       M.require( 'context' ).assertMode( [ 'alpha' ] );
 
        var user = M.require( 'user' ),
                page = M.getCurrentPage(),
diff --git a/javascripts/modules/infobox/init.js 
b/javascripts/modules/infobox/init.js
index 520d2a2..7f6a39b 100644
--- a/javascripts/modules/infobox/init.js
+++ b/javascripts/modules/infobox/init.js
@@ -1,5 +1,5 @@
 ( function ( M ) {
-       M.assertMode( [ 'alpha' ] );
+       M.require( 'context' ).assertMode( [ 'alpha' ] );
        var infobox,
                page = M.getCurrentPage(),
                wikidataID = mw.config.get( 'wgWikibaseItemId' ),
diff --git a/javascripts/modules/issues/init.js 
b/javascripts/modules/issues/init.js
index cf18f3b..83a11de 100644
--- a/javascripts/modules/issues/init.js
+++ b/javascripts/modules/issues/init.js
@@ -1,11 +1,11 @@
 ( function ( M, $ ) {
 
        var module = ( function () {
-               var
+               var context = M.require( 'context' ),
                        Icon = M.require( 'Icon' ),
-                       inBeta = M.isBetaGroupMember(),
+                       inBeta = context.isBetaGroupMember(),
                        CleanupOverlay = M.require( 
'modules/issues/CleanupOverlay' ),
-                       inAlpha = M.isAlphaGroupMember();
+                       inAlpha = context.isAlphaGroupMember();
 
                /**
                 * Extract a summary message from a cleanup template generated 
element that is
diff --git a/javascripts/modules/references/init.js 
b/javascripts/modules/references/init.js
index 7c85c46..4875fb0 100644
--- a/javascripts/modules/references/init.js
+++ b/javascripts/modules/references/init.js
@@ -1,5 +1,6 @@
 ( function ( M, $ ) {
-       var drawer;
+       var drawer,
+               context = M.require( 'context' );
 
        /**
         * Return the matched reference among the children of ol.references
@@ -51,7 +52,7 @@
                var $container = page ? page.$el : $( '#content' ),
                        module, view, ReferencesDrawer;
 
-               if ( M.isBetaGroupMember() ) {
+               if ( context.isBetaGroupMember() ) {
                        module = 'mobile.references.beta';
                        view = 'modules/references/ReferencesDrawerBeta';
                } else {
diff --git a/javascripts/modules/search/init.js 
b/javascripts/modules/search/init.js
index 034b778..c9c7576 100644
--- a/javascripts/modules/search/init.js
+++ b/javascripts/modules/search/init.js
@@ -3,6 +3,7 @@
        var SearchOverlay = M.require( 'modules/search/SearchOverlay' ),
                SchemaMobileWebClickTracking = M.require( 
'loggingSchemas/SchemaMobileWebClickTracking' ),
                uiSchema = new SchemaMobileWebClickTracking( {}, 
'MobileWebUIClickTracking' ),
+               context = M.require( 'context' ),
                browser = M.require( 'browser' );
 
        /**
@@ -39,7 +40,7 @@
        // FIXME: ugly hack that removes search from browser history when 
navigating
        // to search results (we can't rely on History API yet)
        // alpha does it differently in lazyload.js
-       if ( !M.isAlphaGroupMember() ) {
+       if ( !context.isAlphaGroupMember() ) {
                M.on( 'search-results', function ( overlay ) {
                        overlay.$( '.results a' ).on( 'click', function () {
                                var href = $( this ).attr( 'href' );
diff --git a/javascripts/modules/talk/TalkOverlay.js 
b/javascripts/modules/talk/TalkOverlay.js
index e413069..37cc010 100644
--- a/javascripts/modules/talk/TalkOverlay.js
+++ b/javascripts/modules/talk/TalkOverlay.js
@@ -1,5 +1,5 @@
 ( function ( M, $ ) {
-       M.assertMode( [ 'beta', 'alpha' ] );
+       M.require( 'context' ).assertMode( [ 'beta', 'alpha' ] );
 
        var
                Overlay = M.require( 'Overlay' ),
diff --git a/javascripts/modules/talk/TalkSectionAddOverlay.js 
b/javascripts/modules/talk/TalkSectionAddOverlay.js
index b659b29..da9b29b 100644
--- a/javascripts/modules/talk/TalkSectionAddOverlay.js
+++ b/javascripts/modules/talk/TalkSectionAddOverlay.js
@@ -1,5 +1,5 @@
 ( function ( M, $ ) {
-       M.assertMode( [ 'beta', 'alpha' ] );
+       M.require( 'context' ).assertMode( [ 'beta', 'alpha' ] );
        var
                Overlay = M.require( 'Overlay' ),
                api = M.require( 'api' ),
diff --git a/javascripts/modules/talk/TalkSectionOverlay.js 
b/javascripts/modules/talk/TalkSectionOverlay.js
index de31401..dc1cad1 100644
--- a/javascripts/modules/talk/TalkSectionOverlay.js
+++ b/javascripts/modules/talk/TalkSectionOverlay.js
@@ -5,6 +5,7 @@
                api = M.require( 'api' ),
                user = M.require( 'user' ),
                Page = M.require( 'Page' ),
+               context = M.require( 'context' ),
                TalkSectionOverlay;
 
        /**
@@ -67,7 +68,7 @@
                                $comment = this.$( '.comment' ),
                                $textarea = $comment.find( 'textarea' );
 
-                       if ( user.isAnon() || !M.isAlphaGroupMember() ) {
+                       if ( user.isAnon() || !context.isAlphaGroupMember() ) {
                                $comment.remove();
                        } else {
                                $textarea.on( 'focus', function () {
diff --git a/javascripts/modules/talk/talk.js b/javascripts/modules/talk/talk.js
index 1537892..6785ab7 100644
--- a/javascripts/modules/talk/talk.js
+++ b/javascripts/modules/talk/talk.js
@@ -1,8 +1,9 @@
 ( function ( M, $ ) {
        var licenseLink = mw.config.get( 'wgMFLicenseLink' ),
+               context = M.require( 'context' ),
                $talk = $( '.talk' );
 
-       M.assertMode( [ 'beta', 'alpha', 'app' ] );
+       context.assertMode( [ 'beta', 'alpha', 'app' ] );
 
        M.overlayManager.add( /^\/talk\/?(.*)$/, function ( id ) {
                var result = $.Deferred(),
diff --git a/javascripts/modules/toggling/init.js 
b/javascripts/modules/toggling/init.js
index 9682033..42f98b5 100644
--- a/javascripts/modules/toggling/init.js
+++ b/javascripts/modules/toggling/init.js
@@ -1,6 +1,7 @@
 ( function ( M, $ ) {
        var page = M.getCurrentPage(),
                currentPageTitle =  page.title,
+               context = M.require( 'context' ),
                settings = M.require( 'settings' ),
                browser = M.require( 'browser' ),
                escapeHash = M.require( 'util' ).escapeHash,
@@ -206,7 +207,7 @@
                        collapseSectionsByDefault = true;
                }
                expandSections = !collapseSectionsByDefault ||
-                       ( M.isAlphaGroupMember() && settings.get( 
'expandSections', true ) === 'true' );
+                       ( context.isAlphaGroupMember() && settings.get( 
'expandSections', true ) === 'true' );
 
                $container.find( tagName ).each( function ( i ) {
                        var $heading = $( this ),
diff --git a/javascripts/modules/uploads/UploadTutorial.js 
b/javascripts/modules/uploads/UploadTutorial.js
index eb28217..101c7c2 100644
--- a/javascripts/modules/uploads/UploadTutorial.js
+++ b/javascripts/modules/uploads/UploadTutorial.js
@@ -1,6 +1,6 @@
 ( function ( M, $ ) {
 
-       var
+       var context = M.require( 'context' ),
                Overlay = M.require( 'Overlay' ),
                Icon = M.require( 'Icon' ),
                LeadPhotoUploaderButton = M.require( 
'modules/uploads/PhotoUploaderButton' ),
@@ -40,7 +40,7 @@
                                name: 'next',
                                additionalClassNames: 'slider-button next'
                        } ).toHtmlString(),
-                       inBeta: M.isBetaGroupMember(),
+                       inBeta: context.isBetaGroupMember(),
                        pages: [
                                {
                                        caption: mw.msg( 
'mobile-frontend-first-upload-wizard-new-page-1-header' ),
diff --git a/javascripts/modules/wikiGrokRoulette/init.js 
b/javascripts/modules/wikiGrokRoulette/init.js
index 04b2567..04fe046 100644
--- a/javascripts/modules/wikiGrokRoulette/init.js
+++ b/javascripts/modules/wikiGrokRoulette/init.js
@@ -1,5 +1,5 @@
 ( function ( M, $ ) {
-       M.assertMode( [ 'alpha' ] );
+       M.require( 'context' ).assertMode( [ 'alpha' ] );
        var $wikiGrokMenuItem =  $( '#mw-mf-page-left' ).find( 
'.wikigrok-roulette' ),
                wikiGrokRoulette = M.require( 
'modules/wikiGrokRoulette/wikiGrokRoulette' );
 
diff --git a/javascripts/modules/wikigrok/WikiGrokResponseApi.js 
b/javascripts/modules/wikigrok/WikiGrokResponseApi.js
index 8a88348..6a97ac3 100644
--- a/javascripts/modules/wikigrok/WikiGrokResponseApi.js
+++ b/javascripts/modules/wikigrok/WikiGrokResponseApi.js
@@ -1,6 +1,7 @@
 // jscs:disable requireCamelCaseOrUpperCaseIdentifiers
 ( function ( M ) {
        var WikiGrokResponseApi,
+               context = M.require( 'context' ),
                Api = M.require( 'api' ).Api;
 
        /**
@@ -39,7 +40,7 @@
                                task_type: this.taskType,
                                subject_id: this.subjectId,
                                subject: this.subject,
-                               mobile_mode: M.getMode(),
+                               mobile_mode: context.getMode(),
                                campaign_name: this.campaignName,
                                testing: this.testing,
                                claims: JSON.stringify( claims )
diff --git a/javascripts/specials/mobileoptions.js 
b/javascripts/specials/mobileoptions.js
index 6bc6e5b..6fac00a 100644
--- a/javascripts/specials/mobileoptions.js
+++ b/javascripts/specials/mobileoptions.js
@@ -1,5 +1,6 @@
 ( function ( M, $ ) {
        var Checkbox,
+               context = M.require( 'context' ),
                View = M.require( 'View' ),
                settings = M.require( 'settings' );
 
@@ -35,7 +36,7 @@
                var cb,
                        saveLI = $( '#mw-mf-settings-save' );
 
-               if ( M.isAlphaGroupMember() ) {
+               if ( context.isAlphaGroupMember() ) {
                        cb = new Checkbox( {
                                name: 'expandSections',
                                enableMsg: mw.msg( 
'mobile-frontend-expand-sections-status' ),
diff --git a/tests/qunit/modules/references/test_init.js 
b/tests/qunit/modules/references/test_init.js
index 2671daa..51d081e 100644
--- a/tests/qunit/modules/references/test_init.js
+++ b/tests/qunit/modules/references/test_init.js
@@ -1,6 +1,7 @@
 ( function( $, M ) {
 
 var R = mw.mobileFrontend.require( 'references' ),
+       context = M.require( 'context' ),
        ReferencesDrawer = M.require( 'modules/references/ReferencesDrawer' );
 
 QUnit.module( "MobileFrontend references.js", {
@@ -8,7 +9,7 @@
                $('<div id="mfe-test-references"><sup><a 
href="#ref-foo">[1]</a></sup></div><ol class="references"><li 
id="ref-foo"><a>test reference</a></li></ol>').appendTo('#qunit-fixture');
                // prevent events from being logged.
                this.sandbox.stub( ReferencesDrawer.prototype, 'show' );
-               this.sandbox.stub( M, 'isBetaGroupMember' ).returns( false );
+               this.sandbox.stub( context, 'isBetaGroupMember' ).returns( 
false );
        },
        teardown: function() {
                $( '#mfe-test-references' ).remove();

-- 
To view, visit https://gerrit.wikimedia.org/r/183754
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibf474ee0baacbb04f39381f10edab1e9c8756298
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Bmansurov <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to