Optionally exclude elements from applying webfonts

* Updates jquery.webfonts from upstream
* Introduces wgULSNoWebfontsSelectors configuration variable. It
  takes an array of jquery selector to which webfonts will not be
  applied if defined.

Change-Id: I0dc263f84620af4077f52e18eeb0f986ff0f13b9
This commit is contained in:
Santhosh Thottingal
2013-09-18 11:28:08 -07:00
parent 06a386fa83
commit 3fbbf05c26
4 changed files with 23 additions and 4 deletions

View File

@@ -248,7 +248,7 @@ class UniversalLanguageSelectorHooks {
* @return bool
*/
public static function addConfig( &$vars ) {
global $wgULSGeoService, $wgULSIMEEnabled, $wgULSPosition,
global $wgULSGeoService, $wgULSIMEEnabled, $wgULSPosition, $wgULSNoWebfontsSelectors,
$wgULSAnonCanChangeLanguage, $wgULSEventLogging, $wgULSNoImeSelectors;
// Place constant stuff here (not depending on request context)
@@ -260,6 +260,7 @@ class UniversalLanguageSelectorHooks {
$vars['wgULSAnonCanChangeLanguage'] = $wgULSAnonCanChangeLanguage;
$vars['wgULSEventLogging'] = $wgULSEventLogging;
$vars['wgULSNoImeSelectors'] = $wgULSNoImeSelectors;
$vars['wgULSNoWebfontsSelectors'] = $wgULSNoWebfontsSelectors;
return true;
}

View File

@@ -130,6 +130,14 @@ $wgULSEventLogging = false;
*/
$wgULSNoImeSelectors = array( '#wpCaptchaWord' );
/**
* Array of jQuery selectors of elements on which webfonts must not be applied.
* By default exclude the interwiki language links.
* @since 2013.09
*/
$wgULSNoWebfontsSelectors = array( '#p-lang li > a' );
$dir = __DIR__;
// Internationalization

View File

@@ -190,6 +190,10 @@
var fontFamilyStyle, fontFamily,
$element = $( element );
if ( $element.is( webfonts.options.exclude ) ) {
return;
}
// Note: it depends on the browser whether this returns font names
// which don't exist. In Chrome it does, while in Opera it doesn't.
fontFamilyStyle = $element.css( 'fontFamily' );

View File

@@ -70,12 +70,17 @@
return font;
},
exclude: ( function () {
var excludes = $.fn.webfonts.defaults.exclude;
if ( mw.user.options.get( 'editfont' ) !== 'default' ) {
// Exclude textboxes from webfonts if user has edit area font option
// set using 'Preferences' page
return 'textarea';
excludes = ( excludes )
? excludes + ',textarea'
: 'textarea';
}
return $.fn.webfonts.defaults.exclude;
return excludes;
}() )
} );
$( 'body' ).webfonts();
@@ -87,7 +92,8 @@
// MediaWiki specific overrides for jquery.webfonts
$.extend( $.fn.webfonts.defaults, {
repository: mediawikiFontRepository,
fontStack: $( 'body' ).css( 'font-family' ).split( /, /g )
fontStack: $( 'body' ).css( 'font-family' ).split( /, /g ),
exclude: mw.config.get( 'wgULSNoWebfontsSelectors' ).join( ', ' )
} );
mw.webfonts.preferences.load();