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

Change subject: Only use jQuery.tipsy for undo popover
......................................................................


Only use jQuery.tipsy for undo popover

Per discussion on Gerrit about previous patch-sets in this change, only use
jQuery.tipsy for the undo popover. This means that in the common case (i.e.,
the user has not just changed languages), the ULS tooltip will be system native
tooltip.

Change-Id: I9206a79d59687930c26b7ef86d29bfba050691fe
(cherry picked from commit 02fe8719dc3fed74e96a02d029a5a7eb0516e05b)
---
M Resources.php
M extension.json
M resources/js/ext.uls.interface.js
3 files changed, 22 insertions(+), 25 deletions(-)

Approvals:
  Ori.livneh: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Resources.php b/Resources.php
index 7e34c12..fe56d83 100644
--- a/Resources.php
+++ b/Resources.php
@@ -112,7 +112,6 @@
        'scripts' => 'resources/js/ext.uls.interface.js',
        'dependencies' => array(
                'ext.uls.init',
-               'jquery.tipsy',
                'mediawiki.jqueryMsg',
                'mediawiki.user',
                // We cannot delay the loading of the basic webfonts library
diff --git a/extension.json b/extension.json
index 86e93c0..f5925d3 100644
--- a/extension.json
+++ b/extension.json
@@ -197,7 +197,6 @@
                        "scripts": "js/ext.uls.interface.js",
                        "dependencies": [
                                "ext.uls.init",
-                               "jquery.tipsy",
                                "mediawiki.jqueryMsg",
                                "mediawiki.user",
                                "ext.uls.webfonts"
diff --git a/resources/js/ext.uls.interface.js 
b/resources/js/ext.uls.interface.js
index 96aaa2e..80cfeab 100644
--- a/resources/js/ext.uls.interface.js
+++ b/resources/js/ext.uls.interface.js
@@ -174,9 +174,11 @@
                        autonym = $.cookie( 
mw.uls.previousLanguageAutonymCookie );
 
                if ( autonym ) {
-                       deferred.resolve( autonym );
+                       mw.loader.using( 'jquery.tipsy', function () {
+                               deferred.resolve( autonym );
+                       } );
                } else {
-                       mw.loader.using( 'jquery.uls.data', function () {
+                       mw.loader.using( [ 'jquery.uls.data', 'jquery.tipsy' ], 
function () {
                                deferred.resolve( $.uls.data.getAutonym( code ) 
);
                        } );
                }
@@ -184,12 +186,22 @@
                return deferred.promise();
        }
 
+       function userCanChangeLanguage() {
+               return mw.config.get( 'wgULSAnonCanChangeLanguage') || 
!mw.user.isAnon();
+       }
+
+       function userHasChangedLanguage() {
+               var previousLang = mw.uls.getPreviousLanguages().slice( -1 )[ 0 
],
+                       currentLang = mw.config.get( 'wgUserLanguage' );
+               return previousLang && previousLang !== currentLang;
+       }
+
        /**
         * The tooltip to be shown when language changed using ULS.
         * It also allows to undo the language selection.
         */
-       function showULSTooltip() {
-               var previousLang, $ulsTrigger, anonMode, showUndo, newLanguage, 
previousLanguages,
+       function showUndoTooltip() {
+               var previousLanguages, previousLang, $ulsTrigger,
                        ulsPosition = mw.config.get( 'wgULSPosition' ),
                        currentLang = mw.config.get( 'wgUserLanguage' ),
                        rtlPage = $( 'body' ).hasClass( 'rtl' ),
@@ -202,26 +214,11 @@
                        $( '.uls-settings-trigger' ) :
                        $( '.uls-trigger' );
 
-               previousLanguages = mw.uls.getPreviousLanguages() || [];
+               previousLanguages = mw.uls.getPreviousLanguages();
                previousLang = previousLanguages.slice( -1 )[0];
 
-               // Whether we see current language for the first time
-               newLanguage = currentLang !== previousLang;
-               // Whether user is able to change language
-               anonMode = ( mw.user.isAnon() && !mw.config.get( 
'wgULSAnonCanChangeLanguage' ) );
-               // Whether user is able to change language, and just did so
-               showUndo = !anonMode && newLanguage && previousLang !== 
undefined;
-
-               if ( newLanguage ) {
-                       previousLanguages.push( currentLang );
-                       mw.uls.setPreviousLanguages( previousLanguages );
-               }
-
-               if ( !showUndo ) {
-                       // In interlanguage mode, we will have normal tooltip, 
make it look same using tipsy
-                       $ulsTrigger.tipsy( { gravity: tipsyGravity[ulsPosition] 
} );
-                       return;
-               }
+               previousLanguages.push( currentLang );
+               mw.uls.setPreviousLanguages( previousLanguages );
 
                getUndoAutonym( previousLang ).done( function( autonym ) {
                        // Attach a tipsy tooltip to the trigger
@@ -475,7 +472,9 @@
                                        return false;
                                } );
 
-                       showULSTooltip();
+                       if ( userCanChangeLanguage() && 
userHasChangedLanguage() ) {
+                               showUndoTooltip();
+                       }
 
                        $( 'body' ).on( 'focus.imeinit', imeSelector, function 
() {
                                var $input = $( this );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I9206a79d59687930c26b7ef86d29bfba050691fe
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: wmf/1.27.0-wmf.5
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to