Refactor showULSTooltip
Makes the code easier to understand and fixes T52743 Bug: T52743 Change-Id: If508f26b5133284f3059b50d420066a8b4fefb07
This commit is contained in:
committed by
Nikerabbit
parent
db44516b27
commit
d574548d41
@@ -189,37 +189,37 @@
|
|||||||
* It also allows to undo the language selection.
|
* It also allows to undo the language selection.
|
||||||
*/
|
*/
|
||||||
function showULSTooltip() {
|
function showULSTooltip() {
|
||||||
var ulsPosition = mw.config.get( 'wgULSPosition' ),
|
var previousLang, $ulsTrigger, anonMode, showUndo, newLanguage, previousLanguages,
|
||||||
|
ulsPosition = mw.config.get( 'wgULSPosition' ),
|
||||||
currentLang = mw.config.get( 'wgUserLanguage' ),
|
currentLang = mw.config.get( 'wgUserLanguage' ),
|
||||||
previousLang,
|
|
||||||
$ulsTrigger,
|
|
||||||
anonMode,
|
|
||||||
rtlPage = $( 'body' ).hasClass( 'rtl' ),
|
rtlPage = $( 'body' ).hasClass( 'rtl' ),
|
||||||
tipsyGravity = {
|
tipsyGravity = {
|
||||||
personal: 'n',
|
personal: 'n',
|
||||||
interlanguage: rtlPage ? 'e' : 'w'
|
interlanguage: rtlPage ? 'e' : 'w'
|
||||||
},
|
};
|
||||||
previousLanguages = mw.uls.getPreviousLanguages() || [];
|
|
||||||
|
|
||||||
previousLang = previousLanguages.slice( -1 )[0];
|
|
||||||
|
|
||||||
$ulsTrigger = ( ulsPosition === 'interlanguage' ) ?
|
$ulsTrigger = ( ulsPosition === 'interlanguage' ) ?
|
||||||
$( '.uls-settings-trigger' ) :
|
$( '.uls-settings-trigger' ) :
|
||||||
$( '.uls-trigger' );
|
$( '.uls-trigger' );
|
||||||
|
|
||||||
if ( previousLang === currentLang ) {
|
previousLanguages = mw.uls.getPreviousLanguages() || [];
|
||||||
$ulsTrigger.tipsy( { gravity: rtlPage ? 'e' : 'w' } );
|
previousLang = previousLanguages.slice( -1 )[0];
|
||||||
|
|
||||||
return;
|
// 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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
previousLanguages.push( currentLang );
|
if ( !showUndo ) {
|
||||||
mw.uls.setPreviousLanguages( previousLanguages );
|
// In interlanguage mode, we will have normal tooltip, make it look same using tipsy
|
||||||
|
$ulsTrigger.tipsy( { gravity: tipsyGravity[ulsPosition] } );
|
||||||
anonMode = ( mw.user.isAnon() && !mw.config.get( 'wgULSAnonCanChangeLanguage' ) );
|
|
||||||
|
|
||||||
if ( anonMode || !previousLang ) {
|
|
||||||
// Do not show tooltip
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user