jenkins-bot has submitted this change and it was merged.

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


Move modes.js into context.js

* 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/Resources.php
M javascripts/Icon.js
M javascripts/Schema.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
21 files changed, 50 insertions(+), 36 deletions(-)

Approvals:
  Jdlrobson: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/Resources.php b/includes/Resources.php
index 75fae5f..c8f27e7 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -177,7 +177,7 @@
                        'mobile.modules',
                ),
                'scripts' => array(
-                       'javascripts/modes.js',
+                       'javascripts/context.js',
                ),
        ),
        'mobile.browser' => $wgMFResourceFileModuleBoilerplate + array(
diff --git a/javascripts/Icon.js b/javascripts/Icon.js
index f718b1d..1aa11eb 100644
--- a/javascripts/Icon.js
+++ b/javascripts/Icon.js
@@ -1,7 +1,8 @@
 ( function ( M, $ ) {
 
        var View = M.require( 'View' ),
-               useMediaWikiUI = M.isBetaGroupMember(),
+               context = M.require( 'context' ),
+               useMediaWikiUI = context.isBetaGroupMember(),
                Icon;
 
        /**
diff --git a/javascripts/Schema.js b/javascripts/Schema.js
index 120ad12..4cd909c 100644
--- a/javascripts/Schema.js
+++ b/javascripts/Schema.js
@@ -1,6 +1,7 @@
 ( function ( M, $ ) {
        var Schema,
                Class = M.require( 'Class' ),
+               context = M.require( 'context' ),
                user = M.require( 'user' );
 
        /**
@@ -15,7 +16,7 @@
                 * @cfg {String} defaults.mobileMode whether user is in stable 
beta or alpha
                 */
                defaults: {
-                       mobileMode: M.getMode()
+                       mobileMode: context.getMode()
                },
                /**
                 * Whether or not the logging is sampled (i.e. not recorded at 
100% frequency)
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 072e952..64e3fb0 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 2372b2f..fcc3301 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 318cfec..455ffcb 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 4aa2a28..074d5ef 100644
--- a/javascripts/modules/talk/TalkSectionOverlay.js
+++ b/javascripts/modules/talk/TalkSectionOverlay.js
@@ -6,6 +6,7 @@
                user = M.require( 'user' ),
                Page = M.require( 'Page' ),
                pageApi = M.require( 'pageApi' ),
+               context = M.require( 'context' ),
                TalkSectionOverlay;
 
        /**
@@ -68,7 +69,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 ba7eed5..d6b9e8e 100644
--- a/javascripts/modules/talk/talk.js
+++ b/javascripts/modules/talk/talk.js
@@ -4,9 +4,10 @@
                user = M.require( 'user' ),
                licenseLink = mw.config.get( 'wgMFLicenseLink' ),
                $talk = $( '.talk' ),
-               page = M.getCurrentPage();
+               page = M.getCurrentPage(),
+               context = M.require( 'context' );
 
-       M.assertMode( [ 'beta', 'alpha', 'app' ] );
+       context.assertMode( [ 'beta', 'alpha', 'app' ] );
 
        M.overlayManager.add( /^\/talk\/?(.*)$/, function ( id ) {
                var result = $.Deferred(),
@@ -49,7 +50,7 @@
 
        // add an "add discussion" button to talk pages (only for beta and 
logged in users)
        if (
-               M.isBetaGroupMember() &&
+               context.isBetaGroupMember() &&
                !user.isAnon() &&
                ( page.inNamespace( 'talk' ) || page.inNamespace( 'user_talk' ) 
)
        ) {
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 00dc0ca..3905736 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;
 
        /**
@@ -38,7 +39,7 @@
                                task_type: this.taskType,
                                subject_id: this.subjectId,
                                subject: this.subject,
-                               mobile_mode: M.getMode(),
+                               mobile_mode: context.getMode(),
                                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 2425dc7..77d75fa 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: merged
Gerrit-Change-Id: Ibf474ee0baacbb04f39381f10edab1e9c8756298
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Bmansurov <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to