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