Commit graph

19154 commits

Author SHA1 Message Date
jenkins-bot b4ac8c45ce Merge "Make "templateParameterClick" event similar to "choose"" 2021-09-13 13:24:37 +00:00
Thiemo Kreuz 48283d5f19 Avoid referencing methods via strings
Should be a bit more obvious, I hope.

Change-Id: I024ac1e2d68bfe4c5af733c48967af4c51f336c1
2021-09-13 14:26:16 +02:00
jenkins-bot 45659e2c60 Merge "Fix "add parameter" widget not being focused on click" 2021-09-13 12:25:50 +00:00
jenkins-bot ad27a6d7bc Merge "More assertions for ve.ui.MWTransclusionOutlineParameterWidget" 2021-09-13 12:24:33 +00:00
jenkins-bot 0cfd298d18 Merge "Fix and test page name splitting code in template dialog" 2021-09-13 12:23:17 +00:00
jenkins-bot 1e4ef48393 Merge "Use OOUI 'classes' property instead of .addClass()" 2021-09-13 11:46:19 +00:00
jenkins-bot bb22a6e4bb Merge "Add tests for ve.ui.MWParameterPage class" 2021-09-13 11:45:00 +00:00
Thiemo Kreuz e62b3fecbb Optimize .selectPartById() to fire less events
There is no point in firing this event when noting changed.
This should reduce flickering and some of the issues described
in I97d77f4.

Change-Id: I7c387889a4a33dac5053cec11a0641d358020b56
2021-09-13 13:42:20 +02:00
jenkins-bot 844606d573 Merge "Fix space bar on top-level template parts loosing focus" 2021-09-13 11:03:20 +00:00
jenkins-bot ebe31b5a5e Merge "Better colors when clicking/pressing elements in new sidebar" 2021-09-13 10:43:29 +00:00
jenkins-bot 4e83e7c722 Merge "Hide content pane on narrow screens when sidebar is expanded" 2021-09-13 10:39:05 +00:00
Thiemo Kreuz e6f240c263 Better colors when clicking/pressing elements in new sidebar
This just copies the colors from the old sidebar.
* When hovering with the mouse (without click/press) the background
  is gray, and the text black. Relevant for readability via WCAG
  AAA.
* On click/press the background is blue (slightly darker than a
  selection), and the text is dark blue as well.

As noted in
https://docs.google.com/document/d/1V0rXMPr6upNjHF9AkROx4R8IF1LDZUzrG4K6oWT08sU

Change-Id: I443045b55826ef390688b32616dfdcfdc6555eb3
2021-09-13 11:07:22 +02:00
Thiemo Kreuz 6cb287c225 Fix space bar on top-level template parts loosing focus
As a reminder (not part of this patch): Pressing enter on the name of
a template should select it, and jump to the content area on the right.
Pressing space (that's what this patch is about) should select as well,
but not move the focus.

The best way to test the behavior is with a multi-part template.

Bug: T285323
Bug: T289043
Change-Id: I97d77f43b231696f92ba6758a6b8feac34e02e6d
2021-09-13 10:34:28 +02:00
Translation updater bot 273cfbdd61 Localisation updates from https://translatewiki.net.
Change-Id: Ic670bf1485047ea92ea9f5e6df6d70bb9d16f1bf
2021-09-13 08:30:34 +02:00
Bartosz Dziewoński a01c9cc6e7 Update VE core submodule to master (eaa1e32b5)
New changes:
17123a8dd TreeModifier: Ignore .internal.generated when validating linear data
b6a4a0e3f Fix removing empty annotations when the entire paragraph is removed

Bug: T264027
Bug: T290625
Change-Id: I967924cb726f7ae2c590d59f7374b5fc2471e26e
2021-09-12 20:21:09 +02:00
Thiemo Kreuz aa556e3ef8 Update and fix all @param config and @cfg documentation
I tried to review all of them. Some of the changes I did:
* Make sure the `config` parameter is not marked as optional
  when it is not.
* Make sure default values are mentioned.
* List individual `@cfg` options when it makes sense.

Note I don't list all options a class could accept (e.g. via all
its parent classes and mixins). That's too much. Instead I checked
how a class is actually used and list only these options.

Even then I don't list everything, e.g. unspecific options
like "classes" that can be used pretty much everywhere.

Change-Id: Idf4fbe1dc3608ace277df9e385f2f140df3a2f50
2021-09-12 12:35:27 +00:00
Gergő Tisza 986e5ab4d2
MWInternalLinkAnnotation: Make test work with both fragment modes
Avoid breaking the test if $wgFragmentMode has html5 first.

Bug: T186267
Bug: T290464
Change-Id: I0c846173c06698eb039ed289ad202fd3539e61a9
2021-09-11 17:41:22 -07:00
Thiemo Kreuz 338a800837 Merge "templateParameterClick" and "choose" events
We don't need to distinguish between these any more. Both are
"active", i.e. both focus the widget on the right side of the
dialog. Sometimes the "choose" event is fired to actually add
or remove a parameter. Sometimes it's fired, but the state of
the parameter doesn't change (for whatever reason, i.e.
because the parameter name was clicked instead of the
checkbox). There is nothing to do in this case, except for the
focus change.

Change-Id: I3c7c0c81a075ccff76eda0a4fb2aa1ac7be3cec5
2021-09-11 17:47:08 +00:00
Thiemo Kreuz 1493aa7a35 Split focus handling from add/remove parameter events
* The template model fires an "add" event. Listeners don't
  automatically steal the focus any more.
* Instead there is a separate "focusTemplateParameterById" event
  fired from all relevant places that add a parameter.
* The "remove" doesn't steal the focus any more.

Bug: T285323
Change-Id: I93f17727524bfbcf6f11647a6c2441781337c4cc
2021-09-11 17:47:02 +00:00
Thiemo Kreuz cdc168d32a Use OOUI 'classes' property instead of .addClass()
The 'classes' property is a OOUI interface. Personally, I like
this code style better.

However. It appears like the code style in this codebase is
somewhat mixed. It looks like the top-level .$element always
uses .addClass(), while other code uses the 'classes' property.
Should we unify this?

Change-Id: I9ecd75e22d00f06ffd707f766dc9e8d748ff9a37
2021-09-11 17:41:45 +00:00
Thiemo Kreuz 22757fa901 Fix and test page name splitting code in template dialog
In JavaScript .split() behaves different, compared to PHP. In
PHP the last element contains the rest of the string. In
JavaScript the rest of the string is discarded. The limit acts
as if the array is truncated. That's why we can reduce the
number in

  'foo/bar'.split( '/', 1 )[ 0 ]

to 1, as we are only interested in the element "foo".

The same code in the other class is currently not covered by a
test. But changing it accordingly should be obviously fine now.

Change-Id: I20c27d480ddb1799df9eb1e5bc119b724e80653d
2021-09-11 17:40:39 +00:00
Thiemo Kreuz 3b59d7ce0d Add tests for ve.ui.MWParameterPage class
Change-Id: Ie09ef4745c006822cc66e845cb16f54d62fa3b7e
2021-09-11 17:39:17 +00:00
Thiemo Kreuz f14eba17ee More assertions for ve.ui.MWTransclusionOutlineParameterWidget
These additional assertions cover previously uncovered features.

Change-Id: I6708ce2ef965f9ad81ec3d0aee163b6f2093344c
2021-09-11 14:17:35 +02:00
Thiemo Kreuz 7c872def9f Fix "add parameter" widget not being focused on click
When I try to click the input field, the expand/collapse button
is focused instead.

This also fixes a copy paste mistake in this class.

Change-Id: If9ab340711fbe7d88845c008360fde5df7059df0
2021-09-10 21:16:42 +02:00
Thiemo Kreuz 3f97610e6e Add tests for .containsValuableData() methods
Bug: T272355
Bug: T290554
Change-Id: Icebf7139ed64cdad49522f7b082d1925a9a4a21b
2021-09-10 15:38:28 +00:00
Thiemo Kreuz 9b5438cba2 Hide content pane on narrow screens when sidebar is expanded
Before, the content pane (the right half of the dialog) was moved
to the right, outside of the visible viewport. But it was still
active and could i.e. be navigated to via the tab key. Only truly
hiding it solves this issue.

Bug: T274554
Change-Id: I8925a9cca0099528aca8e98452816b5f9dd23a76
2021-09-10 17:34:05 +02:00
Thiemo Kreuz ec526ea64f Make "templateParameterClick" event similar to "choose"
The original idea was to make the interface as narrow as
possible. However, it turns out it's better to model the
"templateParameterClick" event more closely after the "choose"
event.

This is split off to make reviewing the following patches
easier.

Change-Id: I271f576c6cd756cecfc6cb1fd64810f8da5c3575
2021-09-10 17:19:19 +02:00
jenkins-bot 9ef1b22b37 Merge "Clean up post- OOUI fix" 2021-09-10 14:37:12 +00:00
jenkins-bot 843aa24efd Merge "Don't allow users to add parameters that contain forbidden chars" 2021-09-10 10:14:53 +00:00
jenkins-bot 022db20850 Merge "Add input validation to the add parameter page" 2021-09-10 10:14:50 +00:00
jenkins-bot 2b7b96bbdc Merge "Remove invisible tab target from template dialog sidebar" 2021-09-10 10:00:17 +00:00
jenkins-bot 0ba3a37b17 Merge "Fix term in valuable data test" 2021-09-10 09:48:43 +00:00
Adam Wight f8cf9e9b8e Clean up post- OOUI fix
Pure cleanup, doesn't change behavior.

Change If8da5ae85dff63c34 included in OOUI v0.42.0 tracks invisible
controls, so it's no longer necessary to maintain persistent class
variables pointing to the buttons.

Also simplify repeated logic to make it clearly exclusive.

Bug: T290554
Change-Id: If9b6404d7061999540515645fa8e50b9a21f5a21
2021-09-10 09:39:07 +00:00
jenkins-bot 38b0791ed8 Merge "Fix missing and flipped template dialog help messages" 2021-09-10 09:37:38 +00:00
Adam Wight ea8b90b015 Fix term in valuable data test
We want to assert that value is true-ish, and that it doesn't equal a
default or auto string.

Bug: T290554
Change-Id: I454dda8d0085a8d3898a0d5b1a3ecc6dd7c2c9e4
2021-09-10 09:25:40 +00:00
Thiemo Kreuz 30d4096aeb Remove invisible tab target from template dialog sidebar
The list of parameters should remove itself from the list of
possible tab navigation targets when it's empty.

Note there is no way to remove elements from the parameter
list. That's why we don't care about "remove" or "clear"
actions.

Change-Id: I8b1215117e0ddc94f787d173e9bea6f7567d9671
2021-09-10 06:42:22 +00:00
Translation updater bot aa0a3fb081 Localisation updates from https://translatewiki.net.
Change-Id: I1e19d2e91bec9bcb5c37ae459e0d5f401aff50a3
2021-09-10 08:16:09 +02:00
Bartosz Dziewoński e04c9efe4e Override default source mode font in placeholders too
Depends on Ib54361bed9653ef5ba55099df4113b78794ffbdf in VE core.

Bug: T290176
Change-Id: Iea2712dc1a88f802e8b1a645ee74cc5db964e82a
2021-09-09 22:30:38 +02:00
Bartosz Dziewoński 81da68d986 Update VE core submodule to master (222631050)
New changes:
be351e257 Localisation updates from https://translatewiki.net.
3046ba724 Localisation updates from https://translatewiki.net.
a8c020e80 Localisation updates from https://translatewiki.net.
7d15cd7fd Improve tests for handling CBNs with empty annotations, revealing some bugs
ddb555088 Use more compact map syntax instead of switch
9ded8a9a3 build: Updating stylelint-config-wikimedia to 0.11.1
c37949039 Localisation updates from https://translatewiki.net.
222631050 Localisation updates from https://translatewiki.net.

Change-Id: I2ccb382bd134a3bd00db58f23a3c950a3a82941f
2021-09-09 21:59:12 +02:00
Thiemo Kreuz 94a419e9a6 Fix missing and flipped template dialog help messages
Bug: T288465
Change-Id: I4aaa8d889084b770fa0cafab69a0b65128f3d82a
2021-09-09 16:11:00 +02:00
Andrew Kostka 97ef584e20 Rename showSidebar to expandSidebar for consistency
Bug: T274554
Change-Id: Ia0611fe10492e05e4625eb743c66eac7d0235dc5
2021-09-09 12:26:40 +02:00
Andrew Kostka 0c14b6d0bb Don't jump back-and-forth between fullscreen and floating when resizing
Previously, when the tranclusion dialog was being resized, there was
a specific width at which both the sidebar was collapsed and the dialog
was downsized from "larger/large" to "medium". This resulted in the
dialog switching from fullscreen to floating, since the dialog's width
breakpoint for "medium" doesn't match our width breakpoint for mobile.
If the user continued to downsize past this breakpoint, then the dialog
would eventually switch back to fullscreen resulting in this weird
behavior.

A simple way to prevent this is to avoid changing the dialog's size
at all. Since we don't support collapsing the new sidebar (unless
already in fullscreen), we can just leave the dialog at the
"larger/large" size.

Bug: T274554
Change-Id: I5460cdfb1a7ed73fe7957745ba37055c5f66dce1
2021-09-09 12:16:52 +02:00
Andrew Kostka 4c0666fd19 Don't allow users to add parameters that contain forbidden chars
Bug: T285869
Change-Id: I1011949c2724939f3cec1e1a2ae1c821c33eff84
2021-09-09 11:43:49 +02:00
Andrew Kostka 075ca72fe8 Add input validation to the add parameter page
Bug: T285869
Change-Id: Iebb982e95aa19bd61fcda915981d505cc243c4b2
2021-09-09 11:42:53 +02:00
Thiemo Kreuz 5f37d4d140 Avoid expensive/unnecessary .getItems() call in a test
Calling .getItems() creates a copy. Using .items is possible,
but strictly speaking a private implementation detail.

Change-Id: Id9438faff88cb5ff3973bca4c959e74d9be7e823
2021-09-09 11:32:19 +02:00
Translation updater bot 783f8d4ae1 Localisation updates from https://translatewiki.net.
Change-Id: Ic6382832675094993d986cda98ce45dec3144072
2021-09-09 08:18:17 +02:00
jenkins-bot b1cd2ed37a Merge "Rename ambiguous onParameterInput event handler" 2021-09-08 13:06:01 +00:00
Translation updater bot 52d900f8d6 Localisation updates from https://translatewiki.net.
Change-Id: I06ef08a0b9720ff035fbf22b7df7854d1a59132f
2021-09-08 08:10:46 +02:00
jenkins-bot f9c2159c7d Merge "Simplify some API PHP code where possible" 2021-09-07 14:54:05 +00:00
Thiemo Kreuz f8cdcfe129 Consistent use of .forEach() in QUnit tests
* The extra brackets are not needed in ES6.
* Make sure the name of the test is on the next line. This makes
  the code easier to read.

Change-Id: Ib871dbfa27fcadc88e7335b9efb4d583bd4300ac
2021-09-07 14:27:25 +02:00