ext.uls.preferences only depended on ext.uls.common because of its
use of the uls global. This is unnecessary, and made clearer by using
require and module.exports to access it.
Change-Id: Ied2a1b560d19a18529fd766ced778c912199fa2f
As a precursor to incorporating a new language switcher in the new
version of Vector I'd like to improve the performance of loading
the switcher.
It seems most code can be deferred until the language selector
button is clicked.
This shaves around 30kb of resources off the critical path for
most users. There's potential here for a positive performance
impact so we should follow up the deployment by checking the
associated performance graphs to see if there's improvement.
Note, if the compact personal links feature is enabled
there is no performance saving for now. This will be addressed in follow
ups.
Bug: T153844
Bug: T153845
Bug: T237061
Change-Id: I740600d18859422b2f98a5ef92d0321f6e9615a2
'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
Sometimes new languages don't appear in wgULSLanguages.
For these cases, read their autonym from ULS's own langdb.
Otherwise they are not shown at all.
Bug: T198080
Change-Id: I2bef16811c6a0bdaef5db94719d7b76fe00c6e04
mw.msg() has already a parameter substitution of $1.
A separate .replace( '$1', ... ) is not necessary.
Change-Id: Ie77bddc4dfb60df36211ce821c1a6f7223cde706
- Updated versions and order of checkers.
- Some consistency updates in Gruntfile.js.
- Updates to make jscs pass.
Change-Id: I7ed93596ff383dc713bd17af2da0472be934d59d
These methods aren't designed to return "undefined" or "null".
What they return is not checked. It's assumed to always be an
object (2 of them) or an array (1 of them). This simple patch
does make sure the following code does not fail with TypeErrors.
Bug: 55701
Change-Id: I19f51bbff2209044485b9d7cef4c7654cb5f6425
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
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
* Do not load anything unless input field is focused
* Split the setup function to smaller functions
* Introduce $wgULSImeSelectors to allow configuration and avoid
duplication of selectors in two places.
Change-Id: If5a476e66681dde9f0b72f619d35ddf6255246ac
Code like $input.trigger( 'focus.ime' ); doesn't make any sense. Event
namespaces exist for binding and unbinding and are irrelevant when
triggering. However, there's a bug in the version of jQuery that we
use (1.8.3) that causes .trigger( 'focus.ime' ) to perform a native
focus and call natively bound focus handlers, but only call jQuery
event handlers bound to 'focus.ime', not handlers bound to 'focus'.
This bug is fixed in jQuery 1.9+. http://jsfiddle.net/WGy9h/3/
demonstrates this bug.
The way ULS broke VE with this went like this:
* VE initializes and creates two contentEditable divs, the
pasteTarget and the documentNode. It then focuses the documentNode.
* ULS loads jQuery.ime
* Once jQuery.ime loads, it first calls .trigger( 'focus.ime' ) on
the pasteTarget
* jQuery focuses the pasteTarget, which means a blur is emitted on the
documentNode
* In response to this blur event, VE disables the SurfaceObserver
* jQuery.ime then calls .trigger( 'focus.ime' ) on the documentNode
* jQuery focuses the documentNode, but does not call VE's focus handler
because it's bound to 'focus' rather than 'focus.ime'
* This means VE's SurfaceObserver is not reenabled
* If the user then focuses something else then focuses VE again, a
native focus event fires and the SurfaceObserver does get reenabled
Change-Id: I7c590599df4cf62418403bc1d1dccfc3c6db5fd3
upstream: http://github.com/wikimedia/jquery.ime
changes:
* Support for contenteditable, like the VisualEditor surfaces. This
support is very minimal now. Because of VE bugs on IME support, many
things are broken. But one-one keyboard mappings should work with less
issues. The UI of jquery.ime is not integrated with VE toolbar
* More input methods
- IPA-X-SAMPA by Amir
- Armenian keymaps by Aleksey Chalabyan
- Kurdish keymaps by Ghybu
- Кыргыз keymap by Amir
- Central Kurdish keyboards by Çalak
* A lot of input method bug fixes multiple contributors
* Minor UX fixes
Introduces Rangy library.
A module named rangy is defined in VisualEditor extension with more features of rangy.
Here we need only the core library. This module is loaded dynamically from
client when rangy is undefined. If VE is present rangy will be defined, the module
defined in VE will be used. ie, This get loaded only when VE is not present and
user trying to type in a contenteditable.
Bug: 49569
Bug: 50849
Bug: 50220
Change-Id: Iadad5a4e5972fbd1359847526d28e9dbbe00a7c4
Separating event logging out of ULS functionality. Event logging
is now loosely coupled with ULS. ULS core modules can emit an event
whenever EventLogging is required. The eventlogger module will act
on the event if configured.
Change-Id: I59dfcfb25c1acb85376b56239f2355ee7c4aff1e
Currently it is positioned relative to the ... menu item.
It caused weird positioning at some places.
Positioning it relative to the input field makes more sense.
lazyload option was removed from jquery.uls. Removing it from here.
Change-Id: I331051a38d7dfd97466601bfcc2facaf446d0db9
Initialize it only when first time user clicks on it
In a page like Special:Translate where lot of input fields
appearing, the previous approach was adding many language settings
div to the page.
Bug: 48211
Change-Id: If063df6782c6a51ac77ed5531dfa253c7f3ddbc4
Add the variable $wgULSNoImeSelectors to allow custom
disabling of IME in specific elements.
Add captcha input field id to the exclusion list.
Bug: 41675
Change-Id: Ib03a20c50a4f473e6a58638b85da16659268eb09