In development environment, ev.currentTarget is the button.
In Beta Cluster, however, once ext.uls.mediawiki is loaded,
it is now the document (the event has bubbled up). I do not
know what causes the difference, but we can use the target.
Bug: T276255
Change-Id: Ie4c425510293a6f2ce81e4bf4a353f2c8d86d412
Small dialogs were resizing after loading when display and input
setting buttons were added to it. Now delay showing the dialog until
they are loaded.
Bug: T276248
Change-Id: I7033903737afedbd4be908c84d07656c468ce801
Unrelated behavior change: ULS language selection dialog is hidden while
display or input settings is open.
Also simplified dead code in addDisplaySettings.
Bug: T276248
Change-Id: Ia91a2b83e7ad4072016649230e2376b0793cbbff
When interface language selector is at the top, the undo tooltip
may appear under new Vector search box and other user tool links.
Change-Id: I36ac01511e590896afb0382c17ae90d01ba57314
Reported in
https://github.com/wikimedia/jquery.uls/pull/383#pullrequestreview-613761459
Instead of checking the left edge of the trigger, check the midpoint.
This is more reliable and does not cause the dialog to incorrectly
swap sides in narrow screens in LTR direction,
This patch does not touch the compact language links variant.
Bug: T276248
Change-Id: Ic734abb7b350852f8c5c10ced8456bf146df62d8
New Vector introduced a new content language selector trigger. This
code was hardcoding a behavior that works for compact language links
but is not so appropriate for other uses in the skin, which are out
of our control.
This patch aims to be a minimal change to allow other kinds of
behavior without changing the amount of tech debt. This changes
the default ULS dialog behavior to match the requirements shown
in the task. Compact language links specific behavior is retained but
only enabled for the compact language links trigger. The behavior
is chosen depending on the value of isUsingStandaloneLanguageButton().
For future changes, I propose that mw-interlanguage-selector class will
not have any styles attached to it. Whoever creates the trigger would
be in charge of styling it. Ideally that code would also define the
positioning and other behavior, but it is less clear how that can be
abstracted in a nice and decoupled way.
Bug: T276248
Change-Id: I52da6c2f5a1f25d64f322a3c8f6105da3b244b66
Changes to comments, naming and code to increase clarity of the code
and explain better what it does and why. No change in behavior.
Change-Id: I998fcfd620c2ee737618c3ab8f41fb6dfdd2c99a
Translate's pagetranslation.uls module needs to override the action
that happens after language code is set. Currently it uses setlang
url parameter, which (no longer) works with Special:MyLanguage.
After this patch, it can use mw.uls.setLanguage and does not need
to reimplement it's functionality.
Turned mw.uls.changeLanguage into simple utility that calls
location.reload when the promise is resolved.
Change-Id: I9a648b146188dd252c239085bbe276165dc5f393
This is updated version of 61f1a9863a
which was reverted due to compatability issues which are no longer
present.
Change-Id: I05333ddc288171b6d867dce8a1d3efc1e1450e0a
Introduced in I740600d18859422b2f98a5ef92d0321f6e9615a2.
We need to prevent the default action (navigating a link) so that
our custom code has a chance to run. Before it was synchronous so
it called location.href before default action had a chance to execute.
When it was made asynchronous, the default action got executed before
our custom code.
Change-Id: I292f99aa5f5ff536d8197174c317018462685866
Introduced in I740600d18859422b2f98a5ef92d0321f6e9615a2.
When onSelect was called for the new language, it set dirty to true.
Then the, now delayed, render function reset the dirty status to false.
There is no need to set dirty to false on render, so moved it to the
constructor.
Change-Id: Ibfa23f545c9d358e7e03fb299c238182ea449d7c
These are disabled by default and on production. They are only enabled
in the beta cluster, which is not needed.
Change-Id: Ifa847fd8a1f3d7d2695a7c1c4a1a93f136091604
I noticed some language names are not searchable. I made it so
that autonyms from language-data are added to the search index.
Without this, languages not present in Names.php or in the CLDR
extension are not searchable via the API except by language code.
Change-Id: I51a9e2eb15fb40963e6edbf1db76133d84de7291
Only store reference to the element, where they can easily be read
when needed.
Also removed one unnecessary use of `self` as an alias.
Change-Id: I39fa897002037a6d6478a3fb1f40ac60833e392e
There is a new service called ipstack, but their free option does
not support https, so by default there will not be any geoip service.
Bug: T199106
Change-Id: I9f4e59d736b50760f50c6214e2d191e72406d0d9
Notable changes:
* First query global preferences to detect if global language setting
is in use. If there is no global language setting, or if GlobalPreferences
extension is not installed, it will fall back to changing the language
as usual. If global language setting is found, it will add an override
instead.
* If a local override is added, the undo tooltip is different and links to
the global preferences page. The task design shows mw.notify style popup
located on a bottom right corner (LTR). I deviate from the design and
re-use the old undo tooltip with a different message instead, for
consistency. The message is chosen depending on whether local storage
value `uls-gp` is set to '1' (set in mw.uls.changeLanguage).
* I removed one use of deprecated mediawiki.api.options module. One other
use still remains.
* I changed tooltip text generation from html acrobatics to use
mw.message.parseDom. Because of that I also had to move the click handler
to avoid buildup of click handlers.
* In message documentation fixed acronym -> autonym.
Bug: T198206
Change-Id: Ie2ed792e222be919522bd1cdea98042515a0619d
Both 1.1.4 and 1.1.5 fail. Because of the dotdotdor issue it is
impossibly to know whether the 1.1.5 failures are legitimate.
Change-Id: I813d4767c27ef16bd6fc67577fe722548406cce2
Since we added .i18n() call to upstream, it started overwriting
our text from the default data-i18n. Change data-i18n instead.
Bug: T188860
Change-Id: Ib7e9fb9590ace9c2a4ce2e2afb5a740ae4346be6
It's now possible to tab to "display settings" and "input settings"
and access them with enter or space. Also escape can now be used
to close the settings screen.
The ULS trigger in interlanguage position is a button to get
native accessibility features.
Also removed `mw.hook( 'mw.uls.settings.open' ).fire( 'uls' );` as
it didn't seem very useful and there wasn't immediately obvious
place to put it. The existing click handler could be removed because
the settings dialog themselves place event listeners.
The patch is a bit longer than strictly necessary because the CSS
was mess (rules in different modules, poorly organized) and I had
to bring related rules together to understand them.
Bug: T52793
Change-Id: Id37c2665b1c97b81ef57be27a1abfae0db6b34d5
There is actually a magic word and a parser function. This checks
if all links are excluded (*).
Bug: T186590
Change-Id: Iaf860683f6e3bc9b00d5e8f19b8be7c0f1b20f5b
I was getting the following warning message:
npm WARN grunt-stylelint@0.8.0 requires a peer of stylelint@^7.8.0 but none was installed.
Change-Id: I5e671c5d89d315c3ee691dacda4c85ff3ff710a2
* Store prefixes and infixes separately in the data
* First match language code, then prefixes, then infixes
* Try to use suggestion either in user language or autonym first
* use formatversion=2 to avoid escaping Unicode
Using Language::fetchLanguageName might can have a small
performance impact. On the other hand there is now check
to skip languages we already found, avoiding some fuzzy
matching.
This is in a preparation for a change in jquery.uls to use
the search API more, while trying to reduce the amount of
weird autocompletion suggestions we show to the user.
Bug: T73891
Change-Id: Id94c5352d9a591969bf90144d1d2d5e758d08301
* Translation updates, including new languages
* Improved styling to match WikimediaUI style guide
* Improved handling of "no search results"
Change-Id: Ic74025dad4b81f0377af217ed6ba2f88264dca2f
This should fix the unparsed plural syntax shown in the sidebar
in the Wikipedias (only in production).
Bug: T148117
Change-Id: Idcbecd606e11d23a341421224b3f21fe03bf509e
Especially on Special:CX, where page layout changes soon after load
(for example scrollbars get added when more content loads), the tooltip
would be positioned incorrectly. Now it is more likely to be positioned
correctly, and will get re-positioned again if it is shown again after
being hidden.
Bug: T145483
Change-Id: I527fc62b196e55101950cffcc6ec43926f63aa4a
* Brings new design improvements.
* Also removed some local style overrides in the extension that are
no longer needed and added new ones.
* Localisation updates
Bug: T138235
Bug: T137870
Change-Id: Iecec180ca01a40f0333e5b75914dcdb0c390f6b8
The tipsy class has CSS styling from the tipsy module which do
not work with the OO.ui.PopupWidget. If the tipsy module gets
loaded for some other reason, the display will be slightly broken.
Fixed by renaming the class.
Bug: T96648
Change-Id: Ib0e11098506560f4de1c6402b8c980ad3ebc3879
Create a function for this purpose and use it everywhere where
language code is read from an attribute.
Bug: T143867
Change-Id: I01b6f04dd9185a9f4ab565e96ca5a6a34e4ea14a
Current provider is going away. Switching to another free provider.
Implemented caching with a cookie for speed and to avoid generating
unnecessary load on the service.
Bug: T143542
Change-Id: I191d69a6fb8abe9556f475dfef1368dc9f96b846
* Remove scrolling from positioning code
* Make sure that any calculated default positions also apply to
* modules by updating this.top and this.left.
Bug: T143074
Change-Id: Iffc49674abcca8a8c4a600569a05db1314fae3f6
To keep the average and maximum bucket size low, I made codepoints
< 4000 more granular and code points >= 4000 less granular. This
could be tweaked further for sure to reach more even sized buckets.
Bucket stats before:
- 773 buckets
- smallest has 1 entries
- largest has 1804 entries
- median size is 66 entries
- average size is 45.394566623545 entries
Bucket stats after:
- 698 buckets
- smallest has 1 entries
- largest has 1792 entries
- median size is 16 entries
- average size is 50.272206303725 entries
Change-Id: Id62d93658117564b05294c2fe36ca7c182784859
Serialized format is no longer in style for data. PHP files can
take advantage of AutoLoader and caching so they can even be faster
than serialized files. As side bonus we can have readable diffs
for updates.
Only downside is that the file generation takes about ten lines of
ugly string manipulation.
Change-Id: If09704d1172daa13c72a308814534cac1fe9899f
With this MEÄNKELI with typos=1 finds results.
Updated test case for lowercased result. Renamed variables in test
file for clarity. Updated the default value for MW_INSTALL_PATH to
work with the default layout.
Change-Id: Id93c84d308705f55b4d2378fc8c7b7f243e1b53f
So that it is loaded for compact language links. The ext.mediawiki.uls
module is starting to look very empty now can could be removed easily
in follow-up. ext.uls.init depends on jquery.uls.data so this is safe.
Bug: T139949
Change-Id: Icac10f073e122284723c48782c2a1cf7f10b45ec
Not outputting language codes with proper casing should
be solved upstream in jquery.uls.
Bug: T139795
Change-Id: Ide81c76135b23a031f1f09a33462e767e57a50b0
* Localisation updates.
* Renaming of common languages to suggested languages.
* Addition of language fax.
Bug: T137867
Change-Id: I72f700f562107ad1bfbe797329f4900c191bca20