Jdlrobson has submitted this change and it was merged.

Change subject: locally track languages the reader can speak (alpha)
......................................................................


locally track languages the reader can speak (alpha)

using localStorage keep a record of how many articles up to 100
a user has read in various languages - purpose is to identify
users who can speak multiple languages and suggest article translations
to them

Also hooks into when a user toggles to a different language via the language
selection module in beta

additional changes:
expose supportsLocalStorage in mf-settings.js

Change-Id: Ifbff8fca03b7fab23cf78114d9b9069d5a47a9a1
---
M MobileFrontend.php
M javascripts/common/mf-settings.js
M javascripts/modules/mf-languages.js
A javascripts/modules/mf-translator.js
4 files changed, 36 insertions(+), 0 deletions(-)

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



diff --git a/MobileFrontend.php b/MobileFrontend.php
index 62f2cd7..84116b2 100644
--- a/MobileFrontend.php
+++ b/MobileFrontend.php
@@ -347,6 +347,7 @@
                'javascripts/modules/mf-inline-style-scrubber.js',
                'javascripts/modules/mf-random.js',
                'javascripts/modules/mf-tables.js',
+               'javascripts/modules/mf-translator.js',
        ),
        'mobileTargets' => array( 'alpha' ),
 );
diff --git a/javascripts/common/mf-settings.js 
b/javascripts/common/mf-settings.js
index e015ec0..a549870 100644
--- a/javascripts/common/mf-settings.js
+++ b/javascripts/common/mf-settings.js
@@ -68,6 +68,7 @@
                readCookie: readCookie,
                removeCookie: removeCookie,
                saveUserSetting: saveUserSetting,
+               supportsLocalStorage: supportsLocalStorage,
                writeCookie: writeCookie
        };
 }());
diff --git a/javascripts/modules/mf-languages.js 
b/javascripts/modules/mf-languages.js
index ee1bee3..3c17edb 100644
--- a/javascripts/modules/mf-languages.js
+++ b/javascripts/modules/mf-languages.js
@@ -39,6 +39,9 @@
 
                overlay = createOverlay( $search, $wrapper, { hash: 
'#mw-mf-overlay-language' } );
                $lists = $( overlay ).find( 'ul' );
+               $lists.find( 'a' ).on( 'click', function() {
+                       M.emit( 'language-select', $( this ).attr( 'lang' ) );
+               } );
                $( overlay ).find( '.search' ).on( 'keyup', function() {
                        var matches = filterLists( $lists, 
this.value.toLowerCase() );
                        if ( matches > 0 ) {
diff --git a/javascripts/modules/mf-translator.js 
b/javascripts/modules/mf-translator.js
new file mode 100644
index 0000000..c095912
--- /dev/null
+++ b/javascripts/modules/mf-translator.js
@@ -0,0 +1,31 @@
+( function( M ) {
+
+       var supported = M.settings.supportsLocalStorage,
+               langMap,
+               curLanguage = mw.config.get( 'wgContentLanguage' );
+
+       function loadLanguageMap() {
+               langMap = M.settings.getUserSetting( 'langMap' );
+               langMap = langMap ? JSON.parse( langMap ) : {};
+       }
+
+       function profileLanguage( language ) {
+               var count;
+               count = langMap[ language ] || 0;
+               count += 1;
+               // cap at 100 as this is enough data to work on
+               langMap[ language ] = count > 100 ? 100 : count;
+               M.settings.saveUserSetting( 'langMap', JSON.stringify( langMap 
) );
+       }
+
+       function initProfiler() {
+               if ( supported ) {
+                       loadLanguageMap();
+                       profileLanguage( curLanguage );
+               }
+       }
+
+       M.on( 'language-select', profileLanguage );
+       initProfiler();
+
+}( mw.mobileFrontend ) );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifbff8fca03b7fab23cf78114d9b9069d5a47a9a1
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to