Commit Graph

51 Commits

Author SHA1 Message Date
Timo Tijhof
4e067715dc Remove redundant closure aliases
'mw' are '$' are globals, always have been, and aren't going
anywhere. They're every bit as real as their longer versions.
If anything, the longer ones are less "real" or 'stable" because
they're not used internally by RL and easier to accidentally
replace or override. For anecdotes and history, see 91f950d6b0.

Change-Id: I526fb8c961d9477992d88f2780a0ff4cbdc51923
2018-09-07 19:23:17 +00:00
petarpetkovic
5a1da4dbaa Remove jQuery.inArray usages
Replace jQuery.inArray with JS native Array.prototype.indexOf

Change-Id: I0031f0385e440a34846334d158425182542a9ac9
2018-08-24 20:18:53 +00:00
Santhosh Thottingal
4f3461a9aa Remove autonym font and its usage
I no longer maintain the Autonym font.
Also remove the tofu detection.

Bug: T135464
Bug: T135465
Change-Id: I103aab40ea5f5fc403a7ee5b23d1b634cc9c6ee1
2017-11-13 08:03:12 +00:00
Fomafix
47cfd9c1ae Replace $( document ).ready(...) by $(...)
In jQuery 3 $(document).ready(...) is deprecated.
https://jquery.com/upgrade-guide/3.0/#deprecated-document-ready-handlers-other-than-jquery-function

Change-Id: I1a9f578d8cf8fa2d9dd38a1b2d3a0b3c32914b74
2017-01-06 14:10:55 +01:00
Ed Sanders
811944c49a build: Replace jscs+jshint with eslint
Change-Id: I7f114267fbb4efd62a9162758445cff4fb3c0973
2016-11-09 15:57:38 +00:00
Santhosh Thottingal
64eab95b94 Remove browser checks and use MediaWiki browser policy
We had a browser check to blacklist all browsers older than IE 8
IE <= 7

But that is no longer required since JS support is not there for such
browsers as per https://www.mediawiki.org/wiki/Compatibility#Modern
We can support all modern browsers listed there and we don't need
additional blacklisting now. From 1.27 onwards, there is no JS loaded
for IE 8 too. So we can just use MW browser support policy.

In this commit, the code to do brower checks removed and simplified
the initialization code. Still I am not happy with the interface module,
that need further refactoring.

Change-Id: I655826c55fb2c7c5c88f16368110142d64a96eec
2016-04-12 12:12:35 +05:30
Siebrand Mazeland
6a2b2e0bba Update test files
- Updated versions and order of checkers.
- Some consistency updates in Gruntfile.js.
- Updates to make jscs pass.

Change-Id: I7ed93596ff383dc713bd17af2da0472be934d59d
2016-02-18 18:51:37 +00:00
Fomafix
0833c990e7 Apply coding conventions for JavaScript
Change-Id: Id158ac08d32cc7421e47ae6abdd2bd80879f04d9
2015-02-07 19:34:21 +00:00
Niklas Laxström
4a09ed96d5 Fix JavaScript error on pages without headings
Error was caused because .css( 'font-family' ) returns undefined for
elements which do not exist.

Merged two blocks both extending the default settings.

Bug: 67676
Change-Id: Ic33f3934166f4feb6dd088ca0d14e249fcf237a3
2014-11-08 20:08:43 +00:00
Amir E. Aharoni
6de6bdf8f2 Remove tofu detection logging
Change-Id: I2b808bae2ee19062c16d8aaff2bdf0b2986e8ad0
2014-06-26 16:02:49 +03:00
Santhosh Thottingal
8e665c5607 Allow overriding the header styles from typography refresh
Bug: 63718
Change-Id: Ifa36c6718694158c44da09ae8eb62d31ef5fd0a0
2014-04-16 04:07:36 +00:00
jenkins-bot
53a4d8b087 Merge "Allow always logging tofu detection" 2014-04-14 03:46:01 +00:00
Amir E. Aharoni
10a25c1cc9 Allow always logging tofu detection
This commit allows to log tofu detection always,
even if the rest of the webfonts library is not loaded.

By default this is disabled.

To enable it, set the variable $wgULSTofuLoggingChance
to a number between 0 and 100, indicating the chance of it
getting logged. The idea of the lottery is that even a partial
sample can be useful.

Change-Id: Ia08fe0de348b7eebfa95498a6be58ae41608ba3b
2014-04-14 09:14:14 +05:30
Amir E. Aharoni
debc1db7e6 Update the comment for $.fn.webfonts.defaults.fontSelector
Suggested by Niklas in the comments on
If68fce9c0bd281019de6e2992c856bdbe843aec8

Change-Id: I3d61b757c72504cac961d13f89f0b3df58746c7b
2014-04-01 14:50:09 +03:00
Amir E. Aharoni
0c8984e2f5 Simplify tofu detection cache
Change-Id: If68fce9c0bd281019de6e2992c856bdbe843aec8
2014-03-18 16:29:05 +05:30
Amir E. Aharoni
261542d738 Log tofu detection event
This only works if webfonts enabled (the checkbox is checked).

Change-Id: Ibbedc6a34dacb983f156d8a33afa5ab625e32f5f
2014-02-26 00:19:08 +02:00
Santhosh Thottingal
27771fdeaf Restore enableWebfonts pref and remove uls-enable
This patch restores the enableWebfonts preference, stored inside
the uls-preferences blob. It existed as 'enable-webfonts' in
the past and was removed in
If735a733717596fae03042c5e277bd538bd8501f

Each wiki can be configured to load the fonts by default
using the new global variable $wgULSWebfontsEnabled.
Its default value is true (to load fonts).

This also removes the preference 'uls-enable', recently added in
I71b70d8ee7c3cad7f49b32e5dc494ef4fc1bdb2f

The initialization of ext.uls.webfonts.js is changed as well,
so that minimal webfonts JS library code is loaded,
and the rest is loaded only if a user requests it.

Bug: 60304
Change-Id: I49e812eae32266f165591c75fd67b86ca06b13f0
2014-02-10 17:40:30 +05:30
Timo Tijhof
c6d71015ff Various clean up
Files:
* Consistently have one (1) new line at EOF
  (.gitignore, *.css, *.sh)

JSHint:
* Separate the common (general Wikimedia code conventions) from
  the local more stricter rules (nice work!).

Maintenance:
* Use simplified $IP definition where getenv is only called once.
  Based on http://git.io/ve-mw-36fc3b59-makeStaticLoader

JavaScript:
* Use the same closure in all files:
  - No need for "undefined".
  - One linebreak between license header and start of closure
    (sometimes there were 1 or 2 empty lines).
  - ext.uls.ime.js: No need for "document" (redundant in general,
    but especially as it wasn't used anywhere in this file).
  - Use "$, mw" for all ext.* modules (one of them used "mw, $").

Change-Id: Iba5dab14bbc3fbfc9f8fe96dd2d95529587a69aa
2014-02-08 00:11:50 -08:00
Santhosh Thottingal
89892f7f0e For IE, do not use salt for tofu detection
Adding salt won't work for IE since it uses a tofu with small width
for unassigned code points. From tests, algorithm without salt
should be enough for IE.

Change-Id: If39e6c49d272fa67f60c19f1af64f1fb71856bcd
2014-01-20 18:46:29 +00:00
Santhosh Thottingal
1113786330 Detect tofu before applying any default fonts
To detect whether the client can render a given string,
use a tofu detection algorithm.

If the user has an explicit font preference, do not override it.

If the user has no preference and there is a default font for a
language, see if that language can be rendered at the user's browser
using tofu detection.

If tofu is detected, apply the font.

If the element has 'autonym' class, apply Autonym font only when
that language has tofu.

Change-Id: Ib9ee9497e6bcfa7eb86f7d264e0980d8880d6b70
2014-01-20 22:20:58 +05:30
Santhosh Thottingal
61e1f95a4c Wait till rendering thread completion before applying webfonts
So that the fontfamily values are always 'seen' by the webfonts jquery
plugin. Missing this was causing incorrect behavior -overriding the
fontfamiliy from css- in random cases.

The stylesheet ext.uls.webfonts.css define font family values for
interlanguge links and autonym class. This patch make sure that that
css values are read by jquery.webfonts while deciding which font to
apply. Autonym font is supposed to be used for them. If jquery.webfonts
does not read that these elements has a font family defined in css as
"'Autonym', sans-serif", it will attempt to apply fonts as per user
preference or default fonts based on lang attribute. That will cause
applying bigger fonts.

jquery.webfonts does not apply any fonts, if an element has explicit
font family value defined by inline css or by external style sheets.

Bug: 59958
Change-Id: I2da436caa618bc2318e20e3c0492a6bf1c03e162
2014-01-13 08:58:00 +05:30
Santhosh Thottingal
d1647a9fa0 Update the local copy of preferences before saving to reflect other module changes
Change-Id: Idfd6d4f71eff9d1a1e6606b3fa91abf9ddc7b183
2013-11-22 12:05:42 +05:30
Santhosh Thottingal
dfc40c8f59 Refactor the css for interlanguage links and autonym class
Move it to a seperate css file ext.uls.webfonts.css so that the RL
modules are more granular and clear.

Also get the @font-face css for Autonym font get ready on page load
so that the font applied automatically to any future elements on page.

Change-Id: Icb76df5baedaba8ab613d665a1be923779a6b9e7
2013-11-06 20:51:26 +05:30
Ori Livneh
03e40f7215 Make base font repository path configurable via $wgULSFontRepositoryBasePath
This patch adds a configuration variable, '$wgULSFontRepositoryBasePath', which
specifies the base path to the font repository. By default, the variable is set
to its existing value, which is $wgExtensionAssetsPath +
'/UniversalLanguageSelector/data/fontrepo/fonts/'. However, adding a discrete
configuration variable makes it possible to configure ULS to use a custom URL
scheme that is more suitable for large static assets that change infrequently.

Change-Id: Idbe57072c4f3258757eb691e54cab5429cadcfda
2013-10-17 00:10:00 -07:00
Santhosh Thottingal
3fbbf05c26 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
2013-09-19 10:17:54 -07:00
Santhosh Thottingal
c793a9bd31 Pass an actual array to fontStack option to webfonts
Change-Id: Id836d7ce82e22e7d0679a5c615be014b1fce08b3
2013-08-26 09:43:00 +05:30
Santhosh Thottingal
e4cefe06fd Apply webfonts to the IME selector too
It get added to DOM after DOM is ready, and does not inherit styles
(by design)

Change-Id: I45a982b5c1c2a39718f38e77a33b79f89e460474
2013-07-08 07:42:49 +00:00
Santhosh Thottingal
8ddff0b2fc Use single entry point mw.uls.init for all ULS ui initialization
Change-Id: I485ea27deebb530eb89e4b0935eda01a5276f884
2013-07-04 17:05:10 +00:00
Santhosh Thottingal
3b3e2da332 Disable Webfonts too for blacklisted browsers
Change-Id: I9feb342b091e00ef0279333018b86045932d68de
2013-06-17 09:33:03 +00:00
Santhosh Thottingal
66e1fab8a8 Exclude does not apply if the editfont preference is default
'editfont' == 'default' means 'Browser default' font setting. We can
apply webfonts there.

Change-Id: Iff522e0016d8284dc785580e6eb3dd2967c58289
2013-05-29 15:23:34 +05:30
Santhosh Thottingal
931cb6dc22 Do not use "System" as a font
Regression from I62860f9d62538915628ad21e5d904e56bdcc9430
Bug: 48871

Change-Id: I72f5c40739928244cd402c000b48af9911c5b0c7
2013-05-28 21:15:47 +05:30
Santhosh Thottingal
f23666a15a Get the saved font using the fontSelector defined in mw.webfonts.setup
Also make sure that correct language is passed to the getFont
It was wrong in current version - UI language was passed always
(introduced in a refactoring to avoid code duplication for content
and ui language- commit: 98bb1c200c )

Change-Id: I62860f9d62538915628ad21e5d904e56bdcc9430
2013-05-27 14:43:30 +05:30
Santhosh Thottingal
164568e516 Remove document from anon cover function
jshintrc has browser:true setting

Change-Id: I30acfb63f132473611be9da4edf12c3b6ea42523
2013-05-27 13:59:36 +05:30
Amir E. Aharoni
2ef2376bfe Remove webfonts enabling checkbox and associated preference
Bug: 48535
Change-Id: If735a733717596fae03042c5e277bd538bd8501f
2013-05-27 07:59:45 +03:00
Amir E. Aharoni
4f651fa0e2 Cleanup for JSHint
Change-Id: I35d2d41640f405f4e1e94b18ddac751437a84bb5
2013-03-05 14:50:12 +02:00
Santhosh Thottingal
086ee5ff1d Fix the webfonts preferences
Disabling was not working actually. If disabled donot call
webfonts() on body. Also addresses Bug 39992.

Change-Id: I8e4d466dd9271604be6ae722c49357b192651950
2013-01-01 08:49:26 +02:00
Santhosh Thottingal
8bfe9862fa Avoid hardcoded font fallback stack
Change-Id: I07571d1390f4f68313b786d3dd1371488b6534a6
2012-11-23 09:14:20 +00:00
Santhosh Thottingal
4b09afb2ba Simplify the preference system
* Just use key,value system and drop the concept of groups
* Abstract the preferences for each type of systems(display, input)
  to have meaningful APIs

Change-Id: I25423667adf6ca181a4027cdfc4ed378f36a94ba
2012-10-23 09:59:26 +05:30
Santhosh Thottingal
2d18576bec Use default font only if webfonts is enabled.
Also contains fixes to make code jshint valid.

Change-Id: I40577acfc939512c71ffe607c14a9fe795760588
2012-10-16 16:26:59 +05:30
Siebrand Mazeland
e1a4f7f0cb After training the PHPStorm code formatter.
See https://github.com/siebrand/MediaWiki-PHPStorm

Issue remains with anonymous functions in JavaScript.

Change-Id: I2b520f8df127452acf02deb659277a6465e6ca59
2012-09-17 17:10:59 -07:00
Santhosh Thottingal
569b09712c Wrong exclude selector for webfonts
* It is not textbox. It is textarea. :(

Change-Id: Ib6b170fe09101448ccf231c5c3244b7ad3f7b291
2012-09-17 09:25:48 -07:00
Siebrand
d4a46dccd2 Merge "Fix Bug 39560 - Monospace font setting overridden" 2012-09-16 16:53:50 +00:00
Santhosh Thottingal
5b3f7cc269 Whitespace cleanup, remove deprecated methods
* Fixed many white space issues- mainly whitespace missing before
  function start paranthesis eg: function()
* Removed the deprecated live methods and replaced with on
* Added file documentation for ext.uls.geoclient

Change-Id: Ib2c8cfed1a6ff3859495e707680d5c19882a33e8
2012-09-07 16:47:03 +05:30
Santhosh Thottingal
cc1cca33d7 Fix Bug 39560 - Monospace font setting overridden
* use the exclude option from jquery.webfonts

Change-Id: I5c35c848197ceae0def6cbc31249f887b962365b
2012-09-06 11:18:11 +05:30
Santhosh Thottingal
0d73ffe09e Use sans-serif as default fallback font
jquery.uls uses Helvetica, Arial, sans-serif.

Override it to match MediaWiki's default fallback font.

Change-Id: I2d842ce5c2f9a32c781560c4583567873320e786
2012-08-25 21:47:38 +03:00
Santhosh Thottingal
5c6567adbc Whitespace, typo, jshint fixes
Change-Id: Ib22d9c4a75d1f9ce77a7db2a820dc6de9c680b09
2012-08-21 12:12:15 +03:00
Santhosh Thottingal
77515dd664 Use new jquery.uls and preferences system
Change-Id: I0e626320f494597e9125d394fb9bbbceccfff34c
2012-08-21 10:10:31 +05:30
Amir E. Aharoni
5bb5ca0118 Add webfonts reset functionality to the checkbox
Change-Id: I983d261fa018416c36ad2123b94850986beeca70
2012-08-17 11:57:02 +03:00
Santhosh Thottingal
1bc80d58ba ULS persistent preference system.
Change-Id: Ieb22e09f226e770c9935b875f4226a75ffd8c46d
2012-08-16 17:20:21 +03:00
Santhosh Thottingal
a17598ad04 More UI code
Not all functionalities are added.

Change-Id: I37007a8dedce6bcb055a9d6d79376f40868fd6dd
2012-08-15 18:25:09 +03:00