Phuedx has uploaded a new change for review.
https://gerrit.wikimedia.org/r/177773
Change subject: Make getWikiGrokVersion promise-based
......................................................................
Make getWikiGrokVersion promise-based
Change-Id: Ib5f3eee3709cf23d7782a0974b93576e28d0d8c3
---
M javascripts/modules/wikigrok/init.js
1 file changed, 41 insertions(+), 38 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend
refs/changes/73/177773/1
diff --git a/javascripts/modules/wikigrok/init.js
b/javascripts/modules/wikigrok/init.js
index 1f2ee0a..bf81b3c 100644
--- a/javascripts/modules/wikigrok/init.js
+++ b/javascripts/modules/wikigrok/init.js
@@ -17,7 +17,6 @@
name: 'b'
}
},
- versionConfig,
WikiGrokAbTest = M.require( 'WikiGrokAbTest' ),
wikiGrokUser = M.require( 'wikiGrokUser' );
@@ -47,12 +46,13 @@
* If the user is eligible to enter the WikiGrok AB test, then the test
* determines which version to use.
*
- * @return {Object|null}
+ * @return {jQuery.Promise}
*/
function getWikiGrokConfig() {
var versionOverride,
versionConfig = null,
- wikiGrokAbTest = WikiGrokAbTest.newFromMwConfig();
+ wikiGrokAbTest = WikiGrokAbTest.newFromMwConfig(),
+ deferred = $.Deferred();
// See if there is a query string override
if ( M.query.wikigrokversion ) {
@@ -66,10 +66,10 @@
versionConfig =
versionConfigs[wikiGrokAbTest.getVersion( wikiGrokUser )];
}
- return versionConfig;
- }
+ deferred.resolve( versionConfig );
- versionConfig = getWikiGrokConfig();
+ return deferred.promise();
+ }
// Allow query string override for testing, for example,
'?wikidataid=Q508703'
if ( !wikidataID ) {
@@ -86,8 +86,6 @@
// User hasn't already contributed through WikiGrok on this
page before or they
// are testing WikiGrok (by using the query string override)
( !hasUserAlreadyContributedToWikiGrok() || idOverride ) &&
- // WikiGrok is enabled and configured for this user
- versionConfig &&
// We're not on the Main Page
!mw.config.get( 'wgIsMainPage' ) &&
// Permitted on this device
@@ -99,38 +97,43 @@
// We're in Main namespace,
mw.config.get( 'wgNamespaceNumber' ) === 0
) {
+ getWikiGrokConfig().done( function ( versionConfig ) {
- // Load the required module and view based on the version for
the user
- mw.loader.using( versionConfig.module ).done( function () {
- var WikiGrokDialog = M.require( versionConfig.view ),
- page = M.getCurrentPage(),
- // Initialize the dialog and insert it into the
page (but don't display yet)
- dialog = new WikiGrokDialog( {
- itemId: wikidataID,
- title: mw.config.get( 'wgTitle' ),
- userToken: wikiGrokUser.getToken(),
- testing: ( idOverride ) ? true : false
+ // Load the required module and view based on the
version for the user
+ mw.loader.using( versionConfig.module ).done( function
() {
+ // Load the required module and view based on
the version for the user
+ mw.loader.using( versionConfig.module ).done(
function () {
+ var WikiGrokDialog = M.require(
versionConfig.view ),
+ page = M.getCurrentPage(),
+ // Initialize the dialog and
insert it into the page (but don't display yet)
+ dialog = new WikiGrokDialog( {
+ itemId: wikidataID,
+ title: mw.config.get(
'wgTitle' ),
+ userToken:
wikiGrokUser.getToken(),
+ testing: ( idOverride )
? true : false
+ } );
+
+ // FIXME: If the table of contents code
is not loaded the dialog will still
+ // get added to the end of the lead
section.
+ if ( $( '.toc-mobile' ).length ) {
+ dialog.insertBefore(
'.toc-mobile' );
+ } else {
+ dialog.appendTo(
page.getLeadSectionElement() );
+ }
+ } ).fail( function () {
+ var data = {
+ error:
'no-impression-cannot-load-interface',
+ taskType: 'version ' +
versionConfig.name,
+ taskToken:
mw.user.generateRandomSessionId(),
+ userToken:
wikiGrokUser.getToken(),
+ isLoggedIn:
!wikiGrokUser.isAnon()
+ };
+ if ( idOverride ) {
+ data.testing = true;
+ }
+ errorSchema.log( data );
} );
-
- // FIXME: If the table of contents code is not loaded
the dialog will still
- // get added to the end of the lead section.
- if ( $( '.toc-mobile' ).length ) {
- dialog.insertBefore( '.toc-mobile' );
- } else {
- dialog.appendTo( page.getLeadSectionElement() );
- }
- } ).fail( function () {
- var data = {
- error: 'no-impression-cannot-load-interface',
- taskType: 'version ' + versionConfig.name,
- taskToken: mw.user.generateRandomSessionId(),
- userToken: wikiGrokUser.getToken(),
- isLoggedIn: !wikiGrokUser.isAnon()
- };
- if ( idOverride ) {
- data.testing = true;
- }
- errorSchema.log( data );
+ } );
} );
// Make OverlayManager handle '#/wikigrok/about' links.
--
To view, visit https://gerrit.wikimedia.org/r/177773
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib5f3eee3709cf23d7782a0974b93576e28d0d8c3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Phuedx <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits