Commit graph

14661 commits

Author SHA1 Message Date
Thiemo Kreuz e338a3c35d Enable template editor toolbar deeper in the stack
We can do this more in-place instead of reaching into the structure
from the outside.

Change-Id: I1beb5f7dcfef027f811a3bb4d2a2ef323e2535e3
2022-08-17 13:37:48 +02:00
jenkins-bot d81ac62283 Merge "Limit toolbar top border fix to vector-legacy" 2022-08-17 03:39:24 +00:00
jenkins-bot fd71fbe605 Merge "DesktopArticleTarget: Move updateTabs to .init so it can be called sooner" 2022-08-16 23:01:55 +00:00
jenkins-bot f03aa80f95 Merge "ArticleTarget: Move updateTabs implementation to DesktopArticleTarget" 2022-08-16 23:01:53 +00:00
jenkins-bot 16a8dc34a0 Merge "ve.ui.MWTargetWidget: Remove top margin in Vector 2022" 2022-08-16 22:51:35 +00:00
Ed Sanders 0588477b6c DesktopArticleTarget: Set wgPostEdit when redirecting after save
Bug: T240041
Change-Id: Ieba322fd6a33039f6c91868a266b9deefd2e0116
2022-08-16 15:32:45 +01:00
Ed Sanders 1c313eddf1 Follow-up I7fb352fc: Fix scope typo in ArticleTarget
Bug: T315320
Change-Id: Iefbb5ad1cee8069e52f9f62ae2191491e263a73b
2022-08-16 15:13:22 +01:00
Thiemo Kreuz 1926ab7b05 Code cleanup in ExpandableContentElement
This is split off from the unfinished patch I039d6f6. This only moves
existing code around, makes use of chaining and such to make code
more compact and hopefully more readable. Methods are renamed to
reflect better what they actually do. No behavior should change.

Change-Id: I3ba538c8c77ad4455bf0f0aa821ca14feadef7cc
2022-08-15 08:40:11 +00:00
jenkins-bot 254b14f3bf Merge "Chain scroll calls instead of just calling after each other" 2022-08-15 07:50:49 +00:00
jenkins-bot ba00286b13 Merge "Pass empty string to unused argument of pushState/replaceState" 2022-08-12 15:56:24 +00:00
Thiemo Kreuz eb71810b6d Start with last item when shift+tabbing into parameter list
Note this implementation introduces some technical debt: It adds a
little bit of knowledge about what "part widgets" and the toolbar are
to the parameter SelectWidget. I think this is acceptable.
A "cleaner" implementation is probably so complicated that we don't
want it in the code, for such a minor benefit. However, alternative
patches are very much welcome.

Bug: T313703
Change-Id: I957698d58a7622cbe54bcc2ba454388ba9f09537
2022-08-11 18:23:51 +00:00
Thiemo Kreuz 89ace728a4 Chain scroll calls instead of just calling after each other
Change-Id: I420fbd29ab79d6f2e1e9ef02bc3c99050126c3c8
2022-08-11 15:35:45 +00:00
jenkins-bot 54d0268847 Merge "Do not show incompatible skin warning when page is not editable" 2022-08-11 13:43:54 +00:00
Ed Sanders f9ed7066c8 DesktopArticleTarget: Move updateTabs to .init so it can be called sooner
The edit tab should be active as soon as the editor starts loading
(to indicate it doesn't need to be clicked again, and that the read
tab can now be clicked).

Change-Id: I450c53eef64c25e9520d3868b4ecc95204644138
2022-08-11 14:30:48 +01:00
Ed Sanders 9f5944af9e ve.ui.MWTargetWidget: Remove top margin in Vector 2022
Change-Id: I3d079a9e1b44821180c849c2c018a2314b2e089e
2022-08-11 14:27:53 +01:00
Gergő Tisza c697a6d2da
Do not show incompatible skin warning when page is not editable
Bug: T314952
Change-Id: Ie09f2ab5a8ae05cdd95ba1acbe02e978c002f8d6
2022-08-10 23:07:39 -07:00
Bartosz Dziewoński d36d467a82 ve.ui.MWTargetWidget: Suppress the stacking context established by .vector-body
Bug: T314230
Change-Id: I742f0435f279689dbdac8e811a8aeab00cc9086b
2022-08-11 01:47:19 +02:00
Bartosz Dziewoński 4cd18e42ab Tweak main toolbar shadow to not leak out from the sides on vector-2022
Bug: T311311
Change-Id: I847c8b64c5e24e92bf75d206f0815d1be3352292
2022-08-10 20:38:20 +02:00
Ed Sanders 08b3a21b25 Limit toolbar top border fix to vector-legacy
Also move code to .init so it can apply as soon as the
editor starts loading.

Bug: T311311
Change-Id: I87b15a0c56261a9f70291749bdbc37a518506d5d
2022-08-10 20:38:20 +02:00
Ed Sanders 260ee25f3a ArticleTarget: Move updateTabs implementation to DesktopArticleTarget
The .selected class does nothing on mobile, nor are the tabs visible
under the full screen overlay.

Change-Id: I14a6747f4a3274d71b7aa16b2c9b76b62a5253c2
2022-08-10 17:00:17 +01:00
Ed Sanders 686ef07ed3 Pass empty string to unused argument of pushState/replaceState
Per https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
this argument is treated as unused in all the browsers we support.

Change-Id: I83d3e2e8d9d2defa49e7a832f78bfc29f15da719
2022-08-09 13:37:34 +01:00
jenkins-bot 95774e4f2a Merge "Also log EditAttemptStep events via Metrics Platform" 2022-08-06 05:09:24 +00:00
jenkins-bot f842d6fa97 Merge "Rename value state variable" 2022-08-05 09:23:08 +00:00
WMDE-Fisch c66e700469 Rename value state variable
Is more intuitive like that.

Change-Id: Ib36d6fa1bce9a564f5b9a1c027f2573a5775d2c5
2022-08-05 10:07:18 +02:00
WMDE-Fisch 6cfa2e7dd0 Fix typos
Change-Id: Iaa7bf09877f32f7c19217103773657a8d8a81d16
2022-08-05 10:00:54 +02:00
Adam Wight 63c625f261 Remove unused config parameter from forked ControlsWidget
Split from I8eb279f.

Bug: T311296
Change-Id: I1739af4ca3c92a3aab08c61be8f665d2d3997f7c
2022-08-04 20:14:41 +02:00
jenkins-bot e857ded358 Merge "Streamline button margin calculation for outline parts" 2022-08-04 13:05:18 +00:00
WMDE-Fisch 7f4645bbe0 Streamline button margin calculation for outline parts
Generally the default button margin on the parts is 24px. The only
exception are the placeholder and wikitext when they are the last
parts in the outline.

Bug: T312644
Change-Id: Ie513bf1c022b2696cc92aacbbca59ddf6e55043e
2022-08-03 13:09:51 +02:00
jenkins-bot e50c0af860 Merge "Show "no parameters" message only when there are no parameters" 2022-08-03 09:43:50 +00:00
Thiemo Kreuz cdf9a59278 Tweak the hard coded top scroll padding for the parameter list
In Iebfe2e2 we already tweaked this by 1px. Turns out this was not
enough in all relevant situations. I still get random scroll events
just because I move the mouse around. Setting: Firefox, 120% zoom,
multi-part transclusion.

Bug: T312926
Change-Id: I475c1ef029e9721cc663881e40547730389cd26d
2022-08-03 11:15:32 +02:00
jenkins-bot f3f1e9c402 Merge "Tweaks to focus/scrolling code relative to sticky header" 2022-08-03 08:09:47 +00:00
jenkins-bot 13e5ae6997 Merge "Tighten conditions for incompatible skin warnings" 2022-08-02 11:42:24 +00:00
Thiemo Kreuz 5eb1193670 Tweaks to focus/scrolling code relative to sticky header
* Rename method because it turns out it is not only about the sticky
  header, but also relevant when there is no header.
* Move some code to more appropriate places.
* Use 0 as documented in OOUI, not null.
* Set the padding back to 0 when the sticky header is not visible.
  As of now this is an unreachable state because the filters never go
  away after they have been made visible. Still this code was always
  written with this possibility in mind to make it future-proof.
* Performance optimization for the boolean "show filters?" check.

Bug: T312926
Change-Id: Iaba08ccd8bf00360fd26f9268d5be43df4f4fbd8
2022-08-02 11:41:23 +00:00
Thiemo Kreuz 0b28414dff Restore scrolling parameters into view with(out) sticky header
This is a partial revert of Ide45141. Now the scrolling always
happens (again), but properly considers the presence of the sticky
header. It was also not correctly initialized on construction time.

This is a candidate for a backport. The patch is intentionally as
small as possible because of this. Code cleanup will be done in a
later patch.

Bug: T312926
Change-Id: I06425b42566bfb2087846636055ee75e98a05029
2022-08-02 12:29:06 +02:00
Thiemo Kreuz b9376f5990 Show "no parameters" message only when there are no parameters
The message was also shown when a documented template appears as
part of a multi-part transclusion but with zero parameters being
used. You see the filters in this case and can click "show all".
The message is just wrong in this situation.

Bug: T312926
Change-Id: I8d26ceec483e05fd1f69013e506fa1eb4e4c29ed
2022-08-02 11:48:45 +02:00
Thiemo Kreuz 800461efac Scroll below sticky header only if sticky header is present
Bug: T312926
Change-Id: Ide45141f0a21b782f8674ecbed9ee512de985661
2022-08-01 15:37:33 +02:00
jenkins-bot 2f555569ea Merge "Tweak the hard coded top scroll padding for the parameter list" 2022-08-01 13:05:03 +00:00
WMDE-Fisch 8ae4d291df Tweak the hard coded top scroll padding for the parameter list
Currently the sticky size is exactly 114px. With 115px you also can
see an auto scroll effect on multi part transclusions when you hit
that 1px sweat spot at the top of the list.

Bug: T312926
Change-Id: Iebfe2e2c6360c650755cd985157949a26a5287a4
2022-08-01 14:07:31 +02:00
jenkins-bot a1bd30f35d Merge "Simplify partly redundant findFirstSelectedItem implementation" 2022-08-01 11:45:08 +00:00
Thiemo Kreuz d01d1e78c2 Simplify partly redundant findFirstSelectedItem implementation
Introduced via Ibc56abf. But the OOUI SelectWidget does have some
methods for this already.

This patch also updates some @mixins documentation.

Bug: T302965
Change-Id: Iffbb44d41586786a2165f8d7916f94a52ad19122
2022-08-01 11:07:29 +00:00
jenkins-bot ee760ee2a6 Merge "Fix forgotten "setPage" property because of merge conflict" 2022-08-01 09:37:40 +00:00
Thiemo Kreuz cdb9766752 Fix forgotten "setPage" property because of merge conflict
The rename in I5a16ab4 was done the exact same time a new usage was
introduced via Ibb717ca. Neither patch shows a conflict. Still there
is one.

I remove the extra `|| null` line because it is just not needed. We
don't need to set the property to null when it was already null.

Bug: T312213
Change-Id: Id3f025786c9412e8c1946434113c41356da08098
2022-08-01 09:42:25 +02:00
Bartosz Dziewoński b5cdd70508 Tighten conditions for incompatible skin warnings
Previously we could log a warning if the user had the editor enabled,
but the page did not support being edited as wikitext.

Bug: T312632
Bug: T314171
Change-Id: I647cb057ed44c155b4eba1b728d6908f8a7abb69
2022-07-30 15:35:47 +02:00
Andrew Kostka dc91a39f8b Use the same styling for add template and add parameter buttons
Bug: T314052
Change-Id: I62d4e282b0e8f0a32e37e144db358144224119f1
2022-07-28 16:24:15 +02:00
jenkins-bot 6422e69821 Merge "Minor code cleanups in forked BookletLayout and related" 2022-07-28 12:59:10 +00:00
jenkins-bot 13c2a24f6c Merge "Prefer adding parameter to currently focussed template" 2022-07-28 11:34:38 +00:00
jenkins-bot 52c155f43f Merge "Fix "null is not a string" error in event logging code" 2022-07-28 10:41:15 +00:00
Thiemo Kreuz 741dbe5ccf Minor code cleanups in forked BookletLayout and related
E.g. renaming variables and moving code around. No functional change.

Change-Id: I39e76356c62a0d1bcdf1d20bc8215f09604ad07d
2022-07-27 16:04:27 +02:00
jenkins-bot f67033a82d Merge "Log incompatible skin warnings" 2022-07-27 12:47:01 +00:00
jenkins-bot 94268009c9 Merge "Remove dead code, deleting parameters is not possible" 2022-07-27 09:41:51 +00:00
Thiemo Kreuz b085d6cf24 Prefer adding parameter to currently focussed template
Instead of the template that's currently selected. That's confusing,
e.g. when you click one of the search fields, search for a parameter,
can't fine it, and press ctrl+shift+d to add an undocumented
parameter. Or you navigate the list of parameters with the cursor
keys, can't find the parameter you are looking for, and press
ctrl+shift+d to add it.

Still falls back to the selection when the focus is outside of the
sidebar.

We suggest to merge this before UX review, and review it later in
demo time. It's easy to undo if necessary.

Bug: T313388
Change-Id: I9848dd0af4fe821526dafc18bbd7cb1ab0e68cfc
2022-07-27 09:17:23 +02:00
Thiemo Kreuz f09f704364 Don't send missing $wgVisualEditorTabMessages to the browser
This is send as an associative array. Instead of adding elements that
are null we can just not add them.

Bug: T291729
Change-Id: I28d847941eec865cb255779534eca14ec88f588f
2022-07-27 09:13:48 +02:00
Gergő Tisza 591796df12
Log incompatible skin warnings
Log a client error when VisualEditor cannot load because of an
incompatible skin (which is not supposed to happen in practice).

Bug: T312632
Change-Id: I2ccfaa584d7a05e10170a66d446bd4e476dcc775
2022-07-26 17:51:30 -07:00
jenkins-bot 1d34b069ad Merge "ve.init.mw.Target: Use mw.libs.ve.targetSaver.getHtml in getWikitextFragment" 2022-07-27 00:07:35 +00:00
jenkins-bot e06cdeadb1 Merge "ve.ui.MWGalleryDialog: Fix "Alternative text" not being readonly sometimes" 2022-07-26 20:26:17 +00:00
jenkins-bot f7d9da3317 Merge "Start altText as null to avoid empty alt for new gallery images" 2022-07-26 20:00:52 +00:00
jenkins-bot 7e55a99917 Merge "Add a checkbox to use the image caption as the alt text for galleries" 2022-07-26 20:00:48 +00:00
Bartosz Dziewoński d2f7796744 ve.ui.MWGalleryDialog: Fix "Alternative text" not being readonly sometimes
Depending on the order in which this code executed, sometimes the
dialog initialization would overwrite the readonly state set by item
initialization.

They should simply all check both conditions.

Change-Id: I6a18f1e074f118423438c017b3e4e34e75579e5d
2022-07-26 21:50:19 +02:00
jenkins-bot c595901528 Merge "Tab to first template parameter in list, not to the selection" 2022-07-26 14:45:04 +00:00
jenkins-bot 20f255d0f9 Merge "Fix filtering not clearing "currently selected page" state" 2022-07-26 14:36:02 +00:00
jenkins-bot 4997f3d41d Merge "Move getters for the currently selected part to two-pane layout" 2022-07-26 12:30:41 +00:00
Thiemo Kreuz d922c12957 Remove dead code, deleting parameters is not possible
This code was for when the dialog had a trash can icon for every
parameter, and parameters could actually be deleted. It's unreachable
now.

We missed this when removing the old workflow.

Change-Id: Ic94df506ea84009a1e1863a4e9847a70498df448
2022-07-26 13:21:39 +02:00
jenkins-bot 72b3a31571 Merge "Fix Ctrl+D and Ctrl+Shift+Y hotkeys to add parts" 2022-07-26 09:23:50 +00:00
jenkins-bot 2185393d96 Merge "Fix Ctrl+Shift+D hotkey to add undocumented parameters" 2022-07-26 09:20:48 +00:00
Thiemo Kreuz 72c136182c Remove unused pieces of code from two-pane layout
The toggle feature is not used. The method is always called with a
bool.

Bug: T313489
Change-Id: Id05398ea837355f93df597674e817e3e4f0f8481
2022-07-26 10:41:45 +02:00
Arlo Breault 5bfdff2197 Start altText as null to avoid empty alt for new gallery images
Bug: T310624
Change-Id: I26ffb386fa4de5ed6128da8d08da1df2576f3755
2022-07-25 22:43:28 -04:00
jenkins-bot ce2cdc6a1e Merge "ve.ui.MWTemplateDialog: Fix dialog becoming inert" 2022-07-25 16:03:50 +00:00
jenkins-bot 801d017417 Merge "Add missing check to confirmation dialog's "closed" handler" 2022-07-25 15:27:06 +00:00
Bartosz Dziewoński 9e954b7c20 ve.ui.MWTemplateDialog: Fix dialog becoming inert
OOUI support for multiple modal window managers is hacky, and only
works correctly when the managers are attached directly to <body>.
Remove the wrapper that doesn't seem to be necessary.

Bug: T313690
Change-Id: I4134c0f50d28a364dcf15b426bd9b59a4f7a985d
2022-07-25 17:01:12 +02:00
Thiemo Kreuz cbc90ff90a Remove dysfunctional "no outline" mode from template dialog
The dialog is unusable when there is no outline. See T313489 for a
longer explanation.

Bug: T313489
Change-Id: Ib2cc9c363d3596a16f6f1c4aef03ca216abf6b1f
2022-07-25 14:45:18 +00:00
Thiemo Kreuz 59c2ee6242 Add missing check to confirmation dialog's "closed" handler
Apparently this can be undefined when Esc is pressed. Note this code
cleanup related to but does not fix T313690.

Bug: T313690
Change-Id: Ia4658f8e00a68ed4cc3a6ddb0a932b3218b813dc
2022-07-25 13:53:12 +02:00
Arlo Breault 94c4d619a7 Add a checkbox to use the image caption as the alt text for galleries
The need for something like this was anticipated in
I2bf43c7e83283f43e047229eb53c244918fcbb0c.

As of version 2.5.0 of Parsoid's output, if alternate text is missing
for an image but a caption is present and image isn't displaying the
caption (ie. it isn't a thumb or frame), then the text content of the
caption will be set as the alt attribute.  Parsoid will then drop the
alt attribute when serializing if it matches the caption text, since
it's unnecessary.

However, if the caption is modified and the alt text isn't, the alt will
be serialized.  This is likely to be unexpected to editor.  They may
have missed that the both the caption and alt are populated in VE and
only edited one place.

Since all of the above is happening only for images where the caption
isn't visible, it doesn't appear to be a much used feature since, at
least for inline images, the experience of caption editing was already
less than optimal.

However, because of a quirk in how galleries are rendered in Parsoid,
this affects gallery caption editing, which is visible and presumably
used more often.  See T268250 for a discussion on an improved gallery
structure.  But for now, gallery images are effectively inline and set
the alternate text, thus subject to the above.

Here we add a checkbox so that the default is to ignore the alt if it's
the same as the caption.  And only make use of it if it differed
originally or was explicitly unchecked to modify.

Bug: T311677
Change-Id: Idf297d8a98995971c5835b0cea56c3317a3626e2
2022-07-22 15:46:55 -04:00
Thiemo Kreuz c821ca154b Document what "current page" means in two-pane layout
Change-Id: I37b26a9f01031d4910ff773977a89eb46a4c19ac
2022-07-22 18:12:15 +02:00
Thiemo Kreuz c2c5a2b938 Fix filtering not clearing "currently selected page" state
This patch also removes an obsolete comment.

Bug: T313388
Change-Id: Ie292c07fb096f89a226d7a2239e3dd2883dd91d7
2022-07-22 17:10:48 +02:00
Thiemo Kreuz 1491315c04 Move getters for the currently selected part to two-pane layout
Turns out we have two concepts, now represented by two methods:
1. A top-level part can only be moved or removed when it is actually
   selected. This is relevant for the toolbar buttons and for the
   keyboard shortcuts/hotkeys. We intentionally block the buttons
   and hotkeys when a parameter is selected.
2. Adding a new part or parameter is always possible, no matter if a
   top-level part or parameter is selected. This is again relevant
   for the toolbar buttons and hotkeys.

Bug: T313388
Change-Id: I17caf8fce9d8f1ebe21660cf8c6d91ace8423490
2022-07-22 15:53:10 +02:00
Thiemo Kreuz 21ab6bc5f6 Fix Ctrl+D and Ctrl+Shift+Y hotkeys to add parts
Same issue as in the previous patch, but less intrusive. It was always
possible to add a new part, but it was often inserted at the wrong
position. It worked only as intended when a top-level part was
selected. When a parameter was selected, the new part was always
appended to the very end of the transclusion, not after the selected
template.

This is now a little bit of duplicate code. We might extract this to
a method in a later patch.

Bug: T313388
Change-Id: I1327222969d1d315bdacf3998f366d88c4c26bd5
2022-07-22 15:25:59 +02:00
Thiemo Kreuz c86134a9ec Fix Ctrl+Shift+D hotkey to add undocumented parameters
The hotkey was only working when a top-level part was selected, not
when a parameter in a template was selected.

Some outdated helper methods are now marked as deprecated. They will
be replaced and removed in later patches.

Bug: T313388
Change-Id: I5ffe45fd00c36b97ee36dc0ba6831db5a941c731
2022-07-22 15:22:07 +02:00
jenkins-bot fef2e4a8c6 Merge "Template dialog sidebar: Skip glitchy jQuery animation" 2022-07-22 12:51:31 +00:00
Thiemo Kreuz cf77557a95 Fix "null is not a string" error in event logging code
This getTitle() method can return null.

Bug: T299779
Change-Id: I33c6fc0cdd03ae45a04d4098cf101dc9fa3414e3
2022-07-21 13:26:45 +02:00
Thiemo Kreuz 19edc6043a Tab to first template parameter in list, not to the selection
This is a partial revert of Iaf089f4. It restores the old behavior:
* In case there is already a highlight in the parameter list, just
  keep that. Usually there is no highlight at this point, but better
  have this check in place to be sure.
* Otherwise always start at the top.

Jumping to the selection is confusing, esp. for keyboard-only users.
The argument goes like this:
* Let's say I'm in the middle of editing values on the right side of
  the dialog.
* I want to navigate to the sidebar. How do I do this with the
  keyboard? I use the tab key.
* Pressing tab also implies I move the selection to the next
  parameter. And the next. Until I reach the end of the parameter
  list. Then the selection stays there.
* When I finally reach the sidebar and tab into the parameter list,
  the last parameter is selected. But this was merely a side-effect
  of me navigating the dialog.

Such a "selection becomes highlighting" behavior was not specified
in T311204.

This patch is requested and approved by PM.

Bug: T312647
Bug: T311204
Change-Id: Ie5b5dfd4fca132050815e6182845ca23adb5f805
2022-07-21 10:44:48 +02:00
Thiemo Kreuz 2e2a8257bd Remove unused getCurrentPageName method from two-pane layout
Change-Id: Ieb5316530f646a2515e47239b9b44c9337863cf4
2022-07-20 17:50:37 +02:00
jenkins-bot de101bd21b Merge "Follow-up I586b67a0cf: No need to check for 'resource' key" 2022-07-20 12:55:23 +00:00
jenkins-bot 84800d0eef Merge "Remove "unrecoverable" errors from the save dialog" 2022-07-20 12:46:36 +00:00
jenkins-bot ab8bc614a8 Merge "Restructure code finding closest top-level page for readability" 2022-07-20 11:33:53 +00:00
Thiemo Kreuz ac204fd3a9 Template dialog: Make blue selection color transparent
This should make zero difference in most situations. Except you
navigate a list of parameters with the keyboard. In this case the
SelectWidget gets a dark blue outline which overlaps with the light
blue selection bar, but the outline disappears behind the bar. This
looks odd. Making the color transparent fixes this without the need
to fiddle with z-index or such.

Bug: T311204
Change-Id: I7049eb60dc0ea72c2c4620f4351525fe447e0f46
2022-07-20 12:48:49 +02:00
jenkins-bot b6a4f0b4fa Merge "Use generic "outline item selected" event for top-level parts" 2022-07-20 10:07:22 +00:00
jenkins-bot 28a671a48e Merge "Rename specific "parameter selected" event to be more generic" 2022-07-20 10:05:46 +00:00
jenkins-bot 18dade9ffa Merge "Rename confusing "itemSet" to "active parameter"" 2022-07-20 10:05:01 +00:00
jenkins-bot 4a3d83d087 Merge "Rename confusing "isSet" to "active page indicator"" 2022-07-20 10:04:58 +00:00
jenkins-bot 0d1f035dba Merge "Remove duplicate selection code from template dialog sidebar" 2022-07-20 10:02:07 +00:00
jenkins-bot 975058c4c8 Merge "Template dialog: Fix oval help button" 2022-07-20 09:42:44 +00:00
Thiemo Kreuz 7a59c4696a Rename confusing "itemSet" to "active parameter"
The main motivation is to get rid of the vague method name
"setParameter" that was previously used for three different methods
in three different classes. Now the three methods have three
different names.

Change-Id: I938de30b368daf6ce3385b2ed2bca98f316593e1
2022-07-20 11:42:42 +02:00
Thiemo Kreuz 4782987a7f Rename confusing "isSet" to "active page indicator"
We would love to name this state "selected", but that term is already
used for a template parameter that is checked/used. The idea of "set"
was to have a list of parameters where one is "set". But the word is
confusing. I suggest "active page" because the entire purpose of the
blue selection is to highlight the currently active page (i.e. the
one you currently interact with on the right side of the dialog) in
the sidebar.

Change-Id: I5a16ab4c193ea05c21bb3bf89ada2ef550d8d6bc
2022-07-20 09:38:41 +00:00
Thiemo Kreuz 66029402ee Restructure code finding closest top-level page for readability
I hope this makes it a little more readable. The two steps done in
the loop are mostly independent:
a) Find pages that should be removed.
b) Find next best top-level page when the current one is removed.

Change-Id: I600253fb206a31ef5851865e733b66c336d5014d
2022-07-20 09:25:09 +00:00
Thiemo Kreuz aaa47fdab3 Fix "current page" not being reset when page is removed
This does not have much of an effect, but can cause visual glitches
in rare situations. One goes like this: Use the keyboard and tab key
to navigate to a list of parameters in the template dialog. Press
space to enable the checkbox. The parameter gets a blue background
(= it's now the active a.k.a. "set" item). Press space again. Blue
disappears, as it should. Press space again. Blue is now missing.

Bug: T312213
Change-Id: I3071ec4d0a05e3505ec5216acc5a97b8eaf6f5d5
2022-07-20 09:22:39 +00:00
Thiemo Kreuz 74bffc5d0d Fix sidebar losing focus when unchecking params with space
1. Before, removePages() was calling setPage() with null. This makes
sense for removed top-level parts because these are really removed
from both sides of the dialog. Template parameters are never removed.
Only unchecked (and removed from the right side of the dialog, but
this is not what this code is about). When I navigate a parameter
list and uncheck a parameter I need the focus and highlighting to
stay.

2. We have a dedicated method when a parameter is unchecked. This
can check if the removed parameter is also the selected one (called
"set" in this code) and can reset this state. Without losing the
highlighting or anything else.

Bug: T312213
Change-Id: Ibb717ca49cae805617ebee196937c79daa72f1c1
2022-07-20 09:19:59 +00:00
Bartosz Dziewoński 43ce20b726 Remove "unrecoverable" errors from the save dialog
There are many errors that are temporary in some way, and treating
them as unrecoverable is a poor experience.

Even for errors that really are unrecoverable, our interface works
poorly, because you need to hide the error message first to do
anything else, and you need to close the dialog to see it again.

This distinction is not really helpful, let's get rid of it.

Bug: T307330
Change-Id: I9680cc416da5b27881aeb3502f506dcb5d4bb71f
2022-07-19 21:46:30 +02:00
Thiemo Kreuz e2cce0dd3d Minor fixes and optimizations to ParameterSelectWidget
Optimization: Don't search for a checkbox that represents a not yet
named parameter placeholder. There is never one.

Fix: Store null, not undefined.

Bug: T312213
Change-Id: I395008f15d13133ad456d0a77571b7aa1c7a7fc9
2022-07-19 16:36:30 +02:00
Thiemo Kreuz 7156cd693e Remove duplicate selection code from template dialog sidebar
Steps to reproduce:
* Set a breakpoint or debug.log() at the start of
  TransclusionOutlineWidget.setSelectionByPageName()
* Edit a multi-part template.
* Use the keyboard to navigate to a template name in the sidebar.
* Press space.

This is currently triggered twice. Let's get rid of the more obscure
one. It was introduced as part of Ic4ee673. I don't really know why.

Bug: T313207
Change-Id: I3ddc072f5d42c17249abc82026e0bf1a4be1dc6e
2022-07-19 13:06:44 +02:00
Thiemo Kreuz 60b69c575e Use generic "outline item selected" event for top-level parts
This also means we have to move the declaration/documentation of the
event up one level into the generic "part" widget.

Change-Id: I1b803201f8955b58136ee7f37c04c01edcd47395
2022-07-19 11:05:32 +00:00
Thiemo Kreuz ee7a398ffc Rename specific "parameter selected" event to be more generic
The code that receives this event does not need to know that the
source is a "parameter". It's just some "item" in the sidebar. The
idea is to reuse the event for both top-level parts as well as
parameters. This will be done in the next patch.

Change-Id: I858040f5adf8e156b6013caaa527b3237b7bac0f
2022-07-19 11:05:18 +00:00
Thiemo Kreuz 10691ec44a Template dialog: Fix oval help button
In my tests this issue was only visible with the Minerva skin.

Bug: T310762
Change-Id: Idf1a5d11fb9ea5d874574f8176c1bd4a66e63892
2022-07-19 13:01:43 +02:00
jenkins-bot f23bd2706c Merge "Remove temporary compat for $wgVectorTitleAboveTabs = false" 2022-07-18 16:59:05 +00:00
Bartosz Dziewoński c2900af71e Remove temporary compat for $wgVectorTitleAboveTabs = false
The configuration option has been removed in
Ib35c6bfa5493f7dc81b63c42e7fedb8f1e47226b.

Change-Id: I1392cab0f6916c47cade833c10036adec2c9d4dd
2022-07-18 17:41:20 +02:00
Ed Sanders 33546466eb Add 'vector-body' hack to TargetWidgets
Bug: T313221
Change-Id: I06366d4601342435b70d311742ee985e01b0477b
2022-07-18 14:12:10 +01:00
Thiemo Kreuz 2bdd2b4fb9 Template dialog sidebar: Skip glitchy jQuery animation
What I found is a single `$container.animate( animations )` that's
responsible for the misbehavior described in T312768.

This method is called from a few places. I think none of these places
benefits from making this an animation. This is often more distracting
than helpful, especially when navigating with the keyboard.

Bug: T312768
Change-Id: I90a80d6ae8c1b47ee22297d2520255cad890b90e
2022-07-18 14:05:54 +02:00
jenkins-bot 684a69c17e Merge "Unhighlight parameter on blur" 2022-07-18 11:47:08 +00:00
jenkins-bot 458264a505 Merge "Merge redundant sidebar selection events in two-pane layout" 2022-07-18 11:38:27 +00:00
jenkins-bot 39dd216650 Merge "Remove/fix obsolete code trying to un-highlight parameters" 2022-07-18 11:37:22 +00:00
jenkins-bot 411a5d0208 Merge "Move debounce check from outline into part widget class" 2022-07-18 11:36:30 +00:00
Thiemo Kreuz 569ad3d538 Remove/fix obsolete code trying to un-highlight parameters
Fix setParameter() and let it (un)highlight parameters independent
from a selection (called "set" here).

Bug: T312925
Change-Id: Ie4e9ba94659f4f70160193ca6bec804f8a4473e4
2022-07-18 13:04:42 +02:00
Adam Wight 42cbde12a8 Unhighlight parameter on blur
Bug: T312925
Change-Id: I5de5dbb5e0f9f2ae1eb8e5f2c07317cda50680ea
2022-07-18 12:59:23 +02:00
Thiemo Kreuz 58c19747da Move debounce check from outline into part widget class
This just moves code to an – in my opinion – more appropriate place.
Here we can't forget it.

Change-Id: I8fff83b1586fc14d762b324e5443611370470983
2022-07-18 12:48:45 +02:00
jenkins-bot 0cd660ab39 Merge "Remove comments from two-pane layout that don't add information" 2022-07-18 10:47:31 +00:00
jenkins-bot 55b4c86802 Merge "Exit loop in onStackLayoutFocus earlier" 2022-07-18 10:04:11 +00:00
jenkins-bot eaca5e8ad0 Merge "Simplify interface to remove pages" 2022-07-18 09:55:18 +00:00
Thiemo Kreuz 83261578b6 Remove comments from two-pane layout that don't add information
These comments just repeat what the code says. Most of them are
copied from OOUI. Some talk about BookletLayout – a class name we
don't use any more.

Change-Id: I7ce354dfe059657395103ffef767eb8f6d37bfb7
2022-07-18 09:36:37 +00:00
Adam Wight 2759752a0a Simplify interface to remove pages
Makes some things easier, some harder—not sure if this is a helpful
patch.

Change-Id: If56e9b2fbc1796cd637aaeececec779d31a7921f
2022-07-18 05:31:42 +00:00
jenkins-bot 6f16d02c0c Merge "Wikitext mode: Use action=parse for preview" 2022-07-16 16:54:30 +00:00
Thiemo Kreuz b7fb9e873f Merge redundant sidebar selection events in two-pane layout
Note how the two-pane layout was already handling the two events
identical:

 sidebarPartSelected: 'onSidebarItemSelected',
 templateParameterSelected: 'onSidebarItemSelected'

We move this knowledge up one level into the sidebar. Both actions
now trigger the same event.

This implies that we are now using the event formerly known as
"sidebarPartSelected" to act on both top-level parts as well as
parameters. We reflect this by renaming it to "sidebarItemSelected".

Change-Id: I9a2c95f91f05de7312d38ec4c8b360141a0c447d
2022-07-15 16:21:04 +00:00
jenkins-bot 1a4bb6c5e4 Merge "Rename misleading templateParameterAdded event" 2022-07-15 14:55:09 +00:00
jenkins-bot 7ef5edf209 Merge "Rename misleading templateParameterSelectionChanged event" 2022-07-15 14:53:20 +00:00
Thiemo Kreuz 6e18ce647e Exit loop in onStackLayoutFocus earlier
The optimization removed in this patch is done twice. The effect is
that the loop does not end when it finds a match but the match happens
to be the current page.

This doesn't change anything. It's really only about performance.

Change-Id: I5c2de101eb2f14f814f00cf7eacf46b70346f4c8
2022-07-15 15:27:03 +02:00
Thiemo Kreuz 3f938d3c4f Rename misleading templateParameterAdded event
This is not only fired when a parameter is added. It's also fired
when pressing spacebar on a parameter that already exists.

Change-Id: I245aa9f5938eb38c3a3f224a4d642d57068cf23b
2022-07-15 14:26:41 +02:00
Thiemo Kreuz d57210c1c0 Rename misleading templateParameterSelectionChanged event
This is not only fired when a parameter is checked or unchecked.
It's also not only fired when another parameter in the parameter
SelectWidget is selected. It's always fired just because the
spacebar is pressed. This is so we can scroll that parameter into
view.

Change-Id: Id621405b7ca3116cd4a06f474e49776d0830dccc
2022-07-15 14:19:19 +02:00
Thiemo Kreuz 647b5aa8e9 Remove non-helpful 1px hack from template dialog sidebar
This line was added as part of I0229b63. While what the comment says
is still true to some degree, the line stopped being helpful when
we introduced sticky headers. When scrolling the sidebar for a
multi-part template with many parameters the sticky header jumps up
and down by this 1 pixel.

TL;DR: This is one of these hacks where it's better to remove it and
look for a better solution when we notice the original issue again.

Bug: T312768
Change-Id: I2fedea4e1d4d6c95c74a63c522821a6ebc2ee2b2
2022-07-15 13:00:40 +02:00
jenkins-bot 6baefa1190 Merge "Adapt bottom margin of last element in content pane of template dialog" 2022-07-15 07:51:48 +00:00
Ed Sanders 2644c84cda Increase default debounce of live extension inspector/dialog to 1000ms
250ms gaps are pretty common when typing at a normal speed, resulting
in a lot of (often expensive) API requests (e.g. T312319). For most
use cases this level of responsiveness in the preview is not necessary.

Change-Id: I6504567d4da02a66171ee35a9c4fd35c85136909
2022-07-14 17:14:37 +01:00
Svantje Lilienthal 6d31ca5b3f Adapt bottom margin of last element in content pane of template dialog
Bug: T312923
Change-Id: I9068053900915cc5838eeb1e96c48f6b8fff0936
2022-07-14 15:56:47 +02:00
Svantje Lilienthal 36d817dfcd Only move content pane element to top when sidebar element is clicked
This patch contains a small cleanup that moves the scrollIntoView into onSidebarItemSelected.
Since all other places already have a focus call, scrollIntoView is not needed there.

Bug: T312850
Change-Id: I1a3cb3905faea2bd8a6bf8dc4cfd748813e1c875
2022-07-14 15:32:14 +02:00
jenkins-bot b4b6940c64 Merge "Minor fixes to template dialog related code documentation" 2022-07-14 07:01:11 +00:00
Thiemo Kreuz 0bf4a4a147 Use named colors in template dialog LESS styles
Change-Id: I935e1bcacfe8bb61fa69da9fa42417c76c8e505a
2022-07-13 17:51:32 +02:00
jenkins-bot e9ce5fc394 Merge "Fix 'File:' and 'Category:' links being piped unnecessarily" 2022-07-13 14:36:53 +00:00
jenkins-bot 1e0ac6de13 Merge "Use position-sticky() from mediawiki mixin" 2022-07-13 14:21:23 +00:00
WMDE-Fisch a4aa684308 Don't call parent on SelectWidget focus event
This regression from Iaf089f4b271fd853b17c1aa7f5938510ea8f5431.

Not calling the parent here was is essential, because when clicking
the checkboxes this event will trigger the focus of the whole widget.

That's not what we want in this case though. Also it seems we don't
need any of the logic from the parent and can get rid of that
complexity.

Bug: T312855
Bug: T312856
Bug: T312924
Change-Id: Ib3a2eeeb6d519dfa1bb627049f6b3a4708017e86
2022-07-13 15:27:24 +02:00
Thiemo Kreuz 466a73e730 Minor fixes to template dialog related code documentation
Change-Id: I0b5e0ede45578db23ecd5817baf842eb3cc3dbf4
2022-07-12 20:10:02 +02:00
Ed Sanders 1699860b9c Follow-up I586b67a0cf: No need to check for 'resource' key
Changing this attribute results in the node being non-comparable.

Change-Id: I2c1b3cef4f99ee3c8af6ee96d96cd56bfbe6a35c
2022-07-12 17:27:02 +01:00
Ed Sanders 3148e28f69 Wikitext mode: Use action=parse for preview
Using Parsoid HTML in the 2017WTE has enabled us to iron
out lots of rendering bugs over the past few years.

In that time Parsoid has been moved into PHP, and at some point
we also become the default parser.

Also more extensions have started to use content transform hooks,
which are only supported by the action API.

As a result it now seems like a good time to migrate back to the
content API instead of building the preview from Parsoid HTML.

Bug: T154844
Change-Id: I90d775dd71d5f5a61d651b63d946ab60a27e2ca3
2022-07-12 17:12:06 +01:00
jenkins-bot 55165649c7 Merge "Document some classes touched in the sidebar rewrite" 2022-07-12 13:53:29 +00:00
jenkins-bot 98ec1db594 Merge "Don't set a ParameterPage as next selection after delete" 2022-07-12 13:04:01 +00:00
jenkins-bot 927ca77182 Merge "Safe to call setPage with a null page" 2022-07-12 12:22:25 +00:00
WMDE-Fisch 8aee4e8e70 Use position-sticky() from mediawiki mixin
This will also slightly improve the situation for older Safari
browser by adding a -webkit rule.

Change-Id: I16b065adddd8ffe21936db9794495a891792ce8c
2022-07-12 14:09:01 +02:00
jenkins-bot 7c935f8935 Merge "Use @type instead of @var for JavaScript variable" 2022-07-12 11:57:44 +00:00
Adam Wight 150aad380d Safe to call setPage with a null page
Fixes a bug that crashes the interface when unsetting the focus after
another input was focused, because `page` is undefined in this case.

We were already calling `setPage` to unset focus, so document it.

Bug: T312017
Change-Id: I2926beffe23e0ee822f5690d4791534a5413886a
2022-07-12 13:52:30 +02:00
jenkins-bot 4eebfd2635 Merge "Don't access the stacklayout directly" 2022-07-12 11:36:02 +00:00
WMDE-Fisch 5067a1e216 Don't set a ParameterPage as next selection after delete
This can only happen when deleting the last part of a transclusion,
then we want to set the previous page as selected. This should never
be a parameter though.

Bug: T312221
Change-Id: I06700dcf37f6d4f7dd073f8f2bc1b8b0a17a62c4
2022-07-12 13:35:34 +02:00
jenkins-bot b736727b07 Merge "Use short syntax for transforming one event into another" 2022-07-12 11:28:06 +00:00
WMDE-Fisch 41bb082def Use @type instead of @var for JavaScript variable
Just putting this eslint auto fix out there. No hard feelings, but
a warning that pops up everytime.

Change-Id: I157e0338e5f5a6f27dbbd9ae116da0f922468586
2022-07-12 11:18:27 +00:00
WMDE-Fisch ec522938b8 Scroll parameter items into view when hidden behind sticky
Triggers scroll in all situations where highlighting changes.

Including keyboard navigation.

Bug: T312542
Change-Id: I849f64c5cefe0cac3fde6e848b23b7b0cfc489ce
2022-07-12 10:52:19 +00:00
Adam Wight d77728bd4f Document some classes touched in the sidebar rewrite
Depends-On: I385dca1d95033961d3844e888521750443e49c95
Change-Id: Ic515b41863bcf2ac4daa0272f67e1d30238a4b85
2022-07-12 12:49:31 +02:00
WMDE-Fisch b75082009a Differ between setting and highlighting a parameter
Introducing a set method to have a different state for a set
parameter and a highlighted one in the selection.

Allows us to remove a lot of workarounds for missusing the
highlight state and fixes several issues with these workarounds.

Main implications:
- Keyboard navigation and mouse hover now sets the grey highlight
- If a parameter is set (blue highlight) keyboard navigation returns
  when focusing the SelectWidget
- If nothing is set keyboard navigation starts at the top after focus
- Unchecking a parameter using space will not influence the keyboard
  focus in the list
- Highlighting a parameter with the mouse lets keyboard navigation
  continue from there.

Bug: T312647
Bug: T311204
Bug: T312213
Depends-On: I385dca1d95033961d3844e888521750443e49c95
Change-Id: Iaf089f4b271fd853b17c1aa7f5938510ea8f5431
2022-07-12 10:18:56 +00:00
Thiemo Kreuz 6d41da0de7 Use short syntax for transforming one event into another
Change-Id: Id794f2b620edebd6eab71e3380ce1eeffcdc95ef
2022-07-12 11:54:04 +02:00
Bartosz Dziewoński 91fffffad9 Fix 'File:' and 'Category:' links being piped unnecessarily
It is no longer necessary to prepend a colon in Parsoid HTML
to ensure they are interpreted as links rather than an image
inclusion or categorization.

Instead, the colon causes Parsoid to generate piped links
when they could be unpiped, so remove it.

This code was added in 1e62e9f64c (2012),
the Parsoid bug was fixed in b62b93c678 (2013).

Bug: T312700
Change-Id: I3d71fd658b5dd627445e60b850f647081ef842e7
2022-07-12 01:46:11 +00:00
jenkins-bot a305571b23 Merge "Add grey background when buttons are in focus" 2022-07-09 07:15:16 +00:00
jenkins-bot 086a73804f Merge "Use rgba instead of hex to highlight identical styling" 2022-07-09 07:15:13 +00:00
WMDE-Fisch a0c0465d67 Don't access the stacklayout directly
Bug: T310867
Change-Id: I95cbdee26ead46c2d8803ddb3a9e06304f793407
2022-07-09 05:56:27 +00:00
jenkins-bot 479732f516 Merge "Take parameter list out of tab navigation when empty" 2022-07-08 13:13:26 +00:00
jenkins-bot 47a3e46272 Merge "Lessy-fying OutlineParameterWidget rules" 2022-07-08 12:21:06 +00:00
jenkins-bot ff411966b1 Merge "Lessy-fying OutlineTemplateWidget rules" 2022-07-08 12:21:04 +00:00
jenkins-bot cb7c6e32ee Merge "Fix CSS regression" 2022-07-08 12:19:54 +00:00
Adam Wight fb81938c74 Take parameter list out of tab navigation when empty
This prevents an invisible and unactionable focus target when the
parameter search field doesn't match anything.

Bug: T312547
Change-Id: Ib29913a547cd68649d29e28d921c4c1358bad7b8
2022-07-08 13:59:37 +02:00
WMDE-Fisch 970ab136da Add grey background when buttons are in focus
Bug: T311204
Change-Id: Ife5ed2dc2e772b8a94cbc04cad591acf9f8ebd6e
2022-07-08 13:40:43 +02:00
WMDE-Fisch d3bf14806a Use rgba instead of hex to highlight identical styling
This way it might be a bit more clear that this is actually the
same.

Change-Id: Ifbdfd66f476bf30408685a4af9989bb9ac969b21
2022-07-08 13:39:44 +02:00
WMDE-Fisch ef77373fda Lessy-fying OutlineParameterWidget rules
Change-Id: I9b72752269abd064c859b313ddb1f43ec04f9b71
2022-07-08 13:38:52 +02:00
WMDE-Fisch 0850a205df Lessy-fying OutlineTemplateWidget rules
Also renaming one class for convenience.

Change-Id: I0ef079ca40d061f5f2cde0eafdd04737d63c370f
2022-07-08 13:33:23 +02:00
Adam Wight c1ebaf989c Fix CSS regression
The last checkbox in the entire sidebar should get the extra bottom
margin, but not the last checkbox in each template group.

Follow-up on I1edc5db98d16a4c0de8abd7f705776fb9eb65b97

Change-Id: I4ffade9c053191ce202340edadbd032c67bb39a4
2022-07-08 13:31:22 +02:00
jenkins-bot 55cc3af23d Merge "Don't refocus content pane after removals" 2022-07-08 11:16:25 +00:00
Adam Wight 352dcc6177 Don't refocus content pane after removals
Causes problems when we remove a parameter using the spacebar, for
example.

This partially reverts Id3843b2c7ad6.

Bug: T312524
Bug: T312205
Change-Id: I65d834bc0d2cc649803b536ecc65bdd1fa166a32
2022-07-08 12:23:36 +02:00
WMDE-Fisch ab7bc03b18 Lessy-fying OutlinePartWidget and OutlineButtonWidget rules
Using a certain amount of depth to make sure to override OOUI
specificity.

More can be done in follow ups.

Change-Id: I1edc5db98d16a4c0de8abd7f705776fb9eb65b97
2022-07-08 10:29:57 +02:00
WMDE-Fisch 83c30099ec Move obvious Outline related CSS into own file
Should be a noop. Also moving one rule further up to the set of
similar selectors.

Removing one rule that was disabled for some time now.

Optimizations follow.

Change-Id: I8da70a52c13afd8ac1c3ff43bae63a203c3bf86a
2022-07-07 22:05:09 +02:00
jenkins-bot e635e70cca Merge "No highlight for selected template names" 2022-07-07 15:39:46 +00:00
jenkins-bot 768e8517f8 Merge "Revert "Restore selection after keyboard parameter navigation"" 2022-07-07 15:14:31 +00:00
Andrew Kostka 079a1ce6ff Remove highlighting when typing in a search field
Bug: T311204
Change-Id: I583c02df3def6cfeb347e9b63045b62e1d735e24
2022-07-07 13:40:42 +00:00
Adam Wight a83d37d864 Revert "Restore selection after keyboard parameter navigation"
We don't want to restore selection.  Instead, we'll remove all
parameter selections onFocus, in a later patch.

This reverts commit 787d44af66.

Bug: T312017
Change-Id: Ia1dc8061dfd1813a58befff5adc5c3882b54d8e2
2022-07-07 15:24:11 +02:00
jenkins-bot fd86b7f38d Merge "Autofocus template input field on dialog open" 2022-07-07 13:18:53 +00:00
jenkins-bot e6737b55af Merge "Drop StackLayout" 2022-07-07 13:17:08 +00:00
Andrew Kostka 3f8387af17 Autofocus template input field on dialog open
Bug: T312205
Change-Id: Id3843b2c7ad6b3eb4a11e0c6d288dd69804973f8
2022-07-07 14:26:17 +02:00
Adam Wight 483528affe Drop StackLayout
Gets rid of some unused behaviors that we've already disconnected.
Brings the remaining styling into VE files.

Bug: T312524
Change-Id: Ie94472019ba41124831621c45713861297219594
2022-07-07 13:06:24 +02:00
Svantje Lilienthal e286e11a6c No highlight for selected template names
Bug: T311204
Change-Id: I949ede551b122c365954ef5315103e0749353288
2022-07-07 09:16:05 +00:00
jenkins-bot ab8fba0f2a Merge "Remove dead code when adding parameters" 2022-07-07 07:26:05 +00:00
jenkins-bot 1548904bc4 Merge "Update styling for the floating help button" 2022-07-06 16:16:22 +00:00
WMDE-Fisch be05a524d1 Remove dead code when adding parameters
Both parts are not relevant anymore:
- The first part is about focusing parameter placeholder pages.
  These are added after load only when using the keyboard shortcut.
  Focus will be done separately in that case.
- The second part is dead code since some time now. Also it is not
  needed here. Scrolling to newly added parameters is done via the
  setPage() method in the layout.

Bug: T289043
Change-Id: I928afef01b9e62a9da91db10340d9df78717e125
2022-07-06 15:54:29 +00:00
jenkins-bot 9754f8fd8f Merge "Focus the input after switching to the content pane" 2022-07-06 14:19:41 +00:00
Andrew Kostka d097a83c54 Update styling for the floating help button
Bug: T310762
Change-Id: I2f8d668caad224b51e095ba423a761014a5a994e
2022-07-06 15:43:13 +02:00
Adam Wight f93527e00f Scroll even if sidebar selection hasn't changed
This should be safe because selection is only set from use cases
in which we do want the sidebar scrolled to the matching item.

Bug: T290975
Change-Id: Ib0c66bb048768d633d0f638c775eba24cd652db8
2022-07-06 14:58:55 +02:00
Adam Wight b20b5dbe9d Focus the input after switching to the content pane
... except on mobile because the keyboard will expand.

Need to disable a spurious focus when the element isn't visible,
because this was making it impossible to focus later once it becomes
visible.

Bug: T290975
Change-Id: I0e6057d1cfbef24324a287e50e4988f935720c61
2022-07-06 14:47:50 +02:00
Adam Wight d9e56ef69a Remove unused autofocus code
Two-pane layout setPage no longer does any focusing, so this variable
is not respected anyway.

Change-Id: I1ddb06e11b68be300013a92b2dd05b90583ddc2a
2022-07-06 14:12:35 +02:00
jenkins-bot ddd56ff542 Merge "Use "Add template" label in the sidebar and as the header" 2022-07-06 11:40:48 +00:00
Andrew Kostka d5b8107902 Use "Add template" label in the sidebar and as the header
Bug: T311107
Change-Id: Ib85c08c5d72e621a7687dc393b2f8d9443f13b06
2022-07-06 10:55:43 +00:00
Thiemo Kreuz 217885013a Refine height calculation of template parameter docs
Instead of using a potentially weird fractional value like 3.2 lets
use the floor(ed) value, e.g. 3. Reasoning: These fractions are not
from text lines but optional margins between some of the lines. These
margins should not be counted.

Also increase the cut point from >=3 to >3. This is much closer to
the original specification that talked about "2 lines plus x
characters". See T273426. These "x characters" are the 3rd line.

Bug: T310775
Change-Id: Ib5d1642d7967593dd5f13e556c6244fc44677af4
2022-07-06 10:40:51 +00:00
Andrew Kostka 08e8581944 Use full dialog width for add template input on mobile
Bug: T311109
Change-Id: I5b6beced37d569689470d19361420bead38d18cb
2022-07-06 11:52:49 +02:00
jenkins-bot 4730987f2c Merge "Remove selection when selected parameter is unchecked" 2022-07-06 08:11:01 +00:00
WMDE-Fisch bc4fcfa04a Remove selection when selected parameter is unchecked
Adjusting some methods to support the usecase.

Bug: T312085
Change-Id: I4b97ab912f9ac0046f72167c3b573ee8e14e58d9
2022-07-05 19:22:36 +02:00
jenkins-bot ea21d8eacc Merge "Restore selection after keyboard parameter navigation" 2022-07-05 13:39:22 +00:00
jenkins-bot a5b9538a6b Merge "Drop unused active state" 2022-07-05 13:16:18 +00:00
Adam Wight b275bb33d4 Remove max-width limitation on inputs for mobile skin
All elements should be able to use the full window width.

Bug: T311109
Change-Id: I1e3ca6718a44cbdaa74d0c5bc94d0f475cd5e6bd
2022-07-05 14:02:43 +02:00
Adam Wight 787d44af66 Restore selection after keyboard parameter navigation
When blurring out of keyboard parameter navigation, the
last-selected parameter will be highlighted again.

Bug: T312017
Change-Id: I8b0fb667b44b324529d4c45c39bf21573517f989
2022-07-05 13:37:38 +02:00
Adam Wight 441ffc5a84 Drop unused active state
`OO.ui.PageLayout.prototype.setActive` explains that the "active"
state only makes sense for a case we don't support, when a booklet
layout is used in non-continuous mode.

Change-Id: Ib5ddd605f29e82ebc85b833ac96b70ff4c95e502
2022-07-05 13:16:31 +02:00
Adam Wight fd002928e2 Always scroll to current page
Most of setPage's side-effects are redundant and can be skipped when
reselecting an item which already the current selection—except for
scrolling, which is useful to perform every time, for example when
clicking on the already-selected sidebar item.

Bug: T294348
Change-Id: I90ba14817e5536ac018eb70102f657f29a29644d
2022-07-05 11:32:02 +02:00
jenkins-bot dca4e559e7 Merge "Fix broken scroll on sidebar toggle" 2022-07-04 14:33:34 +00:00
jenkins-bot b380f84d42 Merge "Prevent highlighting the first parameter when clicking to remove" 2022-07-04 14:24:17 +00:00
WMDE-Fisch ed4fa49520 Fix broken scroll on sidebar toggle
This was using the currentPage from the StackLayout. It will not
be updated there anymore.

Also removing the line about focus after toggle. We do not want
that anymore afaik.

Bug: T312015
Bug: T289043
Change-Id: I8b6eedd580d49604014118171c6da62849752d53
2022-07-04 16:00:39 +02:00
jenkins-bot 90a5f8aaad Merge "Reuse hard and soft action handlers" 2022-07-04 13:51:38 +00:00
Adam Wight 6c16f93504 Prevent highlighting the first parameter when clicking to remove
Tabbing into the parameter select list should highlight the first
parameter, but focusing a checkbox by clicking it to uncheck should
not trigger this highlighting.

Copied from the superclass method.

Bug: T312014
Change-Id: Ia1fd450bad4861eb2815ca21eae69ee31e40ac08
2022-07-04 15:50:56 +02:00
Svantje Lilienthal 788e21e0a4 Clicking template or parameter name scrolls it to top of dialog
Only works with changes in OOUI core. See https://gerrit.wikimedia.org/r/c/oojs/ui/+/753987

Depends-On: Ie822dc87bc5748985de5637cb35f1940837f64d3
Bug: T299036
Change-Id: Idaccc7c95d67abe14621eabb7725ba07e449ab1e
2022-07-04 15:23:34 +02:00
Adam Wight c2e111239b Reuse hard and soft action handlers
New sidebar events take a `soft` parameter allowing reuse between
"hard" and "soft" selection and parameter add.  The "hard" variant
causes a content-pane focus.

Bug: T311987
Change-Id: Ic49718840ae56eb4cfab01ce964a2fbc2d8db63b
2022-07-04 13:42:34 +02:00
Adam Wight 14deb729a4 Rewrite handlers using canonical setPage
More idempotent approach to state change, using a common function
that has all the side-effects.

Bug: T311987
Change-Id: I13e64ff5262295a60c28572855cfe36da7c3ff41
2022-07-04 13:41:19 +02:00
Adam Wight 8448f513a4 Two-pane layout setPage has all the desired side-effects
This becomes the canonical method to call when we want to update the
template dialog to select a new item.

Bug: T311987
Change-Id: Ie7880bfde41b77f0e6367cc8e3a78edb299391ce
2022-07-04 13:31:06 +02:00
Adam Wight 0c4716aaaf Replace event wiring for stackLayout.set with explicit call
Call the handler directly.  This avoids the `set` event handling for
add and remove parameters, causing minor behavior changes:

Moves the "reselect" logic after removing pages, from StackLayout to
the two-pane layout class.

Bug: T311987
Change-Id: I46454d184d4718bed45caf9f41487364611f1f44
2022-07-04 13:26:56 +02:00
Adam Wight a104d0c888 Use local state rather than stackLayout.currentItem
Bug: T311987
Change-Id: I62ddc013ae255bcbaf3478c7f0949238245988e6
2022-07-04 10:40:35 +02:00
Adam Wight 3e2d594148 Minor doc updates
Change-Id: I87156e203c131545c463bfa2307b2d8f7c5507ca
2022-07-04 10:40:02 +02:00
jenkins-bot b902ad7882 Merge "Gallery image: Hide more attributes when diffing" 2022-07-01 22:33:56 +00:00
jenkins-bot e2ecb537e9 Merge "Gallery image: Use thumbUrl if src is not set (new images)" 2022-07-01 22:33:54 +00:00
WMDE-Fisch 4371c4fde2 Adding lines in doc comments
Change-Id: Ie9a8ae32b4fdf476ad607f805c91357d824474a4
2022-07-01 16:25:40 +02:00
Ed Sanders d1effc5c16 Gallery image: Hide more attributes when diffing
Only 'altText' should be described, everything else
is computed or, in the case of `resource`, results in
nodes being incomparable.

Change-Id: I586b67a0cfa30fae10a86fe3791f7e532c0ed754
2022-07-01 13:14:49 +01:00
Ed Sanders ce9619618b Gallery image: Use thumbUrl if src is not set (new images)
Bug: T310623
Change-Id: I5ded2dcf1864e0cb4a3df64b3b8bc873f7a35fe7
2022-07-01 13:14:03 +01:00
Adam Wight 1653815e8c Rename event to be descriptive, not prescriptive
Events should be named based on what happened, not what the
side-effect will be.

Change-Id: I563db48181e1db79ca22ef2ba1e25d5186976110
2022-07-01 12:42:23 +02:00
Adam Wight d93e35a0d1 Reconnect "soft select" event
Bug: T311296
Bug: T311711
Change-Id: Ic4ee673d339ec0b4b5f54f3d7a878e3ab03f7113
2022-07-01 12:30:01 +02:00
jenkins-bot fe8dd8f604 Merge "Use short style to wire event reemission" 2022-07-01 07:57:03 +00:00
jenkins-bot 22c402356a Merge "Remove set event with no listeners" 2022-07-01 07:57:01 +00:00
jenkins-bot 0c49b144d9 Merge "Fix gray highlighting for parameters" 2022-07-01 07:24:53 +00:00
Adam Wight d592c75623 Use short style to wire event reemission
Change-Id: Id39ecc8e96627a228c8da91628f769cab42f71bd
2022-06-30 15:55:17 +02:00
Adam Wight 68e2f6279a Remove set event with no listeners
Change-Id: I4bdabf0129b65d76281f9f18b92ba202bb9840d3
2022-06-30 15:55:17 +02:00
jenkins-bot 80344da282 Merge "Select parameters like templates" 2022-06-30 13:54:50 +00:00
Andrew Kostka 9821f860e8 Fix gray highlighting for parameters
Bug: T311204
Change-Id: Iff4c5deff67c74496fe98fa3ee58b97ff9a7c847
2022-06-30 15:20:14 +02:00
Svantje Lilienthal b4ed246db2 Re-add refreshControls to TwoPaneDialog
809881 removed one refreshControl too many

Bug: T311296
Change-Id: I72eb03e3db948213117a94d86d79401448759342
2022-06-30 14:31:13 +02:00
Adam Wight aa7501a8e3 Select parameters like templates
Bug: T311204
Change-Id: I61294087963f4659f065f011a2cac350cfd35dda
2022-06-30 14:23:41 +02:00
jenkins-bot a9ac3052db Merge "Rely on selection changed event for updating controls" 2022-06-30 08:18:35 +00:00
jenkins-bot 7570742468 Merge "Calculate controls using sidebar selection" 2022-06-30 08:00:15 +00:00
jenkins-bot df26e6f9c3 Merge "Template dialog controls default to disabled" 2022-06-30 07:28:48 +00:00
Adam Wight 7d023e2dce Rely on selection changed event for updating controls
This event makes other calls redundant because it's always sent from
setPage and onReplacePart.

Bug: T311296
Change-Id: If214a713ed7299320d499c3e5687eda013fe0aab
2022-06-30 08:55:38 +02:00
Adam Wight 699c73893d Calculate controls using sidebar selection
In an important use case (spacebar selection of sidebar parts), the
content pane selection isn't updated.  This patch switches to read
the sidebar selection rather than the content pane selection.

Bug: T311296
Change-Id: I684a9edf04b6615cc840bbb89e8c1d03a0ab8e94
2022-06-30 08:53:15 +02:00
Adam Wight d32303587e Template dialog controls default to disabled
If nothing has been selected, the action buttons should be
initialized in a disabled state.

Bug: T311608
Change-Id: I32fee0d73f6e13e09dc421c944df73b79e0260bb
2022-06-30 07:55:25 +02:00
Thiemo Kreuz 5077780216 Remove all BookletLayout OutlineItem code
No longer need to manage the connection between outline items and
content pane pages.

Bug: T310866
Change-Id: I8dae7efa18e97ce5e1c84d963f1a32f09dd7e7cb
2022-06-30 05:29:46 +00:00
Adam Wight d6ebbf0ea3 Remove outlineSelectWidget (old sidebar)
It seems that the controls widget was the only side-effect we still
needed for maintaining existing behavior.

Bug: T310866
Change-Id: I507dacef4e56946b836b0fca31effce611260aec
2022-06-29 17:08:51 +02:00
Thiemo Kreuz 767a928a23 Move remove button toggle code to more appropriate place
This patch does a few closely related things:
* Replace a direct dialog → sidebar access with dialog → layout →
  sidebar.
* Move the misplaced removeButton.toggle() to a more appropriate
  place.

Bug: T311069
Change-Id: I5a2802aab587a6f7de4681bce4e9961a064ef8ee
2022-06-29 16:31:25 +02:00
jenkins-bot 5720489b3a Merge "Remove unused code and properties from forked ControlsWidget" 2022-06-29 10:45:02 +00:00
Thiemo Kreuz 269770fe76 Remove unused code and properties from forked ControlsWidget
Bug: T311296
Change-Id: I8eb279f05901ace48cf9cc70ac8ce0ee6e9b40e1
2022-06-29 10:26:26 +00:00
Adam Wight 3326eb7240 Drop unused chainable signatures
Change-Id: If0de666db6004f08fbd3a08a0414b66184bb95a0
2022-06-29 10:09:10 +00:00
Adam Wight 2ff0f6d5f2 Move custom buttons into outline controls
Bug: T311296
Change-Id: I5cc45f6a05ca029e319e04e76f6e35bfd5b506a6
2022-06-29 10:08:35 +00:00
jenkins-bot 3018a57a10 Merge "Create new refreshControls function in TwoPane" 2022-06-29 10:06:52 +00:00
Svantje Lilienthal ead1e258d5 Create new refreshControls function in TwoPane
Bug: T311296
Change-Id: I5a06238a7cf58189616f1b812bec74e99ef7922f
2022-06-29 11:44:07 +02:00
Jan Drewniak d88fd9b6a8 Prevent skinStyles from applying to the Vector 2022 skin.
With related changes to the DOM in the new Vector skin, most skin
styles are no longer necessary for Vector 2022.

This patch also fixes an issue with the font-size of the toolbar
when $wgVectorTitleAboveTabs = true.

Bug: T310197
Depends-On: Idae6755c90eacaab1a9daa88c6e28850d427810c
Change-Id: I6776f08b24f83cf4daeef70bfdeb73dfeafc785a
2022-06-28 19:51:42 +02:00
WMDE-Fisch 1ec50247f2 Remove deprecated CSS from old add parameter search
We're not implementing a search widget with results anymore. It's
a leftover from the cleanup after feature flags got removed.

Bug: T310859
Change-Id: I9c177ae92a7d3e13a4fff248a6c86f1aab89f82c
2022-06-28 14:37:41 +00:00
WMDE-Fisch ff7eaf5a9b Move MWAddParameterPage styles to own file
Change-Id: I829de89445fd1927209506f5cfbdd9b796953bfe
2022-06-28 14:37:35 +00:00
jenkins-bot fea14dc60b Merge "Remove CSS rule for hiding fieldset icons and lables" 2022-06-28 14:34:59 +00:00
jenkins-bot 4352590e72 Merge "Move MWTemplatePlaceholderPage styles to own file" 2022-06-28 14:32:01 +00:00
jenkins-bot fe532072f6 Merge "Fixes for focusPart" 2022-06-28 13:56:09 +00:00
Adam Wight d138cd04bf Fixes for focusPart
We missed some usages.  Follows up on I5f05bc119dc213d8

Change-Id: Iaecb804300c37d43108a14e8db0068deb58f503c
2022-06-28 15:31:54 +02:00
Adam Wight 8d47e7119c Hide access to outlineSelectWidget
Other classes no longer need this function.

Bug: T310866
Change-Id: I368bd797c31a4ec600cfbee674aebf27210a1ee9
2022-06-28 15:14:34 +02:00
jenkins-bot c29690b1f1 Merge "Move template dialog sidebar container into forked BookletLayout" 2022-06-28 12:56:24 +00:00
jenkins-bot 8a2632a846 Merge "Move last remaining sidebar event handler into forked class" 2022-06-28 12:54:30 +00:00
jenkins-bot 10561120cf Merge "Move sidebar-related event handlers down into BookletLayout fork" 2022-06-28 12:54:28 +00:00
WMDE-Fisch 9a80c32f18 Remove CSS rule for hiding fieldset icons and lables
The original intend of that rule was not clear to me and it seems
it got dragged along for some time. I checked the DOM in the
collapsed state to see where this could even apply in the new
interface and found no other place than the one where we overwrite
it again.

I guess it can go away.

Change-Id: I2886db33c5f06d1c49acc4743c9acc198339de36
2022-06-28 14:24:53 +02:00
WMDE-Fisch ecb00afdab Move MWTemplatePlaceholderPage styles to own file
Change-Id: I5eb98c58a8f429622273fbead492bcca12177aee
2022-06-28 14:10:44 +02:00
jenkins-bot 18924032e2 Merge "Move CSS in MWTransclusionDialog closer together" 2022-06-28 10:05:04 +00:00
Adam Wight 978cefa13b Move template dialog sidebar container into forked BookletLayout
Bug: T310867
Change-Id: I7d2a882b99e4796ecc6594b1cfb638eecd985de2
2022-06-28 12:02:01 +02:00
Adam Wight 2dd9405e38 Move last remaining sidebar event handler into forked class
These are internal to the two-pane layout and sidebar, so the dialog
doesn't need to be involved.

Bug: T310866
Change-Id: I5f05bc119dc213d8e31db62a3808a2fadaf35d99
2022-06-28 11:35:22 +02:00
jenkins-bot a4024d85e0 Merge "Simplify OutlineControls CSS a little more" 2022-06-28 09:29:50 +00:00
Thiemo Kreuz 31d75a1738 Move sidebar-related event handlers down into BookletLayout fork
Bug: T311069
Change-Id: I95fd2637ef4c39f8547e676dcfb5de333d5278e9
2022-06-28 11:27:02 +02:00
jenkins-bot 1ce7340e55 Merge "Remove old code to focus first input" 2022-06-28 09:19:36 +00:00
WMDE-Fisch b04231bc46 Move CSS in MWTransclusionDialog closer together
Change-Id: I96c21479066f806ed1ec40f38a264ba76230d42c
2022-06-28 10:59:56 +02:00
jenkins-bot 51cd862fce Merge "Adding canGoBack to the properties" 2022-06-28 08:55:53 +00:00
Thiemo Kreuz 77ce583167 Simplify OutlineControls CSS a little more
This is a direct follow-up to I7f22e4b. I found that the way the
margins have been arranged became a little more complicated with
I7f22e4b. This patch tries to go back to the – I think – simpler way
it was done before.

It should look the same as before down to the pixel.

Bug: T311223
Change-Id: I2c7789922078fa98f15f0b65de4c0efdf878a13a
2022-06-28 10:50:33 +02:00
WMDE-Fisch bc1e3efa4b Adding canGoBack to the properties
As disussed in Id23d3ac5e1715387c78916adeb8ca5f675005a5c

Change-Id: I1368199a4b709d5634ca6e20f04323a0227065be
2022-06-28 10:35:44 +02:00
Adam Wight d5f2767605 Remove unused parameter to focus
The one usage of this wasn't working.  FIXME: maybe we want to
restore the behavior, to focus the first parameter in the dialog
after opening.

Bug: T310866
Change-Id: Ibe0151fbedb3a9716bb231b5d398c4ae670fd667
2022-06-28 09:54:39 +02:00
jenkins-bot e8ece4da06 Merge "Drop unused "editable" configuration from template dialog" 2022-06-28 07:28:12 +00:00
jenkins-bot 8c94e2b5aa Merge "Move template dialog sidebar clearing to more appropriate place" 2022-06-28 07:13:27 +00:00
Thiemo Kreuz b0ce363e2b Drop unused "editable" configuration from template dialog
This defaults to false. It looks like this default is used in the
MWTemplateDialog base class. However, it also looks like this base
class is never used on it's own. All users we know use the subclass
MWTransclusionDialog where "editable" is true.

https://codesearch.wmcloud.org/search/?q=%2C%5Cs*ve%5C.ui%5C.MWT(emplate%7Cransclusion)Dialog&files=%5C.js%24

In the process I also remove some comments that literally repeat the
code and don't add any knowledge because of this.

Bug: T310867
Change-Id: Ie245aab80d1e77a8406f5591062e9cf49fd9613f
2022-06-28 09:11:31 +02:00
jenkins-bot e0112df947 Merge "Unhoist variables & remove dead code from BookletLayout fork" 2022-06-28 07:07:36 +00:00
jenkins-bot 5d2d36f9d7 Merge "Remove dead code (not) selecting first template parameter" 2022-06-28 07:03:22 +00:00
jenkins-bot 6641f7da85 Merge "Move .addPromptedParameters() calls to more canonical places" 2022-06-28 06:59:49 +00:00
jenkins-bot ad9630a535 Merge "Cleanup CSS for the forked OutlineControls" 2022-06-28 06:58:13 +00:00
Thiemo Kreuz 0a5b47eee3 Unhoist variables & remove dead code from BookletLayout fork
Declaring variables only when they are needed makes the code more
readable.

Bug: T310859
Change-Id: I454cc622dc5e83ec2c148d0bf59c62124dbd85e8
2022-06-28 08:52:24 +02:00
Thiemo Kreuz fd0b32fe31 Remove dead code (not) selecting first template parameter
This code was meant to select the first parameter of a template the
moment it is added. It's at least partly broken because it doesn't
consider the so called "prompted" parameters that have been added
just a few lines above. It's a questionable feature anyway. We are
going to refine all focus-related behavior anyway. Let's remove this
broken stuff and reimplement it later (probably in a different place)
when we continue working on this.

The FIXME was added in I720ce1a.

Bug: T311223
Change-Id: I1801efe38387b5e7a1b76417c1e5d7db4e4b96d0
2022-06-28 08:42:59 +02:00
Thiemo Kreuz 76f563c929 Move .addPromptedParameters() calls to more canonical places
This was done in 3 rather "random" places:
1. Whenever a template is manually added. But rather late, after the
   template was added, in an event handler that is about focus
   behavior. It should not continue to manipulate the template that
   was just added.
2. When the dialog opens with a template preloaded by name, as it is
   done from the citation menu.
3. When the dialog is about to finish loading.

This patch fixes 2 issues:
* Get rid of a duplicate call (number 2 and 3) when using the
  citation menu.
* Move number 1 to a place where it's executed much earlier, and
  only when the user clicks "add template" in a template placeholder.
  There is no other way to add a template to an existing transclusion,
  but it's still a more appropriate place I feel.

Bug: T311069
Change-Id: I8a65ad703b95ba2092e9ef73493e9903e96b0dd6
2022-06-28 08:40:24 +02:00
Adam Wight 28bdc0a9fb Remove old code to focus first input
This still works for a dialog with just the template placeholder,
because the page is already chosen as "current" in the stackLayout.

Bug: T310866
Change-Id: Ibc1d33b02d34f70548d9f7365e085847ef0b2a51
2022-06-28 08:27:04 +02:00
WMDE-Fisch f1d4793862 Cleanup CSS for the forked OutlineControls
Includes moving CSS that already moved from the TemplateDialog CSS
file to the DialogLayout LESS file.

Width and height had no effect. Neither on desktop/mobile. I guess
the control's height covers for that. Float could be removed due to
the flex layout.

Some more specific rules could cover for the !important overrides.

Change-Id: I7f22e4be37c8f227845aed97281faefe26241091
2022-06-27 21:10:21 +02:00
jenkins-bot 1e094a8868 Merge "Fix broken error message 'visualeditor-saveerror'" 2022-06-27 19:07:18 +00:00
jenkins-bot 4eac26c3cd Merge "Use $.html to refresh page after save" 2022-06-27 17:53:26 +00:00
Ed Sanders 327bd736c5 Use $.html to refresh page after save
Pre-parsing with $.parseHTML is not required as we
1) no longer modified the DOM before appending
2) trust the HTML coming from the API

Change-Id: If549a0e647ce830d4f5de2bb94c08a895e460667
2022-06-27 17:34:19 +01:00
jenkins-bot b44132753b Merge "Remove unused resetScroll function" 2022-06-27 15:11:20 +00:00
jenkins-bot d34c95e4ff Merge "Fork OutlineControlsWidget" 2022-06-27 15:02:14 +00:00
Adam Wight bbe0356f43 Remove unused resetScroll function
Also removes some logic that could only be reached when
`this.scrolling` is true.

Bug: T310866
Change-Id: Id60cfd9d72fd0e38872f58386ea0f0b64a268214
2022-06-27 14:50:00 +00:00
Adam Wight 6de61ccf77 Fork OutlineControlsWidget
Bug: T311223
Change-Id: Id2f9fc89c607c8001e8b150add1ffbcaa318993a
2022-06-27 16:46:11 +02:00
Adam Wight b1a12aeaab Simplify focusing a parameter
We can use setPage, thereby removing a dependency on the
OutlineSelectWidget.

Bug: T310866
Change-Id: If097c9218fe56e63d9c003b10789c94513c20c93
2022-06-27 13:36:46 +02:00
Adam Wight 33d9f9958b Remove findClosestPage logic
This causes one small behavior change: when deleting one of several
wikitext transclusions or a part following a template without
parameters, the selection would previously be set to the *previous*
part, and now it's the *next* part.  This is arguably more consistent
with the behavior when removing eg. templates with parameters, after
which the next part is selected.

Doesn't affect removing parameters.

TODO: We might want to restore the already-broken behavior to focus
the first parameter of a newly-inserted template.

Bug: T310866
Change-Id: Ic5f47e31512d1a3949caf60613bd05b9a3bdf478
2022-06-27 13:36:44 +02:00
jenkins-bot 36e534719c Merge "Remove unused events from forked BookletLayout" 2022-06-27 08:58:39 +00:00
Andrew Kostka 54f4b47794 Add initial tests for ve.ui.MWTwoPaneTransclusionDialogLayout
Bug: T311116
Change-Id: Ie4e1f9f203055f68add6fea0cf04b03215a32942
2022-06-26 17:15:11 +02:00
Thiemo Kreuz 8788077754 Move template dialog sidebar clearing to more appropriate place
This place is much better in so far that it much more obviously gives
us the guarantee that the sidebar and the content pane are always in
sync.

Bug: T311069
Change-Id: I01a7914fcba5d573abb957d0e34fa895874bd94e
2022-06-24 15:24:58 +02:00
jenkins-bot 958082378b Merge "Merge set handler into two-pane class" 2022-06-24 13:11:21 +00:00
jenkins-bot 2fd536469b Merge "Reduce barely used "autoFocus" code in template dialog" 2022-06-24 12:47:07 +00:00
jenkins-bot 5d1486fadf Merge "Merge some CSS rules into the layout less file" 2022-06-24 12:37:52 +00:00
jenkins-bot e54d380992 Merge "Remove newSidbar CSS and merge CSS rules" 2022-06-24 12:32:20 +00:00
Adam Wight 32a14d888b Merge set handler into two-pane class
Bug: T311069
Change-Id: I4cb7e63349904588bb27541d176378aa874d0a63
2022-06-24 12:32:16 +00:00
Thiemo Kreuz 5201c03d04 Reduce barely used "autoFocus" code in template dialog
According to my test one of the two places where this property was
used is impossible to reach with the property set to false. This is
the one I remove in this patch.

This also removes a related method that is entirely unused.

Bug: T310867
Change-Id: I9579a5d894d60560cec77dad7f1e796f8dfca06f
2022-06-24 14:01:57 +02:00
WMDE-Fisch a80f662cfb Merge some CSS rules into the layout less file
Includes adding a less file for minerva layout rules. To make best
use of the less shortcuts and avoid duplication, some selectors
have been slightly changed. Outcome should still be identical.

Change-Id: I92179ecf6045c938cace0e7e809b7ad4cf035727
2022-06-24 13:50:59 +02:00
Bartosz Dziewoński 2239f3cc20 Do not grey out page title while loading on Vector 2022
Follow-up to Idae6755c90eacaab1a9daa88c6e28850d427810c. These styles
still used #content instead of the new way of specifying the target
container.

Extra cleanup:
* Don't apply custom styles to #firstHeading when it's outside of
  the target container
* Remove unnecessary rule (it was added in 6d8fbd8221 to support
  an absolutely-positioned loading toolbar, but it is no longer
  positioned that way)

Bug: T310839
Depends-On: Idb2a743c93316786d6d36e1989cf6620a6092281
Change-Id: Ib5e8f98eacf763e360fae79337d3f2733b1a101b
2022-06-23 17:32:30 +00:00
WMDE-Fisch c295a731ec Remove newSidbar CSS and merge CSS rules
In some cases ve-ui-mwTransclusionDialog-newSidebar could just removed
when there are specific enough classes present so that we can be
sure to not overwrite rules outside our use case.

e.g with the new ve-ui-mwTwoPaneTransclusionDialogLayout-stackLayout

Note that this will also remove some right padding on descriptions
where it seems that it was applied for no reason.

Bug: T310859
Change-Id: I6612fe1cb2ea6bd75e9bc3e6f4d6d8d0c4addc63
2022-06-23 17:42:24 +02:00
Jan Drewniak a3e28fa0bf Rename data-ve-target-container attribute to data-mw-ve-target-container
This data attribute, used to give skins the ability to position VE on the
page, should be prefixed with `data-mw` to prevent it being inserted on
the page by user generated content.

Bug: T310197
Change-Id: Ia6f87535f11ccc7aadb26b7dd9e1ac8a867c377c
2022-06-23 10:49:07 -04:00
jenkins-bot 8fb649e979 Merge "Drop unused "continuous" configuration" 2022-06-23 12:29:57 +00:00
jenkins-bot e7e0b0bcc2 Merge "Remove unused return value from addPromptedParameters() method" 2022-06-23 12:27:46 +00:00
jenkins-bot 65170a656a Merge "Push ownership of the sidebar down into the two-pane layout" 2022-06-23 12:20:12 +00:00
Adam Wight 9f04a2516e Drop unused "continuous" configuration
Bug: T310867
Change-Id: I6773f657d2ad08bb9cdfb1fe2d480fee1d175412
2022-06-23 12:12:05 +00:00
Thiemo Kreuz a38762f90c Remove unused return value from addPromptedParameters() method
Bug: T310859
Change-Id: I192cfcf3f603d7599d3600a1a575ed789ae1fa67
2022-06-23 13:57:18 +02:00
jenkins-bot a536a66799 Merge "Never attach outlineSelectWidget to the DOM" 2022-06-23 11:24:21 +00:00
Adam Wight 90179c48ed Push ownership of the sidebar down into the two-pane layout
Leaves a reference in the TemplateDialog so that we can slowly
migrate the many usages.

Makes no other changes to how the sidebar is managed (yet!).

Bug: T311069
Change-Id: I45403cd32e3adbe357ebad7bbc851f60d92751e5
2022-06-23 11:22:08 +00:00
jenkins-bot b14f3a5965 Merge "Remove duplicate "add parameters" method from template dialog" 2022-06-23 11:17:12 +00:00
Thiemo Kreuz 8eb5cd3815 Remove unused events from forked BookletLayout
The only event in use is "set". The others are never used. Which makes
sense. The driver for everything related to adding or removing parts
is the model. This widget is at the receiving end.

Bug: T310867
Change-Id: I4ef7e59ff05cb02aca59b76fdffa4f1fced76e33
2022-06-23 12:55:28 +02:00
Adam Wight b39bb342ec Never attach outlineSelectWidget to the DOM
Bug: T310867
Bug: T310866
Change-Id: I8e3a12693bbe9f91a171484a03316c9d4c94a2be
2022-06-23 10:50:51 +00:00
Thiemo Kreuz 8854d03552 Inline template parameter id to page name connection
It's never used in a different way. A lot of other code depends
heavily on this fact. Let's hard-code it.

Bug: T310859
Change-Id: I65bbaea47341d74b49ce447c896eb2340f730e17
2022-06-23 12:24:08 +02:00
Thiemo Kreuz 14ba08d406 Remove duplicate "add parameters" method from template dialog
The method in the model (where it belongs) was added via Iaf28035 in
2016. The other via I073c585 in 2014.

Bug: T310859
Change-Id: Idea322aec175600e3055a859ca987afc1fe6dd8c
2022-06-23 12:11:12 +02:00
Adam Wight 004adeef80 Switch to forked BookletLayout
Bug: T310865
Change-Id: If6fcac589fcafffd46beba0b7ea6a6bfb6c0061c
2022-06-23 10:33:12 +02:00
jenkins-bot 6fffc1ac2a Merge "Introduce data-ve-target-container as a skin-customizable VE target" 2022-06-23 00:09:59 +00:00
Jan Drewniak 2e42a46654 Introduce data-ve-target-container as a skin-customizable VE target
Defines an HTML attribute, `data-ve-target-container` that gives skins
the ability to choose which element they want to act as VE's target.

This attribute addresses a need in the Vector 2022 skin, where the
default selector, `#content` was no longer suitable to act as VE's
content container and more flexible approach was needed, so that the
skin itself could define which element VE should use.

This selector falls back to `#content` as was the case previously.

Additional change:
Update modules/ve-mw/preinit/styles/ve.init.mw.DesktopArticleTarget.init-vector.less
to account for the planned change to retain line between tabs and
toolbar in new layout.

Bug: T310197
Change-Id: Idae6755c90eacaab1a9daa88c6e28850d427810c
2022-06-22 20:18:12 +00:00
jenkins-bot 7010803d0f Merge "Remove CSS applied to .ve-ui-mwTransclusionDialog" 2022-06-22 13:51:34 +00:00
jenkins-bot 9a53083ad9 Merge "Revert workaround for oojs when removing selected item" 2022-06-22 12:15:37 +00:00
Adam Wight 8788e3174d Revert workaround for oojs when removing selected item
This hasn't been necessary since ooui-js Id9cf086771, it was to prevent the
BookletLayout from scrolling to the top when removing the currently
selected item.

Reverts I0c1fddfa32b76621a9f1328c8173f0158386aee8

Change-Id: I5752fb273d0e2a3f0e7b6a044e69d68dc3e4b657
2022-06-22 11:57:21 +00:00
Adam Wight 15ef2dc3c6 Remove inaccessible ARIA annotation from old sidebar
This was added via I3b792ff. It's about the old sidebar which isn't
accessible any more.

Bug: T311069
Change-Id: I29919285255a84bd58aa06ee1b2816d25a8112a6
2022-06-22 13:44:23 +02:00
Thiemo Kreuz efc50591c1 Inline private helper functions in MWTransclusionNode
Change-Id: Ie14ad29e214f3440f60a7e13ed660fff85c7c448
2022-06-22 10:43:11 +00:00
WMDE-Fisch 8f80f1189e Remove CSS applied to .ve-ui-mwTransclusionDialog
This class was (accidentally?) removed in 2014 so the styles had
no effect since then. I decided on removing the code that was
unused for 8years. - Alternativly the class could be re-added but
I'm not sure if it makes sense.

See I4b2ba31bed5c4f80940623702d635cacd19e0a66 where this got lost.

Change-Id: Ifcbfc4273e41c08431c6f5b0ca2f2b6d25c34edd
2022-06-22 12:06:04 +02:00
jenkins-bot 1ba1bc76f4 Merge "Remove dead code in MWTemplatePage" 2022-06-22 06:29:47 +00:00
WMDE-Fisch 11f5f6cb59 Remove dead code in MWTemplatePage
Bug: T310859
Change-Id: Ie55d82fb6f3be0b90b8f42aecdd761624b94afca
2022-06-22 00:20:00 +00:00
Thiemo Kreuz a04d56b6a6 Remove some "pocSidebar" related pieces from template dialog
This is a direct follow up for what was done in I83bbb48.

Bug: T310868
Change-Id: Icd9ed2e8f93b269d0d2d8b0fcfae4febab5e45de
2022-06-21 15:50:23 +00:00
jenkins-bot 63090845b6 Merge "Remove dead code in MWTemplateDialog" 2022-06-21 14:52:16 +00:00
jenkins-bot b2bd7516f1 Merge "Remove dead code in MWTransclusionDialog" 2022-06-21 14:49:18 +00:00
WMDE-Fisch ac2e91d1f9 Remove dead code in MWTemplateDialog
Bug: T310859
Change-Id: I04dc450ceb3751e68dc2179a865f45b19a350b43
2022-06-21 16:31:04 +02:00
WMDE-Fisch 8535fa72ab Remove dead code in MWTransclusionDialog
Removing CSS will go into a follow up.

Bug: T310859
Change-Id: I05a0c12ab98ca428aca64181469d8c9cf6311f03
2022-06-21 14:22:47 +02:00
Adam Wight 9f2c8f0928 Copy BookletLayout implementation from ooui-js 0.44.0
Bring over the ES and Less implementation from ooui-js and rename to
fit it into the VE hierarchy, but don't make any other substantial
changes.

Inlines the wikimediaui-themed styles, ignoring apex styles, and
hardcodes the Less constants.

Bug: T310865
Change-Id: Id43dafdf11c5df0d7d78112e5f62a8599bdbc879
2022-06-21 11:06:44 +02:00
jenkins-bot 5bf86bc26d Merge "Rename template dialog pocSidebar" 2022-06-20 15:04:22 +00:00
jenkins-bot df597c81e1 Merge "Different margins for different last elements in the templates dialog sidebar" 2022-06-20 14:57:52 +00:00
Svantje Lilienthal a5831da808 Rename template dialog pocSidebar
Bug: T310868
Change-Id: I83bbb480163532ff56ba6a3a36322d107c737cac
2022-06-20 16:12:50 +02:00
Svantje Lilienthal 7df465971f Different margins for different last elements in the templates dialog sidebar
Bug: T309584
Change-Id: Ife9f1b29f6ba5e61371286cdc53d0dc9196c7cb8
2022-06-20 13:36:54 +00:00
jenkins-bot 579b9896ae Merge "DesktopArticleTarget: Fix fade-in of toolbar tools" 2022-06-20 12:32:10 +00:00
jenkins-bot 8e46912b1b Merge "Fixing css in case the last element has text or checkboxes" 2022-06-20 11:50:56 +00:00
Svantje Lilienthal 3d2d747e50 Fixing css in case the last element has text or checkboxes
Bug: T309584
Change-Id: Id47c5c3e0699d45612d7bd641753afdbf831ce1f
2022-06-20 12:25:10 +02:00
jenkins-bot 9d3ebeba60 Merge "Remove invisible stuff from BookletLayout OutlineItems" 2022-06-20 10:09:10 +00:00
jenkins-bot db6852c1a5 Merge "Bold parameters that contain some value" 2022-06-20 10:04:57 +00:00
Thiemo Kreuz d5857c20f5 Remove invisible stuff from BookletLayout OutlineItems
Technically the old BookletLayout sidebar is still there. But it's
never visible, effectively dead, and meant to be removed. This patch
just empties the OutlineItems of all template dialog related pages
without actually disabling the old sidebar.

Note this partly reverts Ie57f462.

Bug: T310859
Bug: T310866
Change-Id: Ic0b7d703f369045ed342426563f8eeb3e47046db
2022-06-20 09:31:53 +00:00
jenkins-bot 1962bf6dda Merge "Remove dead code in MWTemplatePlaceholderPage" 2022-06-20 08:53:46 +00:00
WMDE-Fisch 6396b030d5 Remove dead code in MWTemplatePlaceholderPage
Bug: T310859
Change-Id: I04de9c4bd3828e8769136d5776037e927ba7b4ab
2022-06-20 10:30:31 +02:00
jenkins-bot 30bd135a94 Merge "Remove small pieces of dead code from MWParameterPage" 2022-06-20 08:29:38 +00:00
WMDE-Fisch 5dd32ea95d Bold parameters that contain some value
Value changes are triggerd and tracked from the parameter page and
change events will be forwared to the outline, if they are relevant.

Initial value is read from the model.

Bug: T308730
Change-Id: I0a3b0faf40aee44889404dcce31d850714360580
2022-06-20 10:27:59 +02:00
jenkins-bot 92feea3068 Merge "Remove dead code in MWTransclusionContentPage" 2022-06-20 08:24:49 +00:00
jenkins-bot c28d3aee70 Merge "Limit template dialog back button to 1 of 3 entry points" 2022-06-20 08:08:43 +00:00
jenkins-bot 30b775e6a2 Merge "Adjust margins in template dialog sidebar" 2022-06-20 07:51:17 +00:00
Thiemo Kreuz b53c38f411 Remove small pieces of dead code from MWParameterPage
Small pieces we forgot to remove in Ie57f462.

Bug: T310859
Change-Id: I29afb65456c4a0a6f482fcdd56785bf6232c0470
2022-06-20 09:49:00 +02:00
Thiemo Kreuz 6458c346d8 Limit template dialog back button to 1 of 3 entry points
There are 3 ways to enter the dialog:
* Editing an existing template.
* Start empty.
* Start with a known template name.

The back button should only ever appear in one of the three modes.

The last mode is the one that's used in the Cite dialog.

Bug: T310602
Change-Id: Id23d3ac5e1715387c78916adeb8ca5f675005a5c
2022-06-20 07:46:03 +00:00
Ed Sanders dcab210581 DesktopArticleTarget: Fix fade-in of toolbar tools
Bug: T310711
Change-Id: Icf76e8d4d743e3b43ab0d250c7a57c4ad4ce53d8
2022-06-17 23:21:32 +02:00
WMDE-Fisch bf2f40e8d4 Remove dead code in MWTransclusionContentPage
The outline item is only used by the new sidebar for the move and
remove flags it seems.

Bug: T310859
Change-Id: Ia74e5b0e3dbf81e745137b181ed34a4d48dac42c
2022-06-17 16:46:30 +02:00
jenkins-bot e2a3629aa8 Merge "Remove redundant error message used sometimes when switching" 2022-06-17 13:24:10 +00:00
jenkins-bot 97d291586c Merge "Remove dead code in MWParameterPage" 2022-06-17 12:51:30 +00:00
jenkins-bot ed91ca9cd4 Merge "Remove obsolete "search for a parameter" page and widgets" 2022-06-17 11:39:08 +00:00
WMDE-Fisch 3273b7e5bd Remove dead code in MWParameterPage
Parameters do not have an "OutlineItem" anymore so the code for
that was completely removed.

Bug: T310859
Change-Id: Ie57f462b8fda4505b99ee5bc9d788908d18d9c64
2022-06-17 12:25:40 +02:00
Thiemo Kreuz 218ac78960 Remove obsolete "search for a parameter" page and widgets
… as well as messages, CSS, and icons that are now unused.

Bug: T310859
Change-Id: I1a2797728788cf1a86299414c1430ded0b362d4e
2022-06-17 10:23:00 +02:00
jenkins-bot ec2882c583 Merge "Stop using deprecated "ParameterPlaceholderPage" class name" 2022-06-17 07:16:22 +00:00
jenkins-bot e70ca4e4e0 Merge "Log if an edit attempt began from the sticky header" 2022-06-16 18:01:26 +00:00
jenkins-bot 1119d52cd8 Merge "Fire new 'wikipage.tableOfContents' hook to update TOC after save" 2022-06-16 17:28:50 +00:00
Thiemo Kreuz 1a2bb91310 Stop using deprecated "ParameterPlaceholderPage" class name
Removing a class name that's going to be deleted from places where
it's not strictly needed, e.g. comments.

Bug: T307188
Change-Id: Ifb14695d05510d2c0e25623afa99c4e84af3aaf9
2022-06-16 18:09:26 +02:00
jenkins-bot a4846c4844 Merge "Adjust margin in mobile template dialog" 2022-06-16 12:52:13 +00:00
Andrew Kostka 3205ec1d7c Prevent the add undocumented parameter button from overflowing
Bug: T309604
Change-Id: I10590c11d2feba2af5bb6ec7cc1397cea26301e4
2022-06-16 12:43:13 +02:00
Svantje Lilienthal 4a48613119 Adjust margin in mobile template dialog
Bug: T309584
Change-Id: I9d5148fe958dd7e11ed656790972c6197f748901
2022-06-16 10:29:15 +00:00
Bartosz Dziewoński 5622576ef9 Fix broken error message 'visualeditor-saveerror'
The message 'visualeditor-error-invalidresponse' doesn't exist,
it has been removed in 5f1c68945d.
MediaWiki API methods can return an error message for this case.

The message 'visualeditor-saveerror' is not used anywhere else.

Change-Id: I3f5617b94135fa602b714aafc0eb6b16f2cd77df
2022-06-16 00:35:13 +00:00
Ed Sanders 841dd49da0 mw.Target: Allow more options to be passed to auto-save
Instead of just suppressNotifications, also include:
* Document ID
* Storage interface

Depends-On: Id7ca1dcf84a82b8e16109659b8f0f0d9a5d064fb
Change-Id: I6ab00c089c9ae1a8bb05ce9405f1f1f2fd0915ca
2022-06-15 23:48:51 +00:00
Bartosz Dziewoński 559d85f0f4 Remove redundant error message used sometimes when switching
The API error messages already explain everything well enough,
we pass them directly into a very similar popup in #loadFail.
This message is older than the pretty API error responses,
and didn't work with them well.

Bug: T306763
Change-Id: Ie0d8dc24c967cce02579d6c0539a55ba14372f84
2022-06-16 01:28:19 +02:00
Ed Sanders bd128f1b10 ArticleTarget: Restore 'commandHelp' to documentCommands
Was removed upstream in I42e32bd88a.

Bug: T154626
Change-Id: I390b706f19d479e0bd98ba6207cece661135676c
2022-06-15 22:46:15 +00:00
Jon Robson d8be7091a6 Ensure the edit/view tabs are never marked as "uneditable"
Since VisualEditor cannot be sure about how skins have marked up the
page, the code that marks content as uneditable (not clickable) can
be tightened further to make sure the edit and view tabs are not
marked.

This fixes the issue where the tabs are part of the content area

Bug: T162503
Bug: T310197
Change-Id: I4e7388c2e3b681b766068639ab9325bb6289562d
2022-06-15 22:27:53 +00:00
Ed Sanders 44f4068ecb Use surface's cancel command to close the editor
As this is a surface command, rather than a documentTrigger, pressing
escape will not close the editor if done elsewhere on the page, e.g.
in the site search bar, or an unrelated modal.

Move the logic to ArticleTarget as this could theoretically work
on the mobile site with a keyboard.

Allows us to remove some hacks around the ToolbarDialog that are no
longer necessary.

The command can also be used by the MWBackTool (which should be renamed)
and allows us to remove some custom logic from it.

Bug: T310694
Bug: T310695
Bug: T306763
Change-Id: I91ee6916a91d80d9872b3b44dad7eca55ad1acc4
Depends-On: I29f6af4cc7c71a63a6d1bafc53d16b9abd1b60ec
2022-06-15 19:24:21 +00:00
Ed Sanders 987d6f5ea2 mw.Platform: Fix parent constructor call
Change-Id: I4a2197d07a4e2ac576116310d09e8b2236430a34
2022-06-15 16:46:09 +01:00
Svantje Lilienthal 2a5f366ad1 Adjust margins in template dialog sidebar
This patch adds top and bottom margins for each transclustion
part, excluding the top of the first element and the bottom
of the last if those are non-indended ones (ButtonWidget).

Bug: T309584
Change-Id: Ibdcf1293676bd59c7868f3d197805c8b9e743cdc
2022-06-15 13:58:37 +00:00
WMDE-Fisch 82718bf70a Remove feedback message link
The testing phase for the implemented features is finished. So the
feedback link for the project can be removed.

Also added missing documentation for a message key used.

Bug: T307188
Change-Id: I2e2e4ff58d2bacda5ae841bcf6f418e786a3967e
2022-06-15 12:37:14 +00:00
Adam Wight 1b4c81c27d Remove $wgVisualEditorTransclusionDialogInlineDescriptions feature flag
The feature is always enabled now.

Bug: T307188
Change-Id: Id8b39d44901dee9118837fc4670d7faa4ef19b43
2022-06-15 12:09:47 +02:00
jenkins-bot 9026cf60db Merge "Restore internal mechanism to use either back or close button" 2022-06-15 09:35:06 +00:00
jenkins-bot 59ad19d20c Merge "Minor performance improvement for collapsible template docs" 2022-06-15 09:23:42 +00:00
Adam Wight f7050a2bac Restore internal mechanism to use either back or close button
For some use cases of the transclusion dialog such as Insert
Citation, the back button is inappropriate and we want to keep the
close box.

This partially reverts commit 2e2e40e76e.

Bug: T310602
Change-Id: If68a822c260618c0a93eb8d0c46d2b452fee8baa
2022-06-15 11:09:50 +02:00
David Lynch dface70a04 Log if an edit attempt began from the sticky header
Bug: T298634
Depends-On: I871494b6e783018b1433f294e09b0d53dded6c3d
Change-Id: I17991d5a2be128c866b5ec5d802269066da8b106
2022-06-15 02:55:53 -05:00
jenkins-bot 6a7da15fe5 Merge "Support the upcoming mw:File typeof" 2022-06-14 15:25:11 +00:00
Thiemo Kreuz 224e73d91b Minor performance improvement for collapsible template docs
I benchmarked the template dialog before and after the change made in
I0f35a19 with a large 200 part multi-part template. I measured only
the time spend in .updateSize().
Before I0f35a19: 3.6s
After: 4.6s
With this small fix here: 3.6s

Bug: T309875
Change-Id: I2c2892e173ba70c746fb71624c65b7f4ffde4419
2022-06-14 16:04:27 +02:00
jenkins-bot 1d8fb68669 Merge "Remove $wgVisualEditorTemplateSearchImprovements feature flag" 2022-06-14 12:41:09 +00:00
jenkins-bot 5b01b11724 Merge "Fixing positioning of more/less button on window resize" 2022-06-14 09:25:16 +00:00
Adam Wight e1ea921f76 Remove $wgVisualEditorTemplateSearchImprovements feature flag
The feature is always enabled now.

Bug: T307188
Change-Id: I34a3db44355d93413f611b99cd80b876d8737413
2022-06-14 10:48:19 +02:00
jenkins-bot 888f346909 Merge "Change TransclusionModel.nextUniquePartId() to return a string" 2022-06-14 08:30:09 +00:00
jenkins-bot cbeb7da3b9 Merge "Clean-up users storage after search message removal" 2022-06-14 07:17:08 +00:00
WMDE-Fisch 13f5637290 Clean-up users storage after search message removal
I'm more in favor of leaving no garbage behind. The TODO with a date
is a good way of making sure this gets removed eventually.

This could have been part of Ie6eea76. The new code is added to the
same spot where the code removed in Ie6eea76 originally was.

Bug: T296471
Depends-On: Ie6eea76dacdc614ecb910c48e7e1f519b8c69322
Change-Id: Idec63201ff4aa52a0c53c6d007577a93c94e0ec0
2022-06-14 06:59:46 +00:00
jenkins-bot d7140912c7 Merge "Fix tab messages being changed wrong by JavaScript" 2022-06-13 21:15:09 +00:00
Bartosz Dziewoński dc842277c7 Fix tab messages being changed wrong by JavaScript
Following the MediaWiki changes from T301203, we should use
the messages 'skin-view-edit' and 'skin-view-create' instead
of 'edit' and 'create'.

(Also remove redundant definitions in extension.json, we load
all messages listed in 'VisualEditorTabMessages'.)

Bug: T310529
Change-Id: If055fa2a4dc009be869425e6c2262c9b62056179
2022-06-13 20:21:32 +02:00
Svantje Lilienthal 311d26c9d4 Fixing positioning of more/less button on window resize
Bug: T309875
Change-Id: I0f35a191b39b1385a9e9f8ce77de3f033c420c55
2022-06-13 14:55:37 +02:00
jenkins-bot 3162a007c6 Merge "Change template model to not merge conflicting aliased parameters" 2022-06-13 12:27:33 +00:00
jenkins-bot f79cecc32e Merge "Remove/update template related comments that just repeat the code" 2022-06-13 12:26:01 +00:00
jenkins-bot b99ed46e1b Merge "Improve test coverage of template dialog outline" 2022-06-13 12:24:01 +00:00
jenkins-bot 24ec9b2783 Merge "Add prefixsearch fallback test for MWTemplateTitleInputWidget" 2022-06-13 12:12:09 +00:00
jenkins-bot fcf849ddb0 Merge "Remove $wgVisualEditorTransclusionDialogBackButton feature flag" 2022-06-13 08:12:40 +00:00
jenkins-bot 682b405cf6 Merge "Remove $wgVisualEditorTransclusionDialogSuggestedValues feature flag" 2022-06-13 08:00:50 +00:00
Arlo Breault 0533f49fd5 Support the upcoming mw:File typeof
The "mediaClass" property now only serves to capture the original class
found on the media so that it can be roundtripped without causing dirty
diffs.  In the 2.4.0 version of Parsoid's output, that will still be
the usual Image/Audio/Video.  As of 2.5.0, it will always be File and
the mediaClass property can be dropped.

Parsoid is currently forward compatible with serializing mw:File, so
edited or new media can use that type already.

The contextmenu item for media has been updated to make use of the
"mediaTag" instead of mediaClass to continue distinguishing media types.
That was the only place a grep of mediaClass turned up any use.

Bug: T273505
Change-Id: If5dc6b794dacd6973d3b2093e6b385591b91d539
2022-06-10 14:29:31 -04:00
Adam Wight 2e2e40e76e Remove $wgVisualEditorTransclusionDialogBackButton feature flag
Feature is always enabled now.

Bug: T307188
Change-Id: I70305ec3d2ed9cfb767ee9ea90e8ed6c93cfbdbb
2022-06-10 17:33:56 +02:00
Adam Wight 23f0bdf822 Remove $wgVisualEditorTransclusionDialogSuggestedValues feature flag
Feature is always enabled now.

Bug: T307188
Change-Id: I6f8288d31fecc6827a7a9e5e9705239e15c86ae2
2022-06-10 16:40:06 +02:00
Svantje Lilienthal 6072c46ffc Tighten spacing in VE template dialog
Bug: T308646
Change-Id: Ic785838d76dfbe2f8b776e67ccccf47fca717205
2022-06-10 14:08:56 +00:00
jenkins-bot 03a2523501 Merge "Show all elements when expanding a collapsible description" 2022-06-10 13:46:38 +00:00
Svantje Lilienthal 58fd0531d9 Remove updated feature message about search
Bug: T296471
Change-Id: Ie6eea76dacdc614ecb910c48e7e1f519b8c69322
2022-06-10 13:13:51 +00:00
Bartosz Dziewoński d6b5001580 Fire new 'wikipage.tableOfContents' hook to update TOC after save
Bug: T294950
Bug: T307480
Depends-On: I6cf76c870124c162dc1bcbc2f7e9ca0c5fdcd10e
Change-Id: Icaeda68ded94a04edef7a3629385eeb232048684
2022-06-09 11:31:50 -04:00
Andrew Kostka c8ad755112 Show all elements when expanding a collapsible description
Bug: T309875
Change-Id: If69b8bcf5574210fbc5c0b533a18977e05d7b5a4
2022-06-09 12:38:26 +02:00
Thiemo Kreuz 4c7167b571 Change template model to not merge conflicting aliased parameters
Before the (intentional) design decision was to not do anything special
when the same parameter is used multiple times (via aliases). Garbage
in, garbage out. Only the first usage of the parameter would work as
intended. The rest was ignored and subsequently removed from the
wikitext.

New design decision: Track and display duplicates as they appear in the
wikitext.

Notes:
* It's not possible to create such a situation in VE. Do this via
  wikitext.
* Labels will be made distinguishable via T309198.
* Possible warning messages will be added later.
* The behavior when unchecking a duplicate will be specified later.

Bug: T309198
Bug: T310248
Change-Id: I6011344638cdad8529d8f57513ef51b5237eb878
2022-06-09 09:26:41 +00:00
Ed Sanders 3448efc02c Update toolbar negative margin for new padding in vector-2022
Changed upstream in I5d807f09.

Bug: T309398
Change-Id: Iaf28104d2d1d7b69dd3b6144d3f6fc33711fd5ce
2022-06-09 00:29:56 +01:00
jenkins-bot 201066904f Merge "Get rid of figure-inline compatibility" 2022-06-08 19:47:22 +00:00
Sam Smith d1c8a6b1be Also log EditAttemptStep events via Metrics Platform
The EditAttemptStep instrument is a candidate for migration to the
Metrics Platform [0]. The first step of the migration is to log events
both using the Event Platform (i.e. via mw.eventLog.submit()) and using
the Metrics Platform Client (i.e. via mw.eventLog.dispatch()).

The Metrics Platform Client can mix in additional information -
so-called context attributes [1] - based on the stream configuration.
The majority of the default values mixed into each event via the
mw.eventLog.Schema defaults mechanism are already known to the Metrics
Platform Client.

Note well that the Metrics Platform Client will not log an event without
one or more streams being configured to receive that event. Therefore,
this change is a NOP.

An example stream configuration is given in [2].

[0] https://wikitech.wikimedia.org/wiki/Metrics_Platform
[1] https://gerrit.wikimedia.org/g/mediawiki/libs/metrics-platform/+/aed6738b845/js/src/StreamConfig.d.ts#31
[2] https://phabricator.wikimedia.org/T309013#7953227

Bug: T309013
Change-Id: I7627f116cf32ceb3455a33f4f7bb55208ba92671
2022-06-08 11:57:14 +01:00
Arlo Breault d8bbed42ec Get rid of figure-inline compatibility
Parsoid stopped emitting figure-inline in content version 2.2.0 and VE
requests 2.4.0, which isn't satisfied by the earlier versions.

Change-Id: I5f47fbe85fdca7fe429952709b62f5d1cc548daf
2022-06-07 14:39:09 -04:00
Ed Sanders e4171b944b MobileArticleTarget: Update contentSub
Change-Id: I10db861531bd706e6b93aed3cbc501e5d717572f
2022-06-07 18:47:28 +01:00
Ed Sanders 6adeae03ed MobileArticleTarget: Update categories list if present
This only happens in AMC. Currently it is also not possible
to update categories in VE, but this may become possible if
we enable 2017WTE on mobile.

Change-Id: Ifeb6cc18910ce2fca634bc3e2245aac7e5c37e52
2022-06-07 18:45:56 +01:00
Bartosz Dziewoński 6869bc90fd ve.ui.MWLinkAnnotationInspector: Prevent long sitenames from messing up the layout
Bug: T309443
Change-Id: Ia9e9dacb7f293e2529e8d0766e1117a61e34b3e5
2022-06-01 23:34:19 +02:00
jenkins-bot 0053ed8e70 Merge "Make collapsible descriptions more responsive" 2022-05-30 10:25:57 +00:00
Andrew Kostka efa0e3ae9a Make collapsible descriptions more responsive
Bug: T307986
Change-Id: Ib28ec5a5c73fab8eb2b10ed6153a30028c3505cb
2022-05-27 16:10:00 +02:00
Thiemo Kreuz 64005eb41a Fix template dialog sometimes deleting unrelated params
The previous comment was true, but we forgot another edge-case. The
same parameter can appear multiple times. The old code tried to
delete it 2 times, which deleted something else.

Note that the behavior for duplicates is larely unspecified. We
will work on this soon. This is only a first quick step to fix this
specific bug.

Bug: T309203
Change-Id: If0afb2c19626c3d9db0d109d6559ae74698ed378
2022-05-25 16:01:44 +02:00
jenkins-bot df6b5fab51 Merge "Bump requested Parsoid HTML version to 2.4.0" 2022-05-25 00:01:18 +00:00
jenkins-bot bb7f777ffe Merge "Zero-configuration VisualEditor for mainline" 2022-05-25 00:01:15 +00:00
jenkins-bot 7276bf57cf Merge "GalleryImageNode: Handle broken images" 2022-05-24 01:40:01 +00:00
jenkins-bot 767d1e403b Merge "GalleryDialog: Use correct src attribute when rebuilding DOM" 2022-05-24 01:39:59 +00:00
jenkins-bot 5ac61e20ed Merge "ve.dm.MWGalleryImageNode: Add width/height attributes back to images" 2022-05-24 01:39:56 +00:00
Ed Sanders 5d060c34cc GalleryImageNode: Handle broken images
Most of this logic copied from MWBlockImageNode.

Change-Id: I92c860c53741c5ee48c8bce216987d97a92bc05f
2022-05-23 15:29:42 +01:00
Ed Sanders da8de2e509 GalleryDialog: Use correct src attribute when rebuilding DOM
This avoids a meaningless attirbute change with the image
is unmodified (as thumbUrl can be a different size).

Change-Id: Ib79a4703382552e38022a3f345ca5cd762c52303
2022-05-23 14:55:12 +01:00
Ed Sanders 0aa4ee1356 ve.dm.MWGalleryImageNode: Add width/height attributes back to images
These aren't used by Parsoid but help with rendering.

Change-Id: Ifff3be45ab2046ee32f0665285581c1013102dfe
2022-05-23 14:55:06 +01:00
jenkins-bot b6e398fd85 Merge "Improve collapsible descriptions for smaller screens" 2022-05-23 10:27:27 +00:00
jenkins-bot ee0f823f25 Merge "Fix non-collapsible parameter descriptions on smaller screens" 2022-05-23 10:27:24 +00:00
jenkins-bot cf08e7f70a Merge "MobileArticleTarget: Avoid jittering while scrolling" 2022-05-21 15:07:03 +00:00
jenkins-bot adea509816 Merge "ve.init.mw.MobileArticleTarget: Remove hiding keyboard shortcut hints" 2022-05-21 14:53:27 +00:00
Bartosz Dziewoński 1cfef4232d MobileArticleTarget: Avoid jittering while scrolling
Needed after Ia18f31a299338f94e69f1882e6e477f3a22ae905 in VE core.

Bug: T307849
Depends-On: Ia18f31a299338f94e69f1882e6e477f3a22ae905
Change-Id: I87f3ac0974702ecaf7f5459604371de06f4a5756
2022-05-21 13:43:20 +00:00
jenkins-bot f05ab1042c Merge "Special:CollabPad supports importTitle parameter" 2022-05-21 13:29:35 +00:00
Bartosz Dziewoński e84718d2b1 ve.init.mw.MobileArticleTarget: Remove hiding keyboard shortcut hints
Now done in VE core since Ie86217ba5651df8c427464e460ed836903834a3c.

Bug: T308200
Depends-On: Ie86217ba5651df8c427464e460ed836903834a3c
Change-Id: I3f65b0bc100895f7bd2262c3cbb5231fb055758b
2022-05-21 13:24:09 +00:00
Adam Wight b189ce2825 Special:CollabPad supports importTitle parameter
This lets us begin the import from another page, for example an edit
tab or button.

If the CollabPad page already exists, it will be opened without
overwriting with freshly-imported page contents.

Change-Id: I89293b9b06253243826d8f8144a5e93d55856e7c
2022-05-21 14:48:09 +02:00
Ed Sanders c64f5a78cf MWImageNode: Skip empty change descriptions
As in parent method.

Change-Id: I320d5d7a8b2f5f7c7e2715c95cbc943533c8b335
2022-05-21 04:09:41 +02:00
Ed Sanders fb1ed9e700 MWGalleryImageNode: Avoid converting altText from null to ''
Bug: T308747
Change-Id: Icd811a6baaa2213d8615bdcb3690d26aa35ab302
2022-05-21 04:09:41 +02:00
Ed Sanders f4a7dfa059 Improve visual diff of gallery when image replaced
* Implement ve.dm.MWGalleryImageNode.static.isDiffComparable to
  match ve.dm.MWImageNode, in that images with different resources
  are not compared.
* Diff galleries as documents so remove/inserts are rendered.

Bug: T308747
Change-Id: Ide6f4110e65cad7f6bb6d13766815413602fd991
2022-05-21 04:09:41 +02:00
C. Scott Ananian ede9ffbd43 Bump requested Parsoid HTML version to 2.4.0
Visual Editor currently requests MediaWiki DOM version 2.0.0
when talking to Parsoid.  Since Parsoid treats that as a request
for 2.4.0, its current version, and Parsoid doesn't have a
2.4.0->2.0.0 downgrade path, passing the latest Parsoid version
(2.4.0) should make no difference in practice -- but would better
match current reality.

Change-Id: Ia2bc0c1981db6f573a69fb1910cef4304c80ae00
2022-05-20 15:01:09 -04:00
C. Scott Ananian 57dc7aa630 Zero-configuration VisualEditor for mainline
Now that Parsoid's ServiceWorkers have been merged to core, this adds
support for "zero configuration Visual Editor" to the master branch.
Like earlier zero-conf work, this does not use RESTBase for stashing
or for reliable selective serialization.  Future integration work
with ParserCache will reintroduce this functionality.  Nevertheless,
this implementation should have feature parity with the "loopback interface"
zero conf VE we've been shipping since 1.35.

Bug: T305108
Change-Id: I7b5b4a6d16b07914f947cbaf498ad1d3cf2447a5
2022-05-20 15:01:09 -04:00
Andrew Kostka 46846d1b01 Improve collapsible descriptions for smaller screens
Bug: T307986
Change-Id: Iac6205fc90a884965c2e37cf6ed4b403874256d8
2022-05-19 12:39:20 +02:00
Andrew Kostka 0c176752eb Fix non-collapsible parameter descriptions on smaller screens
This patch fixes a bug which causes long parameter descriptions to
be to non-collapsible when adding them from the sidebar-only view on
smaller screens.

Change-Id: If373587a9b2c3841ad6814f74bfcbf0c0f013488
2022-05-19 12:26:30 +02:00
David Lynch b59625158d Update schema logging of bucket for new DiscussionTools A/B test
Bug: T304030
Depends-On: I5e57bb9b7958576f3a04373748331a86f4626fb5
Change-Id: I2ef4c64a55eebc0d2eeca7a57b84b8ba0ded1499
2022-05-19 01:20:33 -05:00
jenkins-bot 37a5099471 Merge "Implement replacePageContent in MobileArticleTarget" 2022-05-17 21:22:50 +00:00
jenkins-bot fc8b909fb7 Merge "ArticleTarget: Always reload the page after save on non-view page" 2022-05-17 21:22:33 +00:00
Thiemo Kreuz aa989c00dd Extract MWExpandableContentElement.onButtonClick method
This is done in preparation for Iac6205f to make it easier to review.
This patch here is meant to be a no-op that doesn't change anything,
just moves existing code around.

Bug: T307986
Change-Id: Ie6ccd9528e5799ba340fed344e1f47a443c2c51f
2022-05-16 12:43:10 +02:00
Ed Sanders c877dc47fc Implement replacePageContent in MobileArticleTarget
Change-Id: I5b31bb9406bea15c5473363ba8fcda4c14f90994
Depends-On: Ifeb7c71e053501bc2c9448459c68895cb11368bd
Bug: T219420
2022-05-13 22:53:02 +01:00
Ed Sanders 37b81b5ba4 ArticleTarget: Always reload the page after save on non-view page
This is currently only handled in DesktopArticleTarget in teardown,
which happens after we've wasted time trying to update the page.

Also ensure we always reload on non-view pages on MobileArticleTarget
for other types of teardown (e.g. quitting the editor).

Change-Id: I7fb352fcacc8727bb113115e98af38a3940a8f9c
2022-05-13 22:53:02 +01:00
Ed Sanders ae58439c41 Upstream teardown of saveDialog from DesktopArticleTarget to ArticleTarget
Change-Id: I2e28f604d7e34fed15d9b74b6723347e3a17ce9e
2022-05-13 22:52:40 +01:00
Ed Sanders be2fc6c814 Upstream isViewPage from DesktopArticleTarget to ArticleTarget
Change-Id: Ic3839d9d70d6d4127fe2cd9bc01da799027fed3c
2022-05-13 22:47:06 +01:00
Andrew Kostka dda7d8e9c1 Hide the floating help button on small screens
Bug: T307981
Change-Id: I7c1776f95f22e9c81b559f25ad97616d2f1a8dc2
2022-05-12 06:32:16 +02:00
Ed Sanders 6e647b4858 Follow-up I420bfcac8: Fix typo in loop
Bug: T298147
Change-Id: Ia725709e221994737f393791de914994dbf415dd
2022-05-12 00:20:54 +01:00
jenkins-bot 1ed40a266e Merge "Filter <script> tags during parse, instead of save" 2022-05-11 21:52:47 +00:00
Ed Sanders 4dd590432e Filter <script> tags during parse, instead of save
This is a test to identify the soruce of stray <script> tags.

Bug: T298147
Change-Id: I420bfcac89528f3a11742214dd51fadd6281fd91
2022-05-10 17:31:22 +01:00
Thiemo Kreuz 53b169ab43 Update CSS to force word wrap in unused parameters button
Follow-up for what was done in I37505af. I don't fully understand why
these two extras are sometimes needed and sometimes not. But this exact
combination of 3 properties is used in multiple places already, so
let's just do the same here.

Bug: T300008
Change-Id: I1eba5fc378475d365111add58a141c3114dc0118
2022-05-10 10:20:44 +02:00
jenkins-bot d411579917 Merge "ArticleTarget: Ensure dataPromise rejects when switching fails" 2022-05-09 23:31:42 +00:00
Ed Sanders ab3b068671 build: Update stylelint-config-wikimedia to 0.13.0
Change-Id: I94a18ebc57ea04fe6246b63f6c9b5d5d8718dd4d
2022-05-04 22:54:48 +01:00
Ed Sanders bc57422841 Remove unused CSS vendor prefixes
Change-Id: Id544adce0d88123157f3f52540f7f767027ff6ab
2022-05-04 16:55:43 +01:00
Thiemo Kreuz 9297428eca Improve test coverage of template dialog outline
This focuses on some scenarios that are
a) complex enough to be worth a test,
b) but simple enough so I don't need to spend hours on comming up
   with a test setup. ;-)

This patch also simplifies the ARIA related code in
MWTransclusionOutlinePartWidget a bit.
* Check 1 of the 3 ARIA configs only. Only having one is already
  helpful and should not be skipped.
* No need for the large conditional. setAriaDescribedBy() works fine
  with undefined.

Bug: T291157
Change-Id: I142782ec9b96147de64497f4f6a373eae05b9c8e
2022-05-04 12:01:58 +02:00
Thiemo Kreuz 2cd08e42d7 Add prefixsearch fallback test for MWTemplateTitleInputWidget
The idea of the code under test is that it combines the results from
2 different API requests in a specific way. This is a first basic test
where both search results are small.

Bug: T291158
Change-Id: Ic4de57fb6b85afb952ea604769fddd06d44814c0
2022-05-04 07:11:15 +00:00
jenkins-bot 0e77a51898 Merge "Stop hide unused label from overflowing" 2022-04-29 08:45:20 +00:00
WMDE-Fisch 4377893297 Stop hide unused label from overflowing
Will implicitly set a max width for the button due to the margin.
Long words will break in the middle of the word.

Also includes a shorter label.

Bug: T300008
Change-Id: I37505af8383d8c0c2bd4af3987ec5e2a3049688a
2022-04-29 10:26:20 +02:00
WMDE-Fisch d996288169 Move message about missing parameters to sidebar
Will be removed when parameters are added. Needs different margins
depending on beeing shown in the single transclusion mode without
header or on multiple transclusions.

Bug: T300710
Change-Id: Ieb95d7276aa4d4b0fcbb74f87ab734e4a393dc21
2022-04-29 10:03:23 +02:00
Ed Sanders b428b296e5 ArticleTarget: Ensure dataPromise rejects when switching fails
Requires switchToFallbackWikitextEditor to return a promise.

We can now pass dataPromise to the progress bar shown when
switching editors, so it hides if the switch fails.

Also fix logic for when a failed load is not retried.

Bug: T306763
Change-Id: I752ca505e7957b392202d44455b1e21b6e50fa63
2022-04-26 16:32:52 +01:00
Bartosz Dziewoński d33d88a186 More tests for pasting external links
Change-Id: I2281be66b901d0c969c75869faa4fa632d33118b
2022-04-22 04:43:51 +02:00
rvogel f69438fae6 Check for external url protocols during conversion
If links get pasted into VE and they lack a "//" in the `href`, they
are automatically considered to be "internal", thus being converted into
`[[...]]` wikitext links.

In case of pseudo protocols like `mailto:` this should not be the case.

This patch uses MediaWiki core settings to check if a `href` value is an
external protocol known to the application.

Bug: T297575
Depends-On: I2e584f6d5adc6b2d735e79cea64f2beeb5f2c36d
Change-Id: I2b383106450e02cc6bcc1b99d547ff2ed7832b4c
2022-04-22 01:36:41 +02:00
Thiemo Kreuz 8831887e3c Update template search fallback to max out at 10
Before, the fallback algorithm was somewhat adaptive, trying harder and
harder the fewer CirrusSearch results have been found. This updated
algorithm guarantees that 10 results are shown.

Warning: You might see only 9 results. The reason is a bogus, unrelated
behavior in the mw.widgets.TitleWidget in core that's used as a base
class here. There is a "showMissing" option that's apparently enabled
by default, and prepends a non-existing title from the main namespace,
ignoring the "namespace" option. This extra result from the wrong
namespace is later dropped by the very same widget.

This code here sees 10 results before the bogus one is dropped.
Disabling "showMissing" causes other issues. We would need a series (?)
of custom hacks to work around all this, but this seems inappropriate.
Let's live with 9 for the moment.

Bug: T303524
Change-Id: I2c577c9ef2752b6c6cd360f4023e151e9272fcd5
2022-04-21 09:25:00 +00:00
Thiemo Kreuz 50497ee7f3 Drop assumption that all template search index start at 1
The main advantage of this change is that it drops the assumption
that the index starts with 1. This is not necessarily the case when
we prepend extra search results. Dropping this assumption here allows
to simplify such code.

* The incoming list of pages is guaranteed to be an array.
* There is no point (any more) that could cause the array to become
  sparse.
* Note we still make a copy of the `origPages` array at some point,
  e.g. on `.filter()`.

Bug: T303524
Change-Id: Ifbd92bb052155c613d2ca21ab6d54a0b3ef28c0c
2022-04-21 11:23:48 +02:00
jenkins-bot 20e26000e2 Merge "Update VE core submodule to master (86de64d69)" 2022-04-20 23:58:32 +00:00
Ed Sanders 184106418e Update VE core submodule to master (86de64d69)
New changes:
72bd71dbc Localisation updates from https://translatewiki.net.
b7f38d993 Re-apply "Fix for showing "invisible icon" when root node is hidden""

Local changes:
* Ensure templates are attached to DOM before rendering invisible
  icon in converter hack.

Bug: T305110
Change-Id: I0e4c02619b2a06b9932f214ae482093fdb0cb22c
2022-04-20 23:45:31 +01:00
Thiemo Kreuz 89e5c2fb92 Disable useless "showMissing" option in TemplateTitleInputWidget
This option is not only buggy (it just doesn't work when the namespace
option is set the same time), it is not useful in this context even
if it would work. It doesn't make much sense to suggest non-existing
templates in the context of the template dialog. If adding a
non-existing template really is what the user wants, they can still do
this by simply typing the name of the template and submitting the form.
We never need this to show up in the suggester below the input field.

The main advantage of this change is that is saves 1 useless API
request that's potentially done every time a key is pressed.

Bug: T303524
Change-Id: I903340a06d6e6490bb58f628f41903aa044ccb21
2022-04-20 14:43:29 +00:00
Thiemo Kreuz d3d3e1cf75 Move "index from redirect" logic up in template search widget
This separates the two steps:
1. See if items in the list of `origPages` miss their `.index`
   property, and add it if possible.
2. Later code doesn't need to care about redirects any more.

Note that `origPages` is not used for anything else. And even if,
it's not wrong to have the index for each search result on both the
redirect and the redirect target.

Change-Id: I12135f0430c944b4e33c49ece7779d7c3bb6c211
2022-04-20 14:50:36 +02:00
Thiemo Kreuz e24c8ecd2d Fix misleading variable name in TemplateTitleInputWidget
This is not a pageid, but a simple numeric index in an array. Luckily
it doesn't make a practical difference for this particluar way of
iterating something.

Change-Id: I7ec9ace00d4fba7adde17670058a0365b30f5617
2022-04-19 14:40:00 +00:00
Thiemo Kreuz c72d8abdc3 Remove/update template related comments that just repeat the code
Such comments don't add any new information. The method signature
alone already tells the full story.

We did this already to a lot of the template related code we touched.
This is just a bit of cleanup to make it consistent.

Change-Id: I932b620910924a16dc0d31d6c8a3ab11818316fe
2022-04-19 13:58:32 +02:00
Thiemo Kreuz d59a4366db Change TransclusionModel.nextUniquePartId() to return a string
The numeric part of these ids is never used on it's own. There is no
need to expose it.

Note we renamed the method not long ago in I6eeab8b to reflect better
what it does. This is the next step. We just forgot it back then.

Change-Id: I5da82855e99ea3a42a5d91379c6974ae9c154518
2022-04-19 13:48:30 +02:00
Thiemo Kreuz af2779fc06 Fix API response default in TemplateTitleInputWidget
The result is guaranteed to be in formatversion=2, where the list of
pages is an array, not an object.

Change-Id: Ic73a68c3e249a70108a6a19a89f4ff6c475794ed
2022-04-19 13:35:27 +02:00
jenkins-bot d1e777afcd Merge "Simplify ve-mw/init/styles LESS files" 2022-04-08 22:37:10 +00:00
jenkins-bot 616fa37de4 Merge "Fill template search results with prefix matches when Cirrus fails" 2022-04-08 11:57:23 +00:00
jenkins-bot 82051a35d3 Merge "DesktopArticleTarget.init: Wait for deactivating to finish before activating" 2022-04-08 08:49:55 +00:00
Bartosz Dziewoński c8b0f17ce6 Store copyright message in auto-save data
Bug: T305225
Change-Id: Ie70587393715a461509dac6192d033a05c894f96
2022-04-07 23:03:37 +00:00
Bartosz Dziewoński 37bb0075db Add tests for the expected properties in API result and auto-save
The goal is to have some tests fail if a new property is added to the
API result, but it's not stored in auto-save data.

Bug: T305225
Change-Id: I9ac328c71c616a8f33e1cfb39431cd9a665adafc
2022-04-08 01:02:53 +02:00
Bartosz Dziewoński bda0f44666 DesktopArticleTarget.init: Wait for deactivating to finish before activating
Bug: T305449
Change-Id: Ic2170450c851a10d01ef88c0b1de11d1d573acea
2022-04-07 23:26:58 +02:00
jenkins-bot be8625576a Merge "Remove "delete" button from link node desktop context" 2022-04-01 15:44:23 +00:00
jenkins-bot d03f54bc56 Merge "Use new config option signature when building sequences" 2022-04-01 15:44:20 +00:00
jenkins-bot 9ae30574e1 Merge "Follow-up I0eaeb987: Sync temp wikitext editor before activating target" 2022-04-01 15:44:12 +00:00
jenkins-bot 5fef22001d Merge "Full fallback to prefixsearch when Cirrus returns nothing" 2022-04-01 13:24:51 +00:00
jenkins-bot 2daec32db2 Merge "Use boolean RegExp.test() instead of .match() where possible" 2022-03-31 21:20:44 +00:00
Ed Sanders 5fa2373f15 Follow-up I0eaeb987: Sync temp wikitext editor before activating target
The refactor in I0eaeb987 broke this feature by moving
the call that modifies the response object to after it
is passed to the target.

Change-Id: Id98c1ccabde478540af34ed3356f319ae336590a
2022-03-31 22:01:19 +01:00
Bartosz Dziewoński 130f3e80fc Update VE core submodule to master (38b8213b5)
New changes:
91a762803 ve.dm.ModelRegistry: Disallow unknown types on tag and tag+func matches
8575e8ad8 PreviewElement: Document event
d24f96874 Allow unknown types for ve.dm.AlienMetaItem
106354b38 Follow-up I534ce003d: Fix height restriction calculation of desktop context

Local changes:
* Allow unknown types for ve.dm.MWExternalLinkAnnotation, it is meant
  to match all <a> tags and handles unknown types in toDataElement()

Depends-On: I785be75f389136769084a8e14832a09e3a519fc1
Bug: T303298
Bug: T304847
Change-Id: I75d1e82a43f5f96a9093cd334c524527918efaa5
2022-03-31 13:01:51 +02:00
Ed Sanders 6068cec0e8 Remove "delete" button from link node desktop context
This was added to make the context a bit more consistent
with the regular link inspector, however with I2fec865570
we making these delete buttons strictly mobile only.

Change-Id: I52936919e332aee851ccd11a862367c97eb41b39
2022-03-30 17:43:02 +01:00
Thiemo Kreuz 912bc34f62 Fill template search results with prefix matches when Cirrus fails
This code is optimized for the 2 most relevant use cases:

1. When Cirrus finds 10 results, we still want to search for the top 1
prefix match. This is critical for templates like !!. This will appear
at the top. unshiftPages() makes sure the limit of 10 is enforced.

2. When Cirrus fails to find anything, we search for 10 prefix matches
and use these instead.

The code can also handle everything in between. For example, when
Cirrus finds 5 results, we search for 5 more prefix matches and add
them when Cirrus missed them. The total number in the end might be 5 to
10 depending on the number of duplicates. This is intentional. Why?
Let's say we always search for 10 prefix matches and add them to the
top when Cirrus missed them. This might remove _all_ Cirrus results.
This shouldn't happen. This extra code is only to fill in glaring gaps,
not to replace Cirrus. 5 results are fine.

Bug: T303524
Change-Id: Ib0471795124c0c7001b6901edaf8e7b380e426b1
2022-03-29 13:18:12 +02:00
Thiemo Kreuz 6bbf7d1907 Full fallback to prefixsearch when Cirrus returns nothing
There is already some kind of "fallback" to prefixsearch. We always
check if the top-1 prefixsearch result is part of the result set.
Because of this the current worst-case scenario is that only this
1 result is shown.

This patch implements a full fallback to prefixsearch. But only when
there are 0 CirrusSearch results. Further tuning might be done in
later patches.

Bug: T304925
Change-Id: I1927eedad60c9b9ac2021481a85376c08ccf6fdb
2022-03-29 13:17:05 +02:00
jenkins-bot 2913158b35 Merge "Remove delete button from template context" 2022-03-26 17:22:40 +00:00
Thiemo Kreuz 9fee89890a Avoid/simplify possibly slow regular expressions
In detail:

* Just compare strings where possible. Sometimes the first character
alone is distinct enough.

* Add missing ^ anchor to avoid possibly running unbound pattern
searches. This is not strictly necessary when we know the input is
fixed-length. Still I find it more robust and more obvious what it's
meant to do. Not to "search for some match somewhere" but to check if
the input _is_ a match.

Change-Id: I9b7651d8ec1266521c22b38ccabb95a947903f72
2022-03-24 11:20:01 +01:00
Thiemo Kreuz c8af207681 Use boolean RegExp.test() instead of .match() where possible
.test() is the dedicated syntax for a boolean "does match? yes/no?"
check. .match() returns an array of matches, or null. This is just not
needed in these situations.

Change-Id: Ibb996ab843d1a6c7d7af98d6a112990665d543b2
2022-03-24 11:04:43 +01:00
Ed Sanders be2a1ccf62 Respect useeditwarning user option when tearing down target
Also invert logic and rename variables to make tests in tryTeardown
and switchToWikitextSection identical.

Bug: T294463
Change-Id: Icb86a676c3f315e4a3d229f46eb383dcd7959973
2022-03-23 14:55:13 +00:00
Thiemo Kreuz a6f784c095 Fix hiding unused template parameters sometimes not working
We ended mixing two concepts in a single method:

* We need a method that allows us to create the parameter list widget
when it's needed, even if it's empty. This is relevant when a template
is entirely empty, and the first parameter is added. This wasn't
working. Instead the parameter list was created with all parameters.

* On initialization we either want all parameters to be shown, or only
used ones. But this code is only needed once, on initialization. I
ended inlining this code in this patch.

Bug: T300640
Bug: T304046
Change-Id: I6620a870e4420dcb8fecf522b3274458eeec891d
2022-03-22 15:41:55 +01:00
jenkins-bot 47ac0d243b Merge "Set desktop context / inspector padding to -10px in vector-2022" 2022-03-22 01:14:31 +00:00
jenkins-bot ce9809d113 Merge "Fix resize of MWAceEditorWidget when setting up" 2022-03-22 01:03:48 +00:00
Arlo Breault dfa1c315bb Preserve classes on broken media elements
A class, mw-broken-media, was added in
I92359048b42d32fe8a0f2cb79cd348cf5f2c56cc

Bug: T304010
Bug: T270150
Change-Id: I542d7d879868c9030ce00b2686cdfd0077e49491
2022-03-21 17:42:39 -04:00
jenkins-bot 43a06844f9 Merge "Fix review button shown when review panel is already active" 2022-03-21 17:12:37 +00:00
Thiemo Kreuz 6eaf0ef55b Fix review button shown when review panel is already active
These two lines forcefully enabled the review/preview buttons, even
when the review/preview panel is already active.

Bug: T300448
Change-Id: I6dbe6ee88728a65233a455b768f17bff668fe3a8
2022-03-21 11:37:58 +01:00
Adam Wight b079440068 Fix template dialog parameter padding on mobile
In the mobile view, parameters don't have left padding so some styles
should only be applied to the desktop stylesheet.

Bug: T304167
Change-Id: I1846512c21aae36f212fe142b7d96ac91e46854b
2022-03-21 09:53:22 +01:00
Ed Sanders 58f6f0195a Remove delete button from template context
Currently in VE desktop, items which can be deleted with
delete/backspace do not have this button. If that situation is
considered a problem it sould be solved consitently for all
focusable nodes as part of a wider fix.

Adding a delete button to template contexts makes them inconsistent
with other focusable nodes.

Bug: T274263
Change-Id: I2f7508a605852274ba8f40b2afd1dfd56600aa36
2022-03-20 18:09:31 +00:00
Ed Sanders 8c36a630db Set desktop context / inspector padding to -10px in vector-2022
Bug: T258501
Depends-On: Ifaaa0dad4ecda3ff25d5fac54ccd2c95087d6f50
Change-Id: Id1f0a6d74740cf979de2b4a7f2a9f2e197615a13
2022-03-19 13:47:39 +00:00
Ed Sanders f6ea2e3457 Fix resize of MWAceEditorWidget when setting up
Bug: T303964
Change-Id: Ic8efbd7df74213fddaec987aff60e733f9550db2
2022-03-18 22:30:54 +00:00
Adam Wight bf7f022686 Fix right padding on inline descriptions without the new sidebar
This fixes a styling issue with inline descriptions, for the scenario
when the inline description feature is enabled but the new sidebar is
disabled.

Bug: T304167
Change-Id: Ida4da4605da5143de2a27725d87d5876aea7065c
2022-03-18 17:16:48 +01:00
Ed Sanders 60c2239e06 eslint: Lint root files with server rules
Change-Id: I872ab9dd7844eb8885dc30b40a2429875f7591c7
2022-03-17 23:39:53 +00:00
jenkins-bot 401da7ee13 Merge "Remove MWDismissibleMessageWidget and use MessageWidget's showClose option instead" 2022-03-17 11:43:33 +00:00
Ed Sanders fc8d96d8b5 ve.init.mw.Target: Use mw.libs.ve.targetSaver.getHtml in getWikitextFragment
All HTML which we send to Parsoid should go through this function.

Change-Id: Ibfda5ac877326e65464fd1c28c1e050ebb09a6a5
2022-03-16 15:42:43 +00:00
jenkins-bot 32d9150762 Merge "Rename ve-mw/init/styles to LESS" 2022-03-15 23:16:32 +00:00
Ed Sanders 38dfa608f8 Simplify ve-mw/init/styles LESS files
Change-Id: I49e05c9680e1fe7db8e01df627a6d5fa2836aac8
2022-03-15 23:10:34 +00:00
Ed Sanders 627bbc4aaf Rename ve-mw/init/styles to LESS
Change-Id: I50969b8798637368942b2d9315e7290f2c579f77
2022-03-15 22:16:59 +00:00
jenkins-bot cada5a3ab8 Merge "Extract template scrollToTop method" 2022-03-15 12:17:50 +00:00
Ed Sanders 1fdda82b58 Remove Apex skin files
The Apex skin (not to be confused with the Apex OOUI theme)
is abandonware. Keeping files around that pretend to support it
is just maintenance debt.

Change-Id: I176e4e25307ab8ca4166a6e9b55e3bec4f058d05
2022-03-12 14:23:23 +00:00
Ed Sanders 5b92c66e97 Use new config option signature when building sequences
Change-Id: Id93327e9afdad8d761a079b17b47e7bbe32bd5e2
Depends-On: I1011602514f0f21c5764b14563d8213ecc19f49a
2022-03-11 17:12:54 +00:00
WMDE-Fisch 96dc96da8d Extract template scrollToTop method
Also putting the findFirstSelected to where it belongs.

Bug: T302965
Change-Id: Ibc56abfdf84a0b5eade5b6a44903d769f424206d
2022-03-11 12:30:51 +01:00
WMDE-Fisch 824648b32a Streamline hide unused handling
Extracted the state change so we do not need the `internal` var.

Change-Id: I0ce1afab35abf3e0e656ad1a3601513d55406537
2022-03-11 12:02:32 +01:00
jenkins-bot 4a8ca84ecc Merge "Scroll template outline into view when hiding unused" 2022-03-11 10:22:37 +00:00
jenkins-bot 174c7a39f6 Merge "tests: Use ve.test.utils.newMwEnvironment()" 2022-03-10 22:51:26 +00:00
jenkins-bot ecbfa2c19e Merge "Follow-up I560d8080: Fix getTargetDataFromHref to work with different wiki configs" 2022-03-10 22:50:22 +00:00
Arlo Breault 79120fc16c Preserve classes on media wrapper links
Parsoid added a class and, without it, we get selser complaining
about wrappers being modified, similar to T214649.

The "image" class is removed since Parsoid never added it (although it
now has "mw-file-description" for a similar purpose) and the legacy
parser doesn't apply it indiscriminately.

It doesn't seem like VE supports editing the |link= media option; it
just tries to roundtrip what's there and drops it on edit.  The patch
here works with that limitation.

Galleries are found to drop href's, breaking selser, and should be fixed
in a follow up.

Bug: T292657
Bug: T303469
Change-Id: I92359048b42d32fe8a0f2cb79cd348cf5f2c56cc
2022-03-10 10:41:14 -05:00
Ed Sanders bc0e96f78a tests: Use ve.test.utils.newMwEnvironment()
This calls "parent" methods automatically, and allow us to
pass a config parameter for MW config.

Change-Id: I571d4599d7fca55727070bcac6083d1232b1f61c
2022-03-10 01:44:11 +00:00
Ed Sanders 77719b873c Follow-up I560d8080: Fix getTargetDataFromHref to work with different wiki configs
Change-Id: I8324a72418080beb3944314decc6792850392812
2022-03-10 01:10:45 +00:00
WMDE-Fisch 037e7ad0b2 Scroll template outline into view when hiding unused
Due to the stickyness we need to scroll the header and the first
visible item from the parameter list to have the best result in all
cases.

We also only want to scroll when the user triggered hiding the
fields. Not when the template outline view is initialized.

Bug: T302965
Change-Id: I84d293888a7dbf13ec655c293c0fc3a79edca698
2022-03-09 19:45:07 +01:00
jenkins-bot b26d62072e Merge "Fix missing padding on inline descriptions" 2022-03-09 13:13:24 +00:00
WMDE-Fisch e5277dd838 Fix missing padding on inline descriptions
Bug: T303386
Change-Id: Id0567102d9c8d7f0f3740085027713a2574141ef
2022-03-09 13:08:52 +01:00
Bartosz Dziewoński 94633fd165 Use $.parseHTML() in tests where appropriate
It removes some indirection.

* Find:          \$\( '<.+?' \)\.toArray\(\)
* Replace with:  $.parseHTML( \1 )

(also replaced a few by hand that weren't caught by that regexp)

Change-Id: I2639cc4a26bc960046a189504dd8058344e14d60
2022-03-09 01:07:57 +01:00
Ed Sanders 24973a2928 Update VE core submodule to master (15c1efdc2)
New changes:
cf7b2a9c4 Restore margin between wrapper paragraphs and document edge
629109b6b ve.ce.Surface tests: Sometimes assert originalDomElements in paste tests
3a5bd323c Use wrapper paragraphs in fixUpInsertion

Local changes:
* Update tests to ignore some internal properties

Bug: T299815
Bug: T299817
Change-Id: Ie52348f62320eb135c2f950ac78a77d9c665fef2
2022-03-09 01:05:15 +01:00
David Lynch d09c241549 MWEntityNode: Remove now-unnecessary allowedRdfaTypes
This was added back in 2020 so mw:DisplaySpace would work while the
RESTBase cache still contained old data. It's been two years, it should
be good now.

Follow-up to ed3579245e

Change-Id: I65665231b78198633682d52c48068c89807df55e
2022-03-08 11:27:29 -06:00
Ed Sanders fae8aece16 mw.libs.ve.getTargetDataFromHref: Don't check for internal links twice
Once we determined a link is internal from the first regex, we don't to
check if it matches the wgScript path as well. This would cause
"/index.php/Article" style paths to be detected as external as they failed
this second check.

Change-Id: I560d8080c513c523c68f2750be332e9fd91de192
2022-03-04 13:44:14 +00:00
Ed Sanders 3b2dc7bbfb DesktopArticleTarget tests: Mock config using QUnit.newMwEnvironment
Also mock some additional config to prevent the page from trying
to reload on teardown.

Change-Id: Ib20c1f5277c5d5a99f5117c82b7cbdeab75d3279
2022-03-04 13:36:22 +00:00
jenkins-bot 96c32dcfb7 Merge "Allow auto-save recovery notifications to be suppressed" 2022-03-03 23:25:41 +00:00
Ed Sanders 4f578c269c Allow auto-save recovery notifications to be suppressed
Bug: T302327
Change-Id: If94e603458a385ba6eb15c4e29144f72e3ad12ca
2022-03-03 23:09:25 +00:00
jenkins-bot abff70ff2d Merge "Fix missing return value and related docs in MWTransclusionNode" 2022-03-03 21:49:54 +00:00
Ed Sanders 29b9c9c34a Remove logic for disabling VE when certain extensions are running
This logic has been moved to the relevant extensions which can
now disable VE using a hook.

Depends-On: I47880be15b6ce1a93f389a32aff304cc3b798bcb
Depends-On: If188e8fcceb248738fc625ddd5afec351c01c484
Bug: T174180
Change-Id: I245295373af3caffb1d4cbc288e8d2bd008520b7
2022-03-02 21:20:55 +00:00
Thiemo Kreuz eb25116734 Block Ctrl+Del/Backspace when Remove button is inaccessible
* I can't guarantee this fixes T301914. But I suspect the bug can not
be triggered any more with this plus If9b6050 in place.

* I wasn't able to reproduce the issue locally. But I learned that
  1. it's related to the hotkey, and
  2. it's because the dialog looses focus, and the focus ends on the
     VE surface in te background. Pressing Esc there closes VE. That's
     intended behavior.

* I tried to use .trigger( 'click' ), but it doesn't make much of a
difference. The only magic check is if the button is disabled. But no
visibility checks are done.

Bug: T301914
Change-Id: I2f66fc2411144c60cd08baae58452d336b4e9802
2022-03-02 11:56:29 +00:00
Thiemo Kreuz 836d36bc16 Skip initial creation of unused parameter widget
In a test case with 200 templates where all but a few parameters are
unused the loading time is cut in half.

Bug: T300974
Change-Id: Ice850cb9e5e95b9e3a19ff511b3a4f32117c7199
2022-03-02 10:19:46 +00:00
Ed Sanders 1b5550f485 Move var declarations inline
Mostly ve-mw/ui and a few left overs.

Change-Id: Idea0c94d974e661c49af8ad4545cd8fd98179ca8
2022-03-01 17:50:24 +00:00
jenkins-bot 976272fa41 Merge "Fix spacing between sticky find bar and field list" 2022-03-01 14:42:32 +00:00
jenkins-bot 46cfbc74bd Merge "Added check for hotkey action on input or textareas" 2022-03-01 12:00:20 +00:00
Svantje Lilienthal fb95572429 Added check for hotkey action on input or textareas
Bug: T301913
Change-Id: If9b6050c378836157fa1df5b9782ba4632890f1a
2022-03-01 10:14:52 +00:00
jenkins-bot a6d771dd00 Merge "MobileSaveDialog: Also add 'content' class to preview panel" 2022-02-28 23:45:18 +00:00
jenkins-bot 8eefaedf86 Merge "Make sure postEdit hook doesn't fire until after saveComplete is done" 2022-02-28 21:19:44 +00:00
jenkins-bot 2844df9615 Merge "Don't let MobileFrontend show abandonedit after saveComplete" 2022-02-28 21:19:41 +00:00
David Lynch 5012d2fa93 Make sure postEdit hook doesn't fire until after saveComplete is done
Follow-up to c8072f1af2

Bug: T302746
Change-Id: Iac76ac69a62b38282ae5aa6194a89ab9110b0954
2022-02-28 20:59:44 +00:00
David Lynch a6d11f5334 Don't let MobileFrontend show abandonedit after saveComplete
Follow-up to c8072f1af2

Bug: T302746
Change-Id: Id1ef6a02cde7a30eae7b36f1d10f07e9a363e974
2022-02-28 20:56:09 +00:00
Thiemo Kreuz 5a92880da5 Fix bad visualization of empty suggested value
Bug: T299430
Change-Id: I9a0d26c7fc88e1a0c2c68152b3e15a9ba7662991
2022-02-28 08:49:08 +01:00
Ed Sanders 3f1eb8992f Fix spacing between sticky find bar and field list
Bug: T300899
Change-Id: Ieac47d58eb1037edcd82e0d7ee5c98e125c4e78c
2022-02-24 10:40:37 +00:00
Thiemo Kreuz 0d989b6fee Never collapse newly added templates in transclusion dialog
Bug: T300640
Change-Id: Id400951cf98f1eda780700d726fc10afbc1eaa90
2022-02-22 11:37:21 +01:00
Ed Sanders b4f3ecbc5c MobileSaveDialog: Also add 'content' class to preview panel
This isn't used yet as NWE is not enabled.

Change-Id: I2ea4697c2a5ba57f537e646e3d0fb7d89fd04c7b
2022-02-22 00:23:35 +00:00
jenkins-bot e9f8ffa5a1 Merge "Log whenever browser plugin spam is detected" 2022-02-21 23:29:39 +00:00
Ed Sanders 4501771243 Log whenever browser plugin spam is detected
Our theory is that browser plugin spam shouldn't reach
the DM document unless we've made a coding error like
I194ff1d57. Log future errors so if there is more plugin
spam in the future, we can investigate the cause.

Bug: T298147
Depends-On: I705195bc5d0f76a38da5d2cc09fab184a2c32401
Change-Id: I3403859906ceaa51be63b0d79f474f0289ab4408
2022-02-21 22:48:46 +00:00
jenkins-bot 839a62829d Merge "Add and fix default values in parameter documentation" 2022-02-21 13:41:51 +00:00
jenkins-bot 8c1ad11a7d Merge "MWEditSummaryWidget: Handle multi-line comments" 2022-02-21 13:39:01 +00:00
jenkins-bot fe69e22761 Merge "tests: Mock wgVisualEditor instead of relying on SpecialPage value" 2022-02-21 13:32:51 +00:00
jenkins-bot d79527e1f2 Merge "Always scroll to top when loading VE source mode" 2022-02-21 13:23:28 +00:00
Thiemo Kreuz bc0a34b0ed Add and fix default values in parameter documentation
Same random finds while working on something else. I carefully
checked and made sure these methods are actually called without the
optional parameter.

Change-Id: Iab36fd130258322985b5d6e7f8e1f7b4ee235ba2
2022-02-21 13:19:21 +00:00
jenkins-bot aa8b08bd1a Merge "DesktopArticleTarget.init: Handle popState target reactivation properly" 2022-02-21 13:14:38 +00:00
jenkins-bot ba5f31ef8f Merge "DesktopArticleTarget.init: Make getInitialEditMode re-usable" 2022-02-21 13:12:00 +00:00
jenkins-bot 2a72f4e290 Merge "Remove not needed self = this indirections" 2022-02-21 12:57:41 +00:00
Thiemo Kreuz 3c042049bf Use .bind() syntax where it makes code more readable
This focuses on a few trivial cases where the syntax helps making
the code more readable. One level of indirection is gone with this.

Change-Id: Ibf25d7eaa06952e69b36bd5a78a48d04ac62890c
2022-02-21 10:34:03 +00:00
Thiemo Kreuz 58e27f56d6 Remove not needed self = this indirections
These are only needed when we need to access a specific `this` from
within another `function () {}` context. This is not the case in the
situations here.

This is split from Ibf25d7e to make it smaller and easier to argue
about.

Change-Id: Ide1476de91fc343aa992ad92a1321d3a38b06dd0
2022-02-21 10:52:24 +01:00
Lucas Werkmeister 957036fa19 MWEditSummaryWidget: Handle multi-line comments
The `.` character class matches any character *except* line terminators,
but edit summaries can contain those. Use [^] to match truly everything
in the comment part. (In the section part, I assume `.` is okay.)

Bug: T302103
Change-Id: I29fcdd7489d118674bab5cfe5c0a15b8e4efac64
2022-02-18 19:54:03 +01:00
Ed Sanders e4c22ec0d6 Don't suppress teardown prompt when pressing escape
Follow-up to If9e5d1fbf00f8359.

Bug: T302096
Change-Id: I60fcddee7bf0dfb3a39e92d26898da2963861c19
2022-02-18 18:15:40 +00:00
jenkins-bot 0db6720128 Merge "Move methods from DesktopArticleTraget to ArticleTarget" 2022-02-18 18:04:28 +00:00
jenkins-bot d7a33aa9f9 Merge "ApiVisualEditorEdit: Pass useskin & mobileformat to ApiParse" 2022-02-18 18:01:45 +00:00
Ed Sanders c8072f1af2 Move methods from DesktopArticleTraget to ArticleTarget
To allow them to be used by MobileArticleTarget.

Change-Id: I33e8b3c2361c2dfd0fae8aa41eacf993c93c9c48
2022-02-18 17:04:04 +00:00
Ed Sanders 93a7f33989 ApiVisualEditorEdit: Pass useskin & mobileformat to ApiParse
Passing the useskin parameter ensures that output hooks are run
on the new page HTML. This already happens because we request
the 'subtitle' and 'categorieshtml' props which also trigger
skin mode (along with the 'headhtml' which we don't request).

However it is better for us to be explicit that we want the rendering
for a specific skin, rather than relying on these props to trigger
the correct mode.

Also pass through mobileformat param, which is added by a hook
in MobileFrontend.

Change-Id: I1cd2c5c5c13ae0b90cc32e441b453532343a434a
2022-02-18 16:59:07 +00:00
Ed Sanders 54cd911db0 DesktopArticleTarget.init: Handle popState target reactivation properly
This ensures the full loading sequence is shown when the
user opens VE using history navigation.

Bug: T301843
Change-Id: Ia7a641c8bd5a036f23c9da94bc539d8cf66c5021
2022-02-16 15:56:24 +00:00
Ed Sanders c3f88d72c8 DesktopArticleTarget.init: Make getInitialEditMode re-usable
Also let parseSection handle undefined.

Change-Id: I2ec9e7e642d116a555c03af6070f7577ce7030a7
2022-02-16 15:56:24 +00:00
Ed Sanders ca6ed21835 Always scroll to top when loading VE source mode
Change-Id: Ibfbb241f523fbdfcf6eb9fd1aeaa0e13782586aa
2022-02-16 15:17:19 +00:00
Ed Sanders 88609cb885 DesktopArticleTarget.init: Only bind event listener once
Previously we were adding an event listener every time the
target was opened, and not removing the old ones.

Change-Id: I0ce609f1d9e2d6fb00b605dcade6f27e7a887b9d
2022-02-16 14:41:04 +00:00
Timo Tijhof bdb7737a5a tests: Mock wgVisualEditor instead of relying on SpecialPage value
Found via Iaf989bc50363a (patch set 6):

> FAILED TESTS:
>   ve.init.mw.DesktopArticleTarget
>     ✖ init
>     Died on test #1
>     TypeError: Cannot set property 'pageLanguageCode' of null
>         at Object.<anonymous>

Bug: T89434
Change-Id: I8ad2cc4c115224eb276d1488091b9518fde739f9
2022-02-16 10:19:11 +00:00
Ed Sanders 8101b6511e Improve smooth scroll to section behaviour
* Append the toolbar before starting the scroll
* If the toolbar is floating set the anchor to full height
  immediately. This shouldn't cause the content to jump down
  due to scroll anchoring:
  (https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-anchor/Guide_to_scroll_anchoring)
  But add our own logic for it for browsers which don't support that.
* Now the browser only has to deal with the scroll animation,
  and not the height animation of the toolbar anchor at the
  same time, making it smoother and less buggy.

Bug: T301773
Change-Id: I61d533d40758d559b03c858e0006ef2e4f0fcd16
2022-02-15 15:23:47 +00:00
jenkins-bot b7a0a690fb Merge "Desktop: Always show loading progress in a toolbar placeholder" 2022-02-14 17:00:08 +00:00
jenkins-bot 23e9f189d6 Merge "Smooth scroll the heading to the right place while target is loading" 2022-02-14 16:59:49 +00:00
Ed Sanders 78decedd47 Desktop: Always show loading progress in a toolbar placeholder
Bug: T299907
Change-Id: I0eaeb98719bf7a43e4a87366cfcd204f35b74650
2022-02-14 16:17:48 +00:00
Bartosz Dziewoński 28c9a47164 Hide the edit notices tool earlier if there aren't any
Previously, a toolbar with the extra tool could be shown for a moment
while the editor was loading.

Bug: T301626
Change-Id: I7f5d01ef6e64ef85141a38a236fe2a1d1ada00e8
2022-02-14 15:48:55 +00:00
Bartosz Dziewoński efd1b3ab95 Fix narrow toolbar jumping during loading
When the editor is loading, and the browser window is narrow enough
that we should use the narrow toolbar, the wide toolbar would appear
for a moment. It was particularly jarring when it caused it to wrap
over two lines.

Bug: T301626
Change-Id: I551a66edab40235c4a26751eed163b5b30ef698f
2022-02-14 15:48:46 +00:00
jenkins-bot 66feffb991 Merge "Misnamed field on a/b test logging" 2022-02-12 20:37:04 +00:00
David Lynch d984bf2246 Misnamed field on a/b test logging
Bug: T301497
Change-Id: Ibbcb23fc3a1d4b89b2cae49fb56901b91be2b3a1
2022-02-11 19:58:36 -06:00
jenkins-bot 924ead5650 Merge "Improve DiscussionTools a/b test bucket logging" 2022-02-12 01:23:57 +00:00
jenkins-bot 6df803a821 Merge "Introduce VisualEditorBeforeEditorHook" 2022-02-12 00:54:15 +00:00
Ed Sanders 38bdb0f87a Smooth scroll the heading to the right place while target is loading
This avoids a sudden scroll jump when the editor finally loads.

Bug: T299773
Change-Id: Ia2d56f7898d8e4c886297807954604ad5a8e8c38
2022-02-11 23:24:00 +00:00
David Lynch 5ccf0324f0 Improve DiscussionTools a/b test bucket logging
Make sure it works on pages which don't trigger DT, such as full-page
wikitext editing.

Bug: T301497
Change-Id: Id3d46eef319f278ee71fbbedbddd16d5ffd540d8
2022-02-11 15:58:25 -06:00
Ed Sanders fb8815f658 Fix some behaviour when user aborts VE loading with escape
* Pass 'noPrompt' to #tryTeardown
* #loadFail gets triggered by the data promise being aborted,
  so if 'activating' has been cleared at this point, don't
  prompt about there being load error.
* Retry/cancel dialog assumed you were coming from a wikitext
  editor. Rewrite the logic to handle teardown the target if
  the user is coming from read mode.

Change-Id: If9e5d1fbf00f8359f4d06fe7fc3064cc7e349bc9
2022-02-11 00:15:35 +01:00
jenkins-bot c3bd77c00f Merge "build: Updating npm dependencies" 2022-02-09 15:38:37 +00:00
jenkins-bot 962d95a51f Merge "Add ctrl/cmd backspace hotkey to delete part" 2022-02-09 12:04:25 +00:00
WMDE-Fisch ce230afa09 Disable hide unused widget when all are selected
I bit more logic was needed to make sure, the state of the widget
resets when all unused fields are added during search.

Bug: T299811
Change-Id: I3006c233fda5490e323bc3a3e631bf0c1199bda3
2022-02-09 09:23:14 +00:00
libraryupgrader aa28b52dc9 build: Updating npm dependencies
* eslint-config-wikimedia: 0.21.0 → 0.22.1
* ansi-regex: 5.0.1 → 5.0.1
  * https://github.com/advisories/GHSA-93q8-gq69-wqmw
* meow: 3.7.0 → 3.7.0
  * https://github.com/advisories/GHSA-7p7h-4mm5-852v
* string-width: 4.2.3 → 4.2.3
  * https://github.com/advisories/GHSA-93q8-gq69-wqmw
* strip-ansi: 6.0.1 → 6.0.1
  * https://github.com/advisories/GHSA-93q8-gq69-wqmw
* trim-newlines: 1.0.0 → 1.0.0
  * https://github.com/advisories/GHSA-7p7h-4mm5-852v

Change-Id: Iad400485f197940efd00dfabaddcae805365d116
2022-02-09 07:52:22 +00:00
WMDE-Fisch 4b2931276c Add ctrl/cmd backspace hotkey to delete part
Bug: T300971
Change-Id: Ie8752d632fba6a15cbf45176b71b3c77a7171360
2022-02-08 16:17:12 +00:00
jenkins-bot 7d297a20e9 Merge "Wire move/delete hotkeys to button functionallity" 2022-02-08 16:09:22 +00:00
jenkins-bot 5634e5e378 Merge "Hide unused paramters by default on multipart" 2022-02-08 15:58:16 +00:00
WMDE-Fisch b35ea59de5 Hide unused paramters by default on multipart
Covers the base functionality to hide the parameters. Performance
optimizations could be done in a follow up.

Bug: T300640
Change-Id: Ia99b5da392273f1445e475a0720a656460612dcf
2022-02-08 15:56:40 +01:00
WMDE-Fisch ef87088198 Wire move/delete hotkeys to button functionallity
The behavior is now consistant with what would happen when the
buttons are triggered.

Instead of emitting a button click I directly wired the methods
that will by triggerd by the click. This might make it easier to
remove the old sidbar later.

To avoid movement when the buttons should be disabled, an
additional check was added to the onMove method. It's not identical
to the more complex check in the outlineControlsWidget, but should
be enough for our use case. The onDelete method already just does
nothing if nothing is selected.

Bug: T300971
Change-Id: I8a278c9657c91fd648944b5a8c1204c9fff75b7e
2022-02-08 15:41:01 +01:00
jenkins-bot 098791f6c7 Merge "Add vector-body class to diff/previews" 2022-02-07 23:38:15 +00:00
Ed Sanders 5739da585a Add vector-body class to diff/previews
Bug: T287733
Change-Id: I6a4befb2a29489c767df5896a86ef6a607938685
2022-02-05 22:51:05 +00:00
Ed Sanders b0e32c22fa Remove MWDismissibleMessageWidget and use MessageWidget's showClose option instead
This option was added in 0.43.0. Now that the close button is handled,
the remaining functionality (store a flag in local storage, and fixing
link targets) doesn't really justify a separate class, especially as
it's currently only used once.

Change-Id: I0fd81cadccc077dbf957302f9f41409c5a1f4f20
2022-02-03 16:37:52 +00:00
David Lynch 9707d5e686 New bucket for abtest data
Bug: T291308
Change-Id: I20fb26fe5e294f6c117038bcef6f5ba92b01340b
2022-02-02 15:54:23 -06:00
jenkins-bot b5cb82bc92 Merge "Re-apply "Re-duplicate deduplicated TemplateStyles"" 2022-02-01 23:36:05 +00:00
Ed Sanders 02cfb4bf71 Introduce VisualEditorBeforeEditorHook
Extensions can return false in this hook to disable VE on specific pages.

Bug: T174180
Change-Id: I764843fcfc07149c50ae6af758df43ca454d3296
2022-02-01 17:57:27 +00:00
jenkins-bot 440620ae73 Merge "Show a keyboard shortcut when hovering over a toolbar button" 2022-02-01 12:33:39 +00:00
jenkins-bot fb6332ad5c Merge "Use OOUI 'play' icon for audio placeholder" 2022-01-31 10:19:18 +00:00
jenkins-bot 23b8ec2f54 Merge "Don't attempt to pin first visible section if firstHeading is visible" 2022-01-28 17:27:06 +00:00
jenkins-bot d63cbf86f7 Merge "Follow naming convention for static methods" 2022-01-28 15:06:24 +00:00
WMDE-Fisch dac7b5206b Allow disabling VE and 2017 wikitext editor from FileImporter
Bug: T298345
Bug: T174180
Change-Id: I80be4648564630b71e6e61d4c5e50538d134ba7a
2022-01-28 08:55:15 +00:00
Bartosz Dziewoński a2390efbf4 Re-apply "Re-duplicate deduplicated TemplateStyles"
Previous attempt in 005a8d24ef,
reverted in 3c1d167b33.

The deduplicateStyles() function lacked a check for fosterable
positions, which caused T299767. This is now fixed.

Also added tests.

Bug: T287675
Bug: T299251
Change-Id: I0d22be9b66d26d09373cee63dd6ce52c1659e62d
2022-01-28 02:08:09 +01:00
Ed Sanders 4af235822b Don't attempt to pin first visible section if firstHeading is visible
This prevents an unwanted scroll when the main edit link is used
and the first section is below the viewport.

Change-Id: Ib99ebe2dc5c105c3fcbd687ef5740166267f5536
2022-01-28 00:02:09 +00:00
Iniquity 427f8ab3ba Use OOUI 'play' icon for audio placeholder
Bug: T299278
Change-Id: I8cc254fdf28cb83d5c4fe310a61a8a3df2d49270
2022-01-27 21:10:51 +00:00
Thiemo Kreuz 7298834211 Follow naming convention for static methods
Change-Id: Ie2d7fb061fcb46765ba8796911425d58218736d1
2022-01-27 09:12:23 +01:00
Ed Sanders b80b09f88a Ignore originalWidth/Height when diffing images
Change-Id: Ieec25165a61df8f89e18c01ca4fdf70ac882eb52
2022-01-26 14:51:52 +00:00
Adam Wight 7e7ad97bf6 Don't wrap unknown actions with confirmation
For example, the "apply changes" button was producing a confirmation
dialog.

Bug: T300095
Change-Id: I77e53cc0cf62ff7c0aca052568384e20490ce7ec
2022-01-26 14:40:58 +01:00
jenkins-bot 1f8e56a333 Merge "Move copyright warning message parsing from RL module to API" 2022-01-26 11:07:03 +00:00
jenkins-bot 3c7d81aa2f Merge "Remove conflicting section IDs in diff views" 2022-01-26 00:04:22 +00:00
Ed Sanders 312c35077f VE-MW: Consistently use target/surface $scrollContainer to set/get scrollTop
As in Idd97d9e6d3 in ve-core.

Bug: T299841
Change-Id: I728a723cbbb1d992e0e573800298784ba385882e
2022-01-25 22:28:10 +00:00
jenkins-bot a37daf782d Merge "Position VE desktop loading bar with position:fixed" 2022-01-25 19:56:40 +00:00
jenkins-bot aafdc04834 Merge "Include heading margin when running scrollToHeading" 2022-01-25 19:56:38 +00:00
jenkins-bot 06d9a7af94 Merge "Tweak vertical alignment of progress bar within toolbar (source mode)" 2022-01-25 19:56:36 +00:00
jenkins-bot c3e8ecb2ca Merge "Use new *SelectableContentOffset method when setting section selection" 2022-01-25 19:56:34 +00:00
jenkins-bot 4e41b70758 Merge "ve.ui.MWLinkInspectorTool: Parse "education popup" text as wikitext" 2022-01-25 18:41:56 +00:00
jenkins-bot 219e25fb8f Merge "ve.ui.MWEducationPopupWidget: Allow formatting in the popup text" 2022-01-25 18:39:28 +00:00
Ed Sanders 6f5fe8cdb0 Position VE desktop loading bar with position:fixed
This doesn't change the position of the loading bar, but it keeps it
still if any scrolling happens. Previously we expected the user probably
wouldn't scroll while VE is loading, but in subsequent commits we
will trigger automatic scrolling in section editing mode.

Change-Id: I1404ccd77583d808ef79291c6cb4f561e76bd41c
2022-01-25 16:04:12 +00:00
Ed Sanders d1aaf3d451 Include heading margin when running scrollToHeading
This avoids the heading text ending up uncomfortably close
to the toolbar.

Change-Id: Iddd5fea5d75902ed093d3e9839b63a2a3c480775
2022-01-25 16:04:12 +00:00
Ed Sanders 868ab40826 Tweak vertical alignment of progress bar within toolbar (source mode)
Change-Id: I0937763448ce4fde6e2298bdeea1855664288a1e
2022-01-25 16:04:12 +00:00
Ed Sanders c8c9424888 Use new *SelectableContentOffset method when setting section selection
We introduced these methods in Idc0cccbe but didn't update this
logic in MW.

This prevents focus being put inside an image caption if the section
starts with a block image.

Change-Id: I4cc1a116c1dcc8e1c642359ea768b6f5265a061b
2022-01-25 16:04:12 +00:00
jenkins-bot 066d01433b Merge "Remove left over from old two column conflict UI trigger" 2022-01-25 11:33:36 +00:00
Bartosz Dziewoński 8080bd2f5d Move copyright warning message parsing from RL module to API
Parsing it in the RL module caused the module cache key to depend
on the parse, which is slow and makes ResourceLoader sad. The usual
approach for solving this (I206bb05d28) can't be used, because of
how EditPage generates this message.

Bonus #1:
Generate the message for the correct page title. MediaWiki allows
customizing it per-namespace or even per-title, which we haven't
supported before.

Bonus #2:
Pass the context for message localisation (depends on I5f7c77970d).
EditPage::getCopyrightWarning() was parsing messages without the
interface flag, causing some needless processing elsewhere.

Depends-On: I5f7c77970d0525c0ff394f8bd72c69dcb5d00623
Bug: T298822
Change-Id: Iaa626f0e6379a5a370f9c465cea8528bb5bde7f7
2022-01-24 22:19:04 +00:00
Bartosz Dziewoński 8c12259900 Update VE core submodule to f5c7f0f204
New changes:
e5963f084 DiffElement: Remove doc-child-change wrappers
90a359f79 Follow-up Ia593dad8: Use modifyData when sanitizing
f5c7f0f20 Localisation updates from https://translatewiki.net.

Local changes:
* Update tests for the removal of doc-child-change wrappers

Change-Id: Ib29f23625de9151d50e0f3b7796b15ca9ed89133
2022-01-24 20:13:21 +00:00
WMDE-Fisch 04c48afce8 Remove left over from old two column conflict UI trigger
This was forgotten while removing the code from the old UI and it
is not needed by the new UI.

See https://gerrit.wikimedia.org/r/c/mediawiki/extensions/TwoColConflict/+/530565/1/includes/InlineTwoColConflict/InlineTwoColConflictHelper.php#b603

Bug: T222714
Change-Id: I0d8dea47e677886e84bcbc359f06aef70565d65d
2022-01-24 15:00:51 +01:00
WMDE-Fisch 5b4e53148d Confirm before close when all parameter values are deleted
Do show a confirmation when editing templates without parameters,
but don't show the confirmation when you're only on the template search
page.

Bug: T299394
Change-Id: I8205bb6a0f92b7b535a80f7f6a43674f1aa5b51b
2022-01-24 11:43:27 +01:00
Adam Wight a7ba729d8c Refactor confirmation logic
Shouldn't change behavior.

Split from I8205bb6.

Bug: T299394
Change-Id: I32876939d4f61c3be8e756c6eba6f74ea98c11f1
2022-01-24 11:43:27 +01:00
jenkins-bot d355ee1c88 Merge "Minor code cleanup in MWTransclusionOutlineTemplateWidget" 2022-01-24 08:11:43 +00:00
Thiemo Kreuz be5a752c8e Minor code cleanup in MWTransclusionOutlineTemplateWidget
Change-Id: I98904756e8ab9069634f644dc4d8631d1c0ee8fb
2022-01-23 17:09:46 +00:00
jenkins-bot 6e72dd35dc Merge "Fix showing caption and alt text fields in media and gallery dialogs" 2022-01-22 14:50:54 +00:00
Bartosz Dziewoński 8bcb50b6a2 Fix showing caption and alt text fields in media and gallery dialogs
We were using addItems() incorrectly, and it stopped working after
change Ib1241f93d214e8a7d2f757a120f84de3879575af in OOUI.

Bug: T299818
Change-Id: I2d00cb929673a419789ca6f8bc308721373e1da8
2022-01-22 03:27:22 +01:00
jenkins-bot 8e5de75d12 Merge "MWImage: Fix handling of error-image dimensions" 2022-01-22 01:07:39 +00:00
jenkins-bot 7fe6ce8701 Merge "Broken image: Fix DM HTML for preview to include redlink text" 2022-01-22 01:07:36 +00:00
jenkins-bot 06a9074c44 Merge "MWImage: Cache dataElement.attributes" 2022-01-22 01:07:34 +00:00
jenkins-bot 43b2b3de95 Merge "Revert "Re-duplicate deduplicated TemplateStyles"" 2022-01-21 21:29:41 +00:00
Bartosz Dziewoński 3c1d167b33 Revert "Re-duplicate deduplicated TemplateStyles"
This reverts commit 005a8d24ef.

Reason for revert: Causes page corruption

Bug: T287675
Bug: T299251
Bug: T299767
Change-Id: Ib6b88114f6bdcd11ada0daf8ef6ec088569c88a6
2022-01-21 21:10:27 +00:00
Andrew Kostka 856ad0fc03 Show a keyboard shortcut when hovering over a toolbar button
Bug: T299490
Change-Id: I5af6ecf10b90c6a85bccc8489584322e1ba20bd5
2022-01-21 20:08:20 +01:00
jenkins-bot 9ec8a68891 Merge "Link to a list of keyboard shortcuts from the template help dialog" 2022-01-21 18:28:30 +00:00
jenkins-bot ae3d442dc7 Merge "Restore a way to delete transclusions on mobile" 2022-01-21 16:31:00 +00:00
Andrew Kostka eaa438abcb Link to a list of keyboard shortcuts from the template help dialog
Bug: T299487
Change-Id: Ieef99eeb9c43817981e2ae5b5340a58c2aca4920
2022-01-21 17:24:34 +01:00
jenkins-bot fdd195a241 Merge "Update accept button in confirmation dialog" 2022-01-21 16:22:30 +00:00
jenkins-bot 3982a3bfba Merge "Fix transclusion node double clicks being tracked differently" 2022-01-21 15:47:34 +00:00
jenkins-bot 8318edae25 Merge "Disable edit button when double clicking transclusion node" 2022-01-21 15:47:32 +00:00
WMDE-Fisch cede096333 Update accept button in confirmation dialog
The only places where this dialog is used now will have the same
button labels and format. We want to use "normal" destructive here
so no additional "primary" styling.

It seems that the focus on the action will only be applied
automatically when it is primary. So extra code is needed.

Bug: T299647
Change-Id: Ib5250b79e85d27ea197b83c6380863d0749e5d89
2022-01-21 15:32:58 +00:00
jenkins-bot c37d6f86e8 Merge "Hide parameter search when there are only 3 params" 2022-01-21 14:18:41 +00:00
jenkins-bot 8fa3a7a4eb Merge "Update the context menu title for multipart templates" 2022-01-21 11:40:58 +00:00
Andrew Kostka d4fff29148 Update the context menu title for multipart templates
Bug: T299495
Change-Id: I082a4e925c15ba5966a575127046e33f2fc3f62a
2022-01-21 11:51:31 +01:00
WMDE-Fisch 6cb0e7477e Hide parameter search when there are only 3 params
The search field is of not much use when there is not really anything
to search. It wastes more space than the actual list of parameters.

Approved by UX, see T298259#7626538.

Bug: T298259
Change-Id: I01784a1c463d8b0b504897b20179719f91597d19
2022-01-21 11:23:49 +01:00
Andrew Kostka 8da9661e11 Add a title to the templates help button
Bug: T299499
Change-Id: Ibb4aca479674668d6c14b8ace037433fa305dc35
2022-01-21 11:11:46 +01:00
jenkins-bot 4015ad1bf5 Merge "Defer creating template parameter widget for 0 parameters" 2022-01-21 08:52:37 +00:00
jenkins-bot dd8d53d19f Merge "Image model: Clear originalWidth/originalHeight attributes when changing source" 2022-01-21 00:27:44 +00:00
Ed Sanders 75edbaad08 Convert ve.init.mw.DesktopArticleTarget.init.css to less
Change-Id: Icab13075903d6fad4007847c2381696d6b98fa96
2022-01-21 00:04:27 +00:00
Bartosz Dziewoński 49a4ac0463 ve.ui.MWLinkInspectorTool: Parse "education popup" text as wikitext
Bug: T298837
Depends-On: I0b8ba7c13e97868ab79dcec5c132d0b30dcc9c60
Change-Id: I9258cb7521e43a62cffb5b3698f25e6801f8ae92
2022-01-20 22:57:07 +01:00
Bartosz Dziewoński 9f54e34764 ve.ui.MWEducationPopupWidget: Allow formatting in the popup text
Bug: T298837
Change-Id: I0b8ba7c13e97868ab79dcec5c132d0b30dcc9c60
2022-01-20 22:55:44 +01:00
Bartosz Dziewoński 65d723b62b Restore a way to delete transclusions on mobile
For most nodes, isDeletable() returns false on desktop and true on
mobile. Change e0bbf0b979 meant to
change the desktop version to depend on the new config settings, but
accidentally changed mobile too.

Bug: T298828
Change-Id: I8ec5e8031a27eee18c16dfcd267937cc76722c50
2022-01-20 22:39:55 +01:00
Thiemo Kreuz 28a74445f0 Fix transclusion node double clicks being tracked differently
Double clicks have been tracked as "window-open-from-command", but are
now tracked as "window-open-from-context". This patch changes this
back.

Bug: T297773
Change-Id: Icabc5db526c35d681d077043c54ca009b2296bbe
2022-01-20 15:41:08 +01:00
Thiemo Kreuz 8759a60516 Disable edit button when double clicking transclusion node
The first click opens a little context menu (…ContextItem in the
code). This patch makes a double click trigger the "Edit" button in
this context item instead of executing the "open window" command
itself. This is needed to trigger the "Loading…" code in the context
item.

Bug: T297773
Change-Id: Ie1daa2e6b460c5c506a847bd767af2cb48e73a61
2022-01-20 15:20:28 +01:00
jenkins-bot 835464802a Merge "Disable edit button while loading template dialog" 2022-01-20 13:50:51 +00:00
jenkins-bot 2cbe4f7d6f Merge "Fix left margin of hide unused and checkboxes" 2022-01-20 13:07:07 +00:00
jenkins-bot 16e188e815 Merge "Defer creating template parameter search when it's not needed" 2022-01-20 12:52:19 +00:00
jenkins-bot d4b354a1ba Merge "Removed left padding in parameter description" 2022-01-20 12:31:34 +00:00
Thiemo Kreuz 8fd1b6d8b8 Defer creating template parameter widget for 0 parameters
From the user's perspective nothing changes. A template without
parameters doesn't show anything. (Technically there was an empty
<div>, but it doesn't do anything.) The moment the first parameter
is added the required sub-widget is created and available from there
on.

This saves loading time and memory, especially when a multi-part
template contains many templates without parameters.

Bug: T298259
Change-Id: Ib1bd2cd0be4fece4acc92e6e5f63133a7986cf81
2022-01-20 12:06:03 +00:00
Svantje Lilienthal adb85f341a Removed left padding in parameter description
Bug: T299518
Change-Id: Iaa7118a111cfbc1856bbe7c1ff6917587ba6c395
2022-01-19 14:40:06 +01:00
WMDE-Fisch 0e4c6104ef Fix left margin of hide unused and checkboxes
The checkboxes are actually indented a bit more than the search box
with this change the extra indentation is applied and the hide
button text is alligned accordingly.

Bug: T298259
Change-Id: I5508ab883c23e7285c023dc127529ffa4dbe58c7
2022-01-19 14:21:37 +01:00
Thiemo Kreuz 66f56f6c88 Defer creating template parameter search when it's not needed
From the user's perspective this is the same as before: When a
template doesn't have any parameters, there is no search field. The
moment the first (undocumented) parameter is added the search field
appears.

This is just delayed now. The widgets are only created the moment
they are actually needed.

This saves loading time and memory, especially in a multi-part
transclusion with many zero-parameter templates.

This also makes it a lot easier to change the minimal number of
parameters from 1 to e.g. 4.

Includes reverting the flexible header composition done in
Ib050e30a50ef965c1524e977d3a600c3ff836774

Bug: T298259
Change-Id: Ied7541d8d5c0b478a439dd31ce072e634287f181
2022-01-19 11:23:34 +01:00
Ed Sanders 110db0e3c7 Remove conflicting section IDs in diff views
Bug: T218492
Change-Id: I84c60a36859190efc37c68e380ae44225be06d9c
2022-01-19 01:26:14 +00:00
Ed Sanders 63603e0cba MWImage: Fix handling of error-image dimensions
Change-Id: Ic808930bbd49bab779bd2ed174e6ec2408d51554
2022-01-19 00:51:39 +00:00
Ed Sanders 658a08bc30 Broken image: Fix DM HTML for preview to include redlink text
Bug: T265655
Change-Id: I1283975fdafb219ae2b0c703ecf7c7b23bb0c067
2022-01-19 00:51:39 +00:00
Ed Sanders 64fa1d909f MWImage: Cache dataElement.attributes
Change-Id: I24a4d436a00e6300bf4234153188d02fd648f9ce
2022-01-19 00:51:39 +00:00
jenkins-bot 770884f14f Merge "Make sidebar header and search field sticky during scroll" 2022-01-18 12:55:11 +00:00
Thiemo Kreuz 33a2f21589 Disable edit button while loading template dialog
Bug: T297773
Change-Id: I51fc0af4c3b29fd0801fc06a1dc07ad3fd7f1da3
2022-01-18 12:29:27 +00:00
jenkins-bot b4e3c3b1e5 Merge "Add mobile specific styling for TemplatePage" 2022-01-17 17:14:00 +00:00
Ed Sanders 2dd810da85 Image model: Clear originalWidth/originalHeight attributes when changing source
Bug: T269035
Change-Id: I52e5e7fd46ce86a2190b9ef5484898f741105646
2022-01-17 15:32:30 +00:00
Adam Wight a244f510c4 Make sidebar header and search field sticky during scroll
The search field will stay at the top of the window while scrolling a
single template.  In multi-part transclusions, the header will also
be sticky.

Hides the template header in single-part transclusions.

Bug: T298618
Change-Id: Ib050e30a50ef965c1524e977d3a600c3ff836774
2022-01-17 16:09:54 +01:00
jenkins-bot 8d119a4356 Merge "Re-duplicate deduplicated TemplateStyles" 2022-01-16 00:24:31 +00:00
Bartosz Dziewoński 005a8d24ef Re-duplicate deduplicated TemplateStyles
Bug: T287675
Bug: T299251
Change-Id: I7711c30131cb441f84b3e2137983f0ba2a50b46f
2022-01-14 21:35:11 +00:00
jenkins-bot 2819958a8a Merge "Add button to sidebar to hide/show unused fields" 2022-01-14 11:35:19 +00:00
WMDE-Fisch 20435b319c Add button to sidebar to hide/show unused fields
Bug: T298259
Change-Id: I8e5091b97dfb19eba981b2a919b82b6f14823990
2022-01-14 11:09:04 +00:00
jenkins-bot 1150891885 Merge "Include TemplatePage styling on mobile" 2022-01-14 11:07:59 +00:00
Andrew Kostka 2e7d4dabd1 Fix positioning of the "add parameter" button on mobile
Bug: T292749
Change-Id: I8c73189fcb94541087c6d44fbe7a82d14f9c3483
2022-01-13 15:18:40 +01:00
Andrew Kostka 914d9f7aaf Add mobile specific styling for TemplatePage
Bug: T292746
Change-Id: I3f2bc156d3f1be6e78b3a5d257c0cc484a65611c
2022-01-13 14:42:41 +01:00
Andrew Kostka 8c07926d4b Include TemplatePage styling on mobile
Bug: T292746
Change-Id: I52dcc8b489598ea8a892ad6c049c20d40f410d5b
2022-01-13 14:03:02 +01:00
Thiemo Kreuz 0907b3eb49 Fix missing return value and related docs in MWTransclusionNode
Change-Id: I3c2c87c2644c45f934c8b1c98958c01a43579da9
2022-01-13 11:56:06 +01:00
Adam Wight 587ba4c662 Confirm before closing template dialog
Reuse the back button confirmation dialog for the close button.  The
condition is slightly different: need confirmation if there are any
manually-entered values for any parameter AND the user has edited
the template in this session.

The "reset" action was synthetic, only used internally and not
connected to buttons or menus.  Canonically, action='' is the close
action for OOUI.

Bug: T297792
Change-Id: I4ff644c7ab24ed9ba1a4c27d762563c5d6771cfc
2022-01-12 10:47:21 +01:00
jenkins-bot 1dbfad3503 Merge "Reuse touched-content logic" 2022-01-12 08:34:09 +00:00
Ed Sanders c0f3fc3a78 Pass visibleSection & visibleSectionOffset to target
* Find the first section below the top of the viewport
  (usually visible) and measure its offset.
* After loading the editor, ensure this heading is still
  at the same position on the page.

Bug: T296910
Change-Id: I9a05ea74ba3c19a4a91ddc1bc0afe311851c53e6
2022-01-11 20:39:27 +00:00
jenkins-bot e1b9e6a98e Merge "Watchlist API update: Call correct method" 2022-01-11 18:41:49 +00:00
Ed Sanders aea22d546e Watchlist API update: Call correct method
We changed the arguments, but not the function name.

Change-Id: Ic7b36f666ead57bc62aa6e40e148821ea267ee80
2022-01-11 18:21:12 +00:00
jenkins-bot 9b659687c7 Merge "Introduce ArticleTarget#afterSurfaceReady" 2022-01-11 18:11:50 +00:00
jenkins-bot 4f9f14f383 Merge "Replace confirmation overlay with a popup dialog" 2022-01-11 17:59:48 +00:00
Adam Wight 28e706b3dd Reuse touched-content logic
Without changing behavior, consolidate the logic for detecting
whether the editor has made changes to the template.  This is
responsible for enabling and disabling the "Apply changes" button.

Change-Id: Ic4755b13f30fb738a7cb1eebaddef0435ea61d34
2022-01-11 17:39:22 +00:00
Adam Wight cbe2fd634f Replace confirmation overlay with a popup dialog
Currently, the insert template dialog includes a back button in the
upper corner.  Confirmation of abandoning unsaved changes was
accomplished in an overlay panel.  This patch rewrites as a dialog
and updates the on-screen text.

Bug: T297792
Change-Id: Ifa2ff97c9284609ee2a784f455789c56a762ba50
2022-01-11 18:37:29 +01:00
jenkins-bot 83d1211ef6 Merge "Give getUniquePartId method a better name" 2022-01-11 13:31:10 +00:00
Ed Sanders 6c471c5b1e Introduce ArticleTarget#afterSurfaceReady
This method should be called once the surface is visible
and ready to be focused.

Change-Id: I43a1d9cabd59181d2beab8f4a29700d031903c22
2022-01-11 03:33:04 +00:00
Ed Sanders 93df71af77 ArticleTarget#scrollToHeading fixes
* Use this.getElementWindow
* Use this.surface.padding to avoid race condition
  when the toolbar hasn't fully rendered yet.

Change-Id: I055b1d9458d73e435ede6096941a3e72c9c1ce74
2022-01-11 03:32:52 +00:00
jenkins-bot b92f414e23 Merge "Use new wikipage.watchlistChange hook" 2022-01-10 22:42:17 +00:00
Ed Sanders 3800daf354 Use new wikipage.watchlistChange hook
Bug: T294254
Depends-On: I88af8585e8fc75f77ebef867d267199aeb2c6592
Change-Id: I60400124976093060b3b5478c6d7d9e6844cc217
2022-01-10 23:16:41 +01:00
jenkins-bot ccb74dc828 Merge "Enforce formatversion=2 in template search" 2022-01-10 12:57:05 +00:00
jenkins-bot 8886773548 Merge "DiffPage: Only set user pref on 'choose' event" 2022-01-08 01:33:31 +00:00
jenkins-bot 67aad36acb Merge "DiffPage.init: Move and rename some vars" 2022-01-08 01:33:29 +00:00
jenkins-bot 451555ac64 Merge "Tests: Fix unbalanced HTML" 2022-01-08 00:26:53 +00:00
Ed Sanders 40a50cac4a DiffPage: Only set user pref on 'choose' event
This prevents your preference being changed if you just
followed a link with a diffmode parameter.

Change-Id: I755563bde285e95c0367119d49a40e1dd3c5e178
2022-01-06 16:48:02 +00:00