Commit Graph

13 Commits

Author SHA1 Message Date
thiemowmde
23f64d03f5 Avoid a bit of confusing code duplication in .js code
Change-Id: I0cd203e3b2f7ad2be873b92325b80cde462124a5
2024-04-29 15:55:50 +00:00
Santhosh Thottingal
6804fb06f4 Set hreflang attribute to the links
They are present in the original links in the skin, so copy them to ULS too.

Bug: T327591
Change-Id: I24566d1ff4c8c655325ec0dc601f56d73e414d5f
2023-01-23 15:58:43 +00:00
Jan Drewniak
2d9279a1f1 Accommodate Vector sticky header in menu positioning
Adds special logic to accommodate the ULS trigger being placed inside
modern Vector's sticky header, which has a fixed position and requires
the ULS menu to remain pinned to the page when scrolling.

Bug: T295391
Change-Id: Ic531dd2ae213f8221157386f79edb95bc61a8119
2021-11-29 17:26:28 +00:00
Sam Smith
3b9134f8ac launchULS: Add context to interface.language.change hook
Now that the interface.language.change hook is fired when the user
switches language using the Compact Language Switcher, we should provide
additional context to the UniversalLanguageSelector instrument.

Bug: T280770
Change-Id: I6c4ddf9738e527ac42581c9fb4924ed1d12748b4
2021-06-21 21:25:31 +00:00
Sam Smith
bc14f8fa40 Fire language change hook
As of Id345e933, we fire the language change hook when the user switches
language by clicking on a link in the languages list. In order to
compare the user switching language in the scenario above with the user
switching language via the CLS and/or Vector's language switcher, ensure
that we fire language change hook in all treatments.

Bug: T280770
Change-Id: I4a74254612557c287b16f4f086077a2637de9a2e
2021-06-10 11:11:37 +00:00
Sam Smith
49924e9ec5 Pass context to compact_language_links.open hook
Following on from I6fa966c2, fire the mw.uls.compact_language_links.open
hook with the $trigger parameter as context for clients to be able to
able to distinguish which treatment is visible to the user.

Supporting changes:

- Note that the hook is unstable next to its callsite

Bug: T280770
Change-Id: Ie4bbfea4dc5e36401df587550f466aeae5c8fdcc
2021-06-01 18:11:30 +00:00
Sam Smith
8e85f0d611 Fire hook when compact language links are opened
Following on from Icc64044d, we fire the
mw.uls.compact_language_links.open hook whenever that treatment is
opened (and not only the first time that the triggering element is
clicked).

Bug: T281928
Change-Id: I6fa966c22c738ca12bcbeb0225c03f3f8394ecee
2021-05-11 12:48:10 +01:00
jdlrobson
5278a672fe Restore suggested languages to compact languages button
The filterForCommonLanguagesForUser method checks if commonInterlanguageList
is null, but it can never be null unless it is first initialized that
way.

Bug: T282037
Change-Id: I70c3a60349693473509d9b329764dc5138930506
2021-05-10 07:14:04 +00:00
Niklas Laxström
8c835588f2 Fix positioning of input/display settings for new language selector
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
2021-03-22 12:11:39 +00:00
Niklas Laxström
03547c68e3 Improve positioning for content language selector on narrow screens
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
2021-03-17 10:29:18 +01:00
Niklas Laxström
dd8842517e Change ULS content language selector positioning
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
2021-03-16 22:36:18 +00:00
Niklas Laxström
4387bb9d61 CompactLinks: Better handling of opening links to new tab/window
* Check for any of Shift, Ctrl or Meta
* Only do it for links
* Support both mouse and keyboard

Change-Id: I0b331b802e1d96ae0e0511746d6b42663db924b1
2020-11-16 14:51:47 +00:00
jdlrobson
e3569d32a7 Separate compacting of language list from launching of dialog
This refactor will allow us to separate these two functions so that
the modernized version of Vector can avoid loading the compact
language list.

Changes:
* `options` is now optional to the CompactInterlanguageList constructor
The max value is already defined in
CompactInterlanguageList.prototype.init
* this.interlanguageList is now initialized inside the constructor
Previously calling CompactInterlanguageList.prototype.createSelector
or getCompactList before calling init would throw an exception.
This will be important in I0518ecdf402ebf5eb6bad2c430f6462322c0d8e1 when
the responsibilities of wiring up the button and compacting the languages
is separated.

Bug: T264824
Change-Id: I9606df30a050d0cdaf7add2deff849cd5b895bab
2020-11-05 08:44:06 +00:00