Commit Graph

80 Commits

Author SHA1 Message Date
Siebrand Mazeland
315cf739bc Update formatting
Change-Id: Iaee2ab4f36d3a0dce143c62965ab29de504b31ea
2013-10-09 15:40:39 +02:00
Amir E. Aharoni
7330295ce2 Use the old way of checking browser support for MW < 1.22
Bug: 52322
Change-Id: I346c1119b2ae841b3dbb2e7b8a5a2d924269b150
2013-08-22 09:32:59 +03:00
Niklas Laxström
ec518a03b4 Provide mw.hook when not provided by older MediaWikis
Change-Id: I8d0826722064551cc46be26215ffb954f39babb0
2013-08-22 09:46:07 +05:30
Amir E. Aharoni
a3bca89a42 Implement language-selection-method event
Change-Id: If2d207f8a221c8f2a560b1399ad69a3032b2064b
2013-08-20 05:16:35 +00:00
Santhosh Thottingal
7649b47f5c Followup I59dfcfb25c, language change work with out event logging
In I59dfcfb25c, for logging events when page is navigating away, we
used callbacks with mw.hook. That is wrong approach. If event logging
is disabled those callbacks will never called: it broke language change
and all use cases which navigates away from current page.

Event logging should not interfere with any ULS functionality. If ULS
functionality depends on callbacks from event logging, it is wrong.

In this patch, we give a small time window to make sure event logging is
fired, but we won't wait for its success or failure.

If eventlogging is disabled, this time window does not exist.

Change-Id: I0b7d9d8b9d1d01b99422010596ebfa80b2589d04
2013-08-19 10:13:56 +00:00
Santhosh Thottingal
117cc5bf46 eventlogger module for ULS
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
2013-08-15 17:08:15 +03:00
umherirrender
92a021e147 TypeError: window.navigator.userLanguage is undefined
This can happen, when the user deletes the pref User languages from the
browser.

Change-Id: Ieaf783fbae113724704e2cce2e166e56935e8ce1
2013-08-12 18:14:49 +00:00
Siebrand Mazeland
8b1e6b911b Fix incorrect documentation
Change-Id: I646a5ccb2ff9e3e7f8871b4e55b55ec881c4301d
2013-08-05 09:23:19 +02:00
Niklas Laxström
425709cdb3 Log language-change for interface language
Change-Id: Icf8067078043be0f3a1c4f2c645835d88414b616
2013-08-02 13:43:18 +00:00
Niklas Laxström
8e1726e745 Log login-click event
Our logEvent wrapper now returns jQuery.Promise too.

Added timeout out parameter to our logEvent wrapper. Unlike
GettingStarted, I didn't create separate logUnlessTimeout
function.

Chrome apparently emulates enter on links as a click, so
this catches enters, left and middle clicks, but not if
the link is opened via right click menu. Might not catch
enter in all browsers.

Change-Id: I4b0eb56e7c7d6e56f8fd99d536f9b60b94a2e09e
2013-08-02 13:03:15 +00:00
Santhosh Thottingal
d92c75518b Delay loading of language settings javascript
Load them when language settings is opened using cog or ULS icon click

Change-Id: I472497c549bff0fd578156fa0113dae2d6a7a7fb
2013-07-26 15:55:07 +03:00
Santhosh Thottingal
2159822145 Update jquery.i18n from upstream, use its default message store
In Iddef0805ab a custom message store was introduced for ULS, but
there were updates in jquery.i18n that allows us to use default
message store again.

(see https://github.com/wikimedia/jquery.i18n/pull/40)

Change-Id: I86cb7a44efa83e5811824cd1104c6be11b1e2925
2013-07-23 15:32:45 +05:30
Santhosh Thottingal
6ac12b6584 Better blacklisting of browsers using $.client
Change-Id: Ibc4d15008671700374fdc1e33d2e85f9899f9b35
2013-07-21 19:36:12 +03:00
Santhosh Thottingal
28154206bf Remove jquery.i18n code that the ULS extension overrides
Instead of using the whole jquery.i18n code, use only required parts
that are not customized in MW ULS. For this define a new RL module
ext.uls.i18n.

Also refactor MW message store for jquery.i18n.

Change-Id: Idda9fe505428ade409d937314d7216ebb4232c36
2013-07-15 13:28:12 +00:00
S Page
234692ba6c Stop uls-previous-languages cookie varying by path
Set path to '/' otherwise you get one cookie for /w and another for
/wiki locations.

Bug: 49155

Change-Id: I4756fdf06b0580b5b57a41cd771b94723bb5cdbf
2013-07-12 13:17:31 -07:00
Ori Livneh
1603fd97a8 Use $.Callbacks to queue events until EL has loaded
This patch provides a workaround for bug 50746. It modifies mw.uls.eventLog so
that it does not directly attempt to log events but instead adds them to a
$.Callbacks('memory once') queue. If EventLogging is not enabled, the Callbacks
object never fires. If EventLogging is enabled, it is requested via
mw.loader.using, but only after $(document).ready. This prevents ResourceLoader
from attempting to inject it via document.write. The mw.loader.using callback
sets the schema defaults and calls .fire on the Callbacks object, causing the
EventLogging event queue to be processed. Tested on Opera 12 and Chrome 30 on
OS X.

Bug: 50746
Change-Id: I89cf06990ee85e70698149b4812d7900218e4fb4
2013-07-09 01:48:06 +00:00
Siebrand Mazeland
b5b6aa15f4 Simplify if-statement
Change-Id: Icc91ed0650297935538a6398f4a540899b677317
2013-07-08 14:29:00 +02:00
Santhosh Thottingal
0145529035 Documentation for mw.uls.init
Bug: 50858
Change-Id: Iada465a8228955bf24f7a4628bf2288b3fe0c0ac
2013-07-08 12:40:49 +05:30
Santhosh Thottingal
3d6e4a007f jquery.i18n message store for ULS
Bug: 49935
Change-Id: Iddef0805abbf9b4ff0e606fc311c57e9dfa7107d
2013-07-08 06:55:21 +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
jenkins-bot
ea50b8216c Merge "Allow loading redirects in Common languages" 2013-07-04 13:00:49 +00:00
Amir E. Aharoni
b6698228d4 Allow loading redirects in Common languages
Bug: 49847
Change-Id: Ia2380a77ebad789a2f70a7a88a1bb9970199b1c5
2013-07-04 12:55:39 +00:00
jenkins-bot
7b9f4c863c Merge "Prepare ULS for EventLogging" 2013-07-03 10:42:43 +00:00
Niklas Laxström
4543d43dda Prepare ULS for EventLogging
This change introduces a new configuration variable, $wgULSEventLogging. When
set to true, ULS will register an EventLogging schema module for
<http://meta.wikimedia.org/wiki/Schema:UniversalLanguageSelector>,
making it possible to log events using `mw.uls.logEvent`. When false, the
schema module is not loaded, and `mw.uls.logEvent` is a no-op.

Change-Id: I7139e67cc2f830a6b4b3c8ff1fc72dfcdec9a699
2013-07-02 12:47:22 +00:00
Santhosh Thottingal
2776a28d58 ULS i18n performance fixes
* Since there is an API to load the i18n json files, avoid sending
  list of localizations to client. Previously this list was used to
  avoid 404s for json files. Now API takes care of it. Remove the
  caching for this list too.

* Preload the i18n files on document ready. This avoids delay in
  initializing IME or ULS window after fetch i18n from server.

* ApiULSLocalization can serve messages for all namespaces known if
  namespace parameter is not set

Bug: 50391
Change-Id: I6b848da35f57353790bf460983cdf19a11bb238a
2013-06-30 18:08:19 +05:30
Siebrand Mazeland
9ac9163ecf Simplify return statement
Change-Id: I6a7a5c2aae4ead9c14208f67abf9f82ff71e165d
2013-06-17 16:39:03 +02:00
Santhosh Thottingal
f0b3e6524c Cleanup
Minor whitespace, coding convention cleanup

Change-Id: Ibb10ce64ad4c35bfd6f924665243961c80b81714
2013-06-11 10:24:13 +05:30
jenkins-bot
c3ee636c17 Merge "Hide ULS trigger from unsupported browsers" 2013-06-04 10:34:15 +00:00
Niklas Laxström
0c53c38304 Hide ULS trigger from unsupported browsers
For position=sidebar, the dummy "in other languages" section is
visible in the same manner as it is to browsers without JavaScript.

Bug: 49028
Change-Id: I931a2e904b37c754f63bfe5feb2d98bfe6c2747b
2013-06-04 10:26:57 +00:00
Santhosh Thottingal
ec0ea0407d Introduce Api for loading jquery.i18n json files
To avoid CORS issue with old browsers

Bug: 45958
Change-Id: I37638e06f21ab573c9ce37a4e9fb20bc763ac98f
2013-06-04 10:21:32 +00:00
Santhosh Thottingal
d1988bb3c7 Blacklist old browsers
Blacklist browsers not supporting boxModel

Change-Id: I19bd7e3dbaec2454d8512e5d6f394c21fb6ce5cd
2013-06-03 08:51:04 +03:00
Santhosh Thottingal
540ada592d Access i18n json files from same domain for IE8 and IE9
IE8 and IE9 does not support ajax with CORS. So make sure they
load json files from same domain.
See http://bugs.jquery.com/ticket/8283

Bug: 45958
Change-Id: I8442a5efbd4ca7db0f0a407ff94772ea8e213b29
2013-05-27 09:54:03 +00:00
Santhosh Thottingal
bf270812f5 Fix all jshint errors
Change-Id: Ib8fb350132bb34c1e063eb644af5aeff833f95e8
2013-05-20 15:07:42 +05:30
Niklas Laxström
60242e2c53 Use wmf geoip by default
Unlike freegeoip it also works with https

Also moved the getCountryCode function to init, as it should be
available regardless of whether we load the optional geoclient
module.

Bug: 40965
Change-Id: Ia18130890d09f86a93b5b61f7da7c48fcfa480c7
2013-04-28 14:25:26 +03:00
Santhosh Thottingal
453912fdf2 Provide a base ULS RL module and seperate UI language selection
ULS is disabled for anonymous users on WMF projects. But to provide
rest of the features - apis, language database, language selection for
many use cases, we need to provide a minimal ULS. RL module
ext.uls.init does that job now.

For using ULS as interface language selection tool, new RL module
ext.uls.interface is introduced. That will add UI language selection,
webfonts, ime features, if enabled.

Change-Id: I796a7c9cce0de42bf8aa06b26e383e0075dbe1dd
2013-03-26 07:20:01 +00:00
Amir E. Aharoni
4f651fa0e2 Cleanup for JSHint
Change-Id: I35d2d41640f405f4e1e94b18ddac751437a84bb5
2013-03-05 14:50:12 +02:00
Amir E. Aharoni
c81c2170c3 Add redirect from als to gsw
The 'als' is used in a non-standard way in MediaWiki -
it may be used to represent the Allemanic language,
the standard code of which is 'gsw', while 'als'
is ISO 639 3 refers to Tosk Albanian, which is
not currently used in any way in MediaWiki.
This local fix adds a redirect for it.

Also add a test to check that it works correctly.

Change-Id: Id904cab129eb58f8b96ce493e77d21da7c44ea8b
2013-01-07 17:54:02 +02:00
Nikerabbit
e7d1965f7c Merge "Whitespace" 2013-01-02 07:47:55 +00:00
Amir E. Aharoni
688e15f06d Whitespace
Change-Id: I9946260c314600a2147d4f04cdb4da79aa51985e
2012-12-31 21:57:31 +02:00
Amir E. Aharoni
9bb13f2c4e (bug 42384) Don't show the tooltip if the ULS panel is on
Change-Id: I199d2b0c84f2b682d7b698faff443504207ac466
2012-12-31 20:14:07 +02:00
Santhosh Thottingal
e3d8189162 No need of IME in language search bar of ULS
Change-Id: Iab5c08f3edd5047200819fa3cde95bfb5d78db35
2012-11-23 09:57:41 +00:00
Siebrand Mazeland
57a30afc55 Fix some JSHint issues
Change-Id: Iecb1f2d2d326260075755070882b7706c1ae7db4
2012-11-12 07:51:39 +01:00
Fomafix
14aef6d7e1 Fixed the bug 42013 - 'class' as property name
Applied the patch given in bug report

Change-Id: I01ded82bd426edf630561b013d7cafe46130d697
2012-11-12 00:28:35 +05:30
Siebrand Mazeland
98d7a8d9f9 Reformat code.
Change-Id: Ic0a5b37fa01b4a13023e66af0518ea94919ee880
2012-11-11 10:34:10 +01:00
Niklas Laxström
3c9e7249a8 Geoclient fixes for https and WMF
* Don't call freegeoip on https, it wont work
* Use Geo instead of GEO like WMF

Change-Id: I9ebdd9f3518e15e70122a9c8c8d64240d5e44c5b
2012-11-10 07:15:07 +00:00
Siebrand
cb78d33a0c Merge "Update jquery.i18n from upstream" 2012-11-01 12:00:16 +00:00
Niklas Laxström
25889d77b6 Avoid constructing html with concatenation
Change-Id: I6104ade6a9f9209df921577cd04d7fe9487e65d9
2012-11-01 17:26:10 +05:30
Santhosh Thottingal
63d98b05ea Update jquery.i18n from upstream
Change-Id: Id533eb69c2c192f2cb42749214e5bb23d379e404
2012-11-01 11:47:59 +00:00
pginer
833f8f63d6 Fix to reduce the ammount of settings text
Settings text on the main ULS view can grow longer for some languages running out of space.
This change does the following to avoid that:
* Removes setting section explanations and shows them as a tooltip on hover.
* Adjusts style for adjusting space between setting sections.
* Keyboard image has been adjusted to match the display settings image.

Change-Id: I42ec5cb35b3d4df977a6eff28ad55891f4135356
2012-10-31 18:37:06 +05:30
Santhosh Thottingal
427c94dbbf Avoid 404s in non-localized locales
* Update jquery.i18n - if messageLocationResolver returns false for
  a locale, no server hit will be attempted
* Refactor i18n preparation code to a new method
* Use the ULS RL hooks to find out to which locales it is localized,
  pass that list to js to avoid hitting server.
* Also avoid directory scanning in each request by putting
  the locale list in cache

Fixes Bug 41454

Change-Id: I0c923b35db01b884e2dd55873dd5fb7384434645
2012-10-30 13:53:47 +00:00