Avoid reflow (FOUC) due to ULS link on Special:Preferences
Rather than building the link in JS, which is delayed until the JS code loads, we build it in PHP and hide it from no-JS users with CSS. Change-Id: If0c3a4dc137d8bf6cf24957dd063bd0a39791d2e
This commit is contained in:
committed by
jenkins-bot
parent
427c36a9e1
commit
f0ad6be4ab
@@ -139,6 +139,10 @@ class UniversalLanguageSelectorHooks {
|
|||||||
} else {
|
} else {
|
||||||
$out->addModuleStyles( 'ext.uls.interlanguage' );
|
$out->addModuleStyles( 'ext.uls.interlanguage' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( $out->getTitle()->isSpecial( 'Preferences' ) ) {
|
||||||
|
$out->addModuleStyles( 'ext.uls.preferencespage' );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -381,9 +385,10 @@ class UniversalLanguageSelectorHooks {
|
|||||||
'type' => 'info',
|
'type' => 'info',
|
||||||
'raw' => true,
|
'raw' => true,
|
||||||
'section' => 'personal/i18n',
|
'section' => 'personal/i18n',
|
||||||
'default' => "<a id='uls-preferences-link' href='#'></a>",
|
// We use this class to hide this from no-JS users
|
||||||
// The above link will have text set from javascript. Just to avoid
|
'cssclass' => 'uls-preferences-link-wrapper',
|
||||||
// showing the link when javascript is disabled.
|
'default' => "<a id='uls-preferences-link' href='#'>" .
|
||||||
|
wfMessage( 'ext-uls-language-settings-preferences-link' )->escaped() . "</a>",
|
||||||
];
|
];
|
||||||
|
|
||||||
if ( $wgULSCompactLanguageLinksBetaFeature === false ) {
|
if ( $wgULSCompactLanguageLinksBetaFeature === false ) {
|
||||||
|
|||||||
@@ -200,8 +200,7 @@
|
|||||||
"uls-plang-title-languages",
|
"uls-plang-title-languages",
|
||||||
"ext-uls-select-language-settings-icon-tooltip",
|
"ext-uls-select-language-settings-icon-tooltip",
|
||||||
"ext-uls-undo-language-tooltip-text",
|
"ext-uls-undo-language-tooltip-text",
|
||||||
"ext-uls-undo-language-tooltip-text-local",
|
"ext-uls-undo-language-tooltip-text-local"
|
||||||
"ext-uls-language-settings-preferences-link"
|
|
||||||
],
|
],
|
||||||
"localBasePath": "resources",
|
"localBasePath": "resources",
|
||||||
"remoteExtPath": "UniversalLanguageSelector/resources"
|
"remoteExtPath": "UniversalLanguageSelector/resources"
|
||||||
@@ -353,6 +352,11 @@
|
|||||||
"localBasePath": "resources",
|
"localBasePath": "resources",
|
||||||
"remoteExtPath": "UniversalLanguageSelector/resources"
|
"remoteExtPath": "UniversalLanguageSelector/resources"
|
||||||
},
|
},
|
||||||
|
"ext.uls.preferencespage": {
|
||||||
|
"styles": "css/ext.uls.preferencespage.less",
|
||||||
|
"localBasePath": "resources",
|
||||||
|
"remoteExtPath": "UniversalLanguageSelector/resources"
|
||||||
|
},
|
||||||
"rangy.core": {
|
"rangy.core": {
|
||||||
"scripts": "rangy/rangy-core.js",
|
"scripts": "rangy/rangy-core.js",
|
||||||
"localBasePath": "lib",
|
"localBasePath": "lib",
|
||||||
|
|||||||
3
resources/css/ext.uls.preferencespage.less
Normal file
3
resources/css/ext.uls.preferencespage.less
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.client-nojs .uls-preferences-link-wrapper {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
@@ -382,7 +382,6 @@
|
|||||||
|
|
||||||
// Bind language settings to preferences page link
|
// Bind language settings to preferences page link
|
||||||
$( '#uls-preferences-link' )
|
$( '#uls-preferences-link' )
|
||||||
.text( mw.msg( 'ext-uls-language-settings-preferences-link' ) )
|
|
||||||
.click( function () {
|
.click( function () {
|
||||||
$ulsTrigger.trigger( 'click', {
|
$ulsTrigger.trigger( 'click', {
|
||||||
source: 'preferences'
|
source: 'preferences'
|
||||||
|
|||||||
Reference in New Issue
Block a user