Commit graph

3660 commits

Author SHA1 Message Date
jenkins-bot 0520bb6e34 Merge "Don't allow parameter names that break the wikitext syntax" 2021-09-06 08:39:07 +00:00
Thiemo Kreuz 3ee7a1f1ed Do not pass Message object to …DismissibleMessageWidget
I wanted to change this for quite a while now. It was discussed
again in Iff1d2c0.

Change-Id: Iaaac9bf91d9b11557ab068d2c719084c46b3ecb2
2021-09-03 15:21:36 +00:00
Thiemo Kreuz 1f4880181e Don't allow parameter names that break the wikitext syntax
Any of these characters results in bad wikitext, when we accept
it in a template parameter name.

Instead of displaying an error message we simply block the
button, as long as the input is not a valid parameter name.
Coming up with a message is not really worth it, I would
argue. Users typically don't have a reason to use any of these
characters. This is super rare. And even if, the behavior of
the widget is not hard to understand, I believe.

The same is done in ve.ui.MWParameterSearchWidget, a little
hidden in the .addResults() method.

Not yet approved by UX. Can be done in demo time.

Bug: T285869
Change-Id: I5576cdfb90411e5fdec93749f72939d31ecd9c56
2021-09-03 15:20:13 +02:00
jenkins-bot 6caf286134 Merge "Hide "required" indicator in new sidebar" 2021-09-03 11:08:17 +00:00
jenkins-bot e57bc90459 Merge "Fix doc padding in new sidebar" 2021-09-03 11:08:15 +00:00
Adam Wight 7fd96f9b38 Hide "required" indicator in new sidebar
This is redundant with other hints.

Change-Id: I15aa2c0249efdd2071af0c085c0a5de6a1d25b29
2021-09-03 11:48:26 +02:00
jenkins-bot 836ab09a79 Merge "Rename and document select/focus events in template dialog" 2021-09-03 09:38:21 +00:00
Adam Wight 7b0d4b1224 Fix doc padding in new sidebar
This was causing the doc text to be undesirably indented.

Change-Id: I3cf8fb1136d354ca04ee077c19e37998fdb85549
2021-09-03 11:37:18 +02:00
jenkins-bot 7eb5b5a1ef Merge "Cleanups and optimizations related to .parseDom()" 2021-09-02 20:03:09 +00:00
Thiemo Kreuz 36bd65dda7 Cleanups and optimizations related to .parseDom()
E.g. avoid calling the rather expensive method multiple times
in a row, if only 1 of the results is needed.

Change-Id: Iff1d2c0892367e927303f6f45d3231e04c045cab
2021-09-02 18:29:09 +00:00
jenkins-bot a7c584b6db Merge "Minor CSS cleanup related to gaps between booklet pages" 2021-09-02 14:19:57 +00:00
jenkins-bot d0653d8929 Merge "Tighten vertical gap between parameters" 2021-09-02 13:49:52 +00:00
Thiemo Kreuz e621df1cbe Minor CSS cleanup related to gaps between booklet pages
* Use a more specific …-top property, as this is the only thing
  we need to overwrite.
* Bring some selectors in a hierarchical order that makes more
  sense.

Change-Id: If36db87d83f699fe0a43ac67d439cac42cbb1fa3
2021-09-02 15:41:40 +02:00
jenkins-bot 5764fc6ac0 Merge "Make sure links in notices open in new tabs" 2021-09-02 13:22:31 +00:00
jenkins-bot 25da8cb9d7 Merge "Update template dialog help messages" 2021-09-02 13:20:31 +00:00
jenkins-bot 7848b1a071 Merge "Fix inconsistent keyboard :focus styles in template outline" 2021-09-02 13:04:17 +00:00
Adam Wight 7fca2417b8 Tighten vertical gap between parameters
Bug: T288465
Change-Id: I608f6e398ec77bf87bca363c761d44661ced8dfd
2021-09-02 14:33:53 +02:00
Adam Wight d8dcc89fa0 Update template dialog help messages
* New help text for the case where TemplateData is present, whether
  or not it includes a description.
* Remove help text when TemplateData is missing.

Bug: T288465
Change-Id: I0668ccae8eeb5ffffc626e3b7d24c1d7ed99bbed
2021-09-02 14:24:35 +02:00
WMDE-Fisch e8bb4b5010 Make sure links in notices open in new tabs
Bug: T276574
Change-Id: I458afab8a34d97619f858c49eea0cef3ad1b83fa
2021-09-02 14:12:01 +02:00
jenkins-bot 52fe00975e Merge "Add notes and warning for missing parameter documentation" 2021-09-02 11:49:59 +00:00
jenkins-bot 52ed6367f9 Merge "Mark link to non-existing template page red" 2021-09-02 10:25:54 +00:00
jenkins-bot 7c304dc444 Merge "Highlight first template parameter when using tab to navigate" 2021-09-02 10:18:22 +00:00
jenkins-bot abdbf57f84 Merge "Fix click/enter on template parameters not focusing the input" 2021-09-02 10:11:49 +00:00
jenkins-bot c8e00fb98a Merge "Highlight corresponding template parameter in new sidebar" 2021-09-02 10:10:13 +00:00
Thiemo Kreuz a395e76653 Mark link to non-existing template page red
Bug: T272487
Change-Id: I15b377feda3a4e3b4570986668dfaa066afd70e9
2021-09-02 10:02:57 +00:00
Thiemo Kreuz 06cf00f4c6 Rename and document select/focus events in template dialog
I tried hard to come up with the best possible names. Some of the
criteria I used:
* Longer and more unique is better. This makes it much easier to
  e.g. search for the event name.
* The term "part" should only be used for top-level parts. While
  template parameters have a unique id, they are not a subclass
  of …TransclusionPartModel and therefor not "parts".
* BookletLayout manages "pages" via "page names".
  * The page names of top-level parts are identical with the part
    id, see ve.ui.MWTemplateDialog.getPageFromPart.
  * The page names of parameters are identical with the parameter
    model id, see ve.ui.MWTemplateDialog.onAddParameter.

Some code knows parameter ids, but not what pages are. Other code
knows page names, but not what parameters are. The transition
currently happens in the …OutlineContainerWidget. We might want
to move this point up to the …TemplateDialog. But I would argue
this is good enough for now and can be changed later, if needed.

Bug: T285323
Change-Id: Iab2805b3203988db400b67c8d00e48905fdc53dc
2021-09-01 16:23:59 +00:00
WMDE-Fisch 1673f9f8bf Add notes and warning for missing parameter documentation
Bug: T276574
Change-Id: Iba0dd661ccdfd6cbb13aef7e8ace25995ecf0cf8
2021-09-01 17:29:25 +02:00
Thiemo Kreuz fc0b419540 Highlight first template parameter when using tab to navigate
I tried to memorize the cursor position in the list of
parameters. This way you could leave the list with tab, and
return to the original position with shift+tab. Unfortunately
this is not how the SelectWidget works. The moment the
highlight is gone it's gone. There is nothing that remembers
a position. We could introduce code to do this. But I feel
like this is a lot of effort for not much benefit. Also not
listed as a requirement anywhere, at the moment.

Bug: T285323
Change-Id: I8d44ba4539ec4b5535bc031accfeacd87e1886eb
2021-09-01 14:05:01 +00:00
Thiemo Kreuz 7a8ad64cbd Fix click/enter on template parameters not focusing the input
This got lost in patch I20dbd2b.

Both events come from the same sidebar class. The difference
between the two is:
* selectPart is when the button representing a top-level part
  is clicked.
* focusPart is when a parameter name is clicked while the
  parameter is already checked.

Yes, this is confusing at the moment. Following patches will
rename, merge and split a lot of these events to be much more
self-explaining.

Bug: T285323
Change-Id: I0c6b53c93c712ff5e47c1beb5199d590cba7ab1a
2021-09-01 16:01:17 +02:00
Thiemo Kreuz b7efea5559 Remove unused event listener from …ParameterSelectWidget
We forgot to remove this in I319896a. The individual
…TransclusionOutlineParameterWidgets don't fire this event any
more. Instead this is done by the …SelectWidget.

Bug: T285323
Change-Id: I2c29e45127464785ffdc32d73b52188fcbefb7bf
2021-09-01 11:58:36 +00:00
Thiemo Kreuz b0ddcb0010 Highlight corresponding template parameter in new sidebar
Note there are currently two different code paths utilizing two
different events. The existing event handler actually changes
the selection of the top-level part in the sidebar (the
corresponding template name turns blue). The new event handler
highlights a parameter (it turns gray). This is currently
intentional (partly because of a bug in OOUI). I will try to
merge these code paths, if possible.

Please test, and if it works fine from the user's perspective,
please merge it as it is for now.

Bug: T285323
Bug: T289043
Change-Id: I8fafee68b8b7ff225c7b3c327f483f3426d8129c
2021-09-01 11:15:37 +02:00
jenkins-bot f7265428e8 Merge "Try to use margin/padding instead of flex for template dialog" 2021-09-01 08:53:01 +00:00
jenkins-bot 3b5064318c Merge "Connect focus event from BookletLayout to new sidebar" 2021-09-01 08:47:07 +00:00
Thiemo Kreuz a4dac831d9 Try to use margin/padding instead of flex for template dialog
Proof of concept: while flex is – well – flexible, it feels like
this should be possible with some good old block containers and
margins. It's pixel-perfect in my test.

Bug: T288465
Change-Id: I1458900fff197e08ce318398524a3cf2b6b9ee2a
2021-09-01 10:35:52 +02:00
jenkins-bot fd4084efb9 Merge "Use ve.targetLinksToNewWindow in MWDismissibleMessageWidget" 2021-08-31 14:21:40 +00:00
jenkins-bot bc1af53609 Merge "Text improvements for unkown parameter input" 2021-08-31 14:10:46 +00:00
WMDE-Fisch 099d6bad87 Use ve.targetLinksToNewWindow in MWDismissibleMessageWidget
Change-Id: I71a2c933e4af0dac4a083ce34820fa2994fc388d
2021-08-31 15:06:20 +02:00
WMDE-Fisch 14d3e8144c Text improvements for unkown parameter input
- Change description text according to ticket
- Make sure link to template page opens in new tab
- Add missing placeholder text

Bug: T272487
Change-Id: Ie8189e9cb9db5908e8fc5fc8bf7ff20df5595094
2021-08-31 14:57:24 +02:00
jenkins-bot 9d0c480529 Merge "Narrow selector for links when adding _blank" 2021-08-31 12:42:36 +00:00
jenkins-bot a6c01e946a Merge "Rename …OutlineItem CSS class to match widget class name" 2021-08-31 11:35:18 +00:00
WMDE-Fisch 99cee2be11 Narrow selector for links when adding _blank
Change-Id: Ia05117759c81fff6f35256931d0894c0b8051fe6
2021-08-31 13:08:25 +02:00
jenkins-bot ef486588ce Merge "Add tests for new ve.ui.MWAddParameterPage" 2021-08-31 10:55:16 +00:00
Thiemo Kreuz c32a6d794a Fix inconsistent keyboard :focus styles in template outline
This fixes a few style issues:
* The buttons that represent top-level elements have a proper
  2px focus rectangle again. Back to the OOUI default.
* The list of parameters does have a 1px focus rectangle all
  around. Intentionally thin because there is a 2nd level of
  keyboard navigation (via cursor keys) in this element.
* All these focus rectangles look the same in Firefox. Before,
  it was a thin dotted line on the parameter list.
* Parameters with long names don't wrap on a 2nd line any more.
  I believe this was working before but got lost in I92e8fd2.

Bug: T285323
Change-Id: I0229b6395a64a9903335bf96349af70fb20ad047
2021-08-31 12:30:24 +02:00
Thiemo Kreuz b84251080a Rename …OutlineItem CSS class to match widget class name
Bug: T285323
Change-Id: Ib307a23adb4712f253610b5029483ea8c049b7ce
2021-08-31 12:16:10 +02:00
jenkins-bot 7f8b6202ac Merge "Correct focus handling when adding undocumented parameters" 2021-08-30 15:43:35 +00:00
Thiemo Kreuz fcd555ba68 Correct focus handling when adding undocumented parameters
When I press the button to expand the input field for
undocumented parameters, it needs to be focused. Otherwise I
have to click it manually all the time.

We probably forgot to list this as an acceptance criteria when
working on Ic5dcd36.

This also replaced a bit of JavaScript with CSS. I do this
mainly because I found the mixture before (one piece was
hidden via JavaScript, another via CSS) a bit confusing.

Bug: T272487
Change-Id: I0cbee63c65a37f2f1860bde007c1e5c8408ba006
2021-08-30 17:03:30 +02:00
Thiemo Kreuz 99558f9076 Connect focus event from BookletLayout to new sidebar
This makes sure the corresponding top-leve part is selected in
the list on the left when navigating the main area on the
right.

Bug: T289043
Change-Id: Id1b398e1786c4099d5b14fe88dd21a106269096b
2021-08-30 17:00:52 +02:00
Thiemo Kreuz e9bd350f68 Add tests for new ve.ui.MWAddParameterPage
The class was added via Ic5dcd36 just a few days ago.

Bug: T289560
Change-Id: I3f729fb6c5d7c28a221d88294d5547809f10a17d
2021-08-30 13:02:52 +00:00
Thiemo Kreuz 0ba7480901 More complete top-level part selection support in new sidebar
This comes with a few significant changes:
* A whole bunch of places in the code that focus and highlight
  an element in the old sidebar consider the new sidebar now.
* Same when e.g. the toolbar at the bottom needs to know which
  part is selected. This is read from the new sidebar now.
* To make this possible I had to merge the small helper class
  we introduced in I7bc73cc back into the dialog.

It's helpful to understand how the event flow works:
* You click a template name. This does nothing (does not select
  the element). It only triggers an event.
* The event is catched by the outer container that manages
  all parts. From there all elements are unselected, and one
  selected. This call is internal and should not trigger
  another event.

Bug: T285323
Bug: T288827
Bug: T289043
Change-Id: I4a2d2b83cf2691423d4b0e6f4487228fa3c7b56d
2021-08-27 19:16:00 +02:00
Thiemo Kreuz 544bd5688c Allow selecting top-level parts in the new sidebar
This is mostly, if not exclusively visual, at the moment. The
actual state is still managed by the old sidebar.

I made the element OptionWidgets for convenience. This gives us
all the functionality we need (primarily setSelected and
isSelected), without to much clutter. However, I didn't made
the container a SelectWidget. This comes with to much stuff we
don't need at this level, e.g. cursor key navigation.

Bug: T285323
Bug: T289043
Change-Id: I20dbd2ba23ceaa9125947b25e037c0bb3c91a471
2021-08-27 18:22:37 +02:00
jenkins-bot c1ce1e3d4b Merge "Move small code snippets into …OutlineParameterSelectWidget" 2021-08-27 11:36:53 +00:00
jenkins-bot c5ea00c03d Merge "Remove wikitext buttons from the content view" 2021-08-27 10:33:02 +00:00
jenkins-bot 86f9acf616 Merge "Cleanup feature flags in ve.ui.MWParameterPage" 2021-08-27 10:32:10 +00:00
jenkins-bot f2b94e10b6 Merge "More test cases for MWTransclusionOutlineContainerWidget" 2021-08-27 10:00:04 +00:00
Andrew Kostka d94fb21b1e Remove wikitext buttons from the content view
Bug: T285669
Change-Id: I875a41e54e7a33cb9f67383d887a732a31649bbb
2021-08-26 17:47:14 +02:00
Thiemo Kreuz 7aeff4bfd3 Move small code snippets into …OutlineParameterSelectWidget
Most notably:
* Move some code snippets from the outer …TemplateWidget to
  the inner …SelectWidget, without introducing new
  dependencies.
* Move all knowledge about the item class
  …OutlineParameterWidget class into …SelectWidget.
* Some more self-documenting method names for event handlers.
* Avoid the somewhat ambiguous variable name "checkbox" in
  favor of "item". That's how it's named in the upstream OOUI
  …SelectWidget.

This is extracted from the following patch Ibd94c39. The
difference is that the following patch adds a new dependency:
The …SelectWidget gets to know the template model. This patch
here contains all changes that are possible without this new
dependency.

Bug: T288827
Change-Id: I187f313c84424b28005d9276cb1356029f9ebb75
2021-08-26 17:30:03 +02:00
Andrew Kostka afe8e8f721 Cleanup feature flags in ve.ui.MWParameterPage
Change-Id: Id1be6512f763d9ddb98665005d378947fdd3e6bb
2021-08-26 17:25:09 +02:00
jenkins-bot a5718f01c5 Merge "Remove unnecessary title parsing from template related code" 2021-08-26 15:08:13 +00:00
jenkins-bot 765b1da5b1 Merge "Use spec label for template link generation" 2021-08-26 14:13:22 +00:00
Thiemo Kreuz c8536f1a71 Remove unnecessary title parsing from template related code
There are 2 situations:

1. Either the template name is used in a [[…]] link. In this case
we must provide the namespace. MWTemplateModel.getTitle() does
this. However, it's not a mw.Title object and therefor not really
guaranteed to be a valid title. This is fine. The worst thing
that can happen is that the link points to an error message.
But this should be entirely unreachable anyway.

2. Some messages want to display the name of the template.
Ideally without the namespace. That's what
MWTemplateSpecModel.getLabel() is for. Again this is not
guaranteed to be a valid mw.Title. But it doesn't need to. It's
only used as a label.

Change-Id: I03d0481201620a2f5c444ee32b656bcaade98aac
2021-08-26 15:58:15 +02:00
jenkins-bot 34992ba3ac Merge "Basic cursor key support in new template dialog sidebar" 2021-08-26 13:46:40 +00:00
WMDE-Fisch 3913f635d4 Use spec label for template link generation
We should only need that label for the link. The other mechanic
would fail when editing wikitext like this:

{{{{echo|<}}|param=foo}}

Bug: T272487
Change-Id: If8d228b40bf1589181e83e8f68f3c33b4c7759c7
2021-08-26 15:09:48 +02:00
Thiemo Kreuz 0bd9e587b3 Basic cursor key support in new template dialog sidebar
Bug: T285323
Depends-On: I47effe05427cfabfcf534920edee79521eaa033f
Change-Id: I319896a20a71b18655ebb93663d47e656a1a67a6
2021-08-26 12:48:49 +00:00
jenkins-bot 6c33cc4a35 Merge "Add message on multipart content" 2021-08-26 07:34:15 +00:00
jenkins-bot 5be007ee9a Merge "Minor cleanups to new add parameter input widget" 2021-08-26 07:26:53 +00:00
jenkins-bot 4741abe803 Merge "Added new input page for undocumented parameters" 2021-08-26 07:26:41 +00:00
WMDE-Fisch 67988452ab Add message on multipart content
Bug: T276574
Change-Id: Iff5c2fd4071dd03ca62c395cce4041dacb1c7ea6
2021-08-25 10:47:16 +02:00
Thiemo Kreuz 9392282bf2 More test cases for MWTransclusionOutlineContainerWidget
This also fixes a mistake in the class where we forgot to
disconnect event handlers when an element is removed from
the list. This doesn't have much of a consequence, as the
event flow is only in one direction, from the destroyed
element up. This is not possible any more.

Bug: T289560
Change-Id: I0bcc1d68c50b8cbdb033ef6692b34e2fc94e8d85
2021-08-24 15:46:46 +00:00
Thiemo Kreuz 3bca0f30c9 Minor cleanups to new add parameter input widget
Most of what I did in patchset 1 is now squashed into the
original patch Ic5dcd36.

Bug: T272487
Change-Id: I5cfd500da4c496a31ec5a28fedee4a079acc6123
2021-08-24 10:22:55 +02:00
Svantje Lilienthal 5c9fbca085 Added new input page for undocumented parameters
Bug: T272487
Change-Id: Ic5dcd36c9f647f9b52b98e5a520a1df1960a5b48
2021-08-24 10:18:43 +02:00
jenkins-bot e803c20007 Merge "Rename …ParameterCheckboxLayout now that it's an actual Widget" 2021-08-23 14:46:09 +00:00
jenkins-bot f1c9012916 Merge "Remove dependency from new sidebar to the BookletLayout" 2021-08-23 14:40:02 +00:00
jenkins-bot 6cdd1f6ebf Merge "Clean up toggleSidebar by splitting out 'auto'" 2021-08-23 14:31:39 +00:00
Thiemo Kreuz 3b5bc1b0b2 Fix non-existing property name .isNewSidebar
This is obviously a rebase mistake. We renamed the property in
I78a5129.

Change-Id: I43247ebf6c8910d12c90aa2dd1f9111f4ed69a07
2021-08-23 15:44:28 +02:00
Adam Wight b1a376a6e1 Clean up toggleSidebar by splitting out 'auto'
This naturally fits into a new function.

Bug: T274554
Change-Id: Icda432dc1a13243efddc9949f41a00162053970d
2021-08-23 14:38:24 +02:00
jenkins-bot d6316145b5 Merge "Better method names in MWTransclusionModel class" 2021-08-20 11:29:49 +00:00
jenkins-bot 112bd2e5cb Merge "Call focusPart() only once in MWTemplateDialog.onReplacePart()" 2021-08-20 09:56:52 +00:00
jenkins-bot cdf7d907a9 Merge "Fix null error in ve.ui.MWTemplateDialog" 2021-08-20 09:48:27 +00:00
jenkins-bot 928b33ce69 Merge "Re-add adding undocumented paramters in some cases" 2021-08-20 09:33:18 +00:00
Thiemo Kreuz 8fbdd4258f Fix null error in ve.ui.MWTemplateDialog
Introduced via Ifd52369 just a few minutes ago.

Bug: T288827
Change-Id: I859f606c0608f9725bb64ff56a501a7a2c85c1df
2021-08-20 09:24:56 +00:00
jenkins-bot 6f052b928d Merge "Use page ID string instead of object reference" 2021-08-20 08:37:48 +00:00
jenkins-bot d3e8fe001c Merge "Streamline and harden template paramter search widget behavior" 2021-08-20 08:35:45 +00:00
WMDE-Fisch c3e5ea2fe1 Re-add adding undocumented paramters in some cases
Bug: T272487
Change-Id: I862c2802da1340d302a2a95e8e9d17bd6fd35877
2021-08-20 10:13:20 +02:00
Thiemo Kreuz 5fcc862eb1 Remove dependency from new sidebar to the BookletLayout
This replaces I8cf9ecd.

Significant changes:
* The …OutlineContainerWidget doesn't need to know the
  BookletLayout any more. The only remaining resason to have
  this dependency was some focus management. This is now done
  via an event.
* Renamed an existing event to match the new one. The two
  really mean and do the exact same, even if they are
  triggered from two different places.
* Simplified some existing code.
* Updated documentation.

Bug: T288827
Change-Id: Ifcf2cadabf7fa4b8ecb72e3937003fab3b00d9bb
2021-08-20 10:07:03 +02:00
Thiemo Kreuz 7045371a4d Better method names in MWTransclusionModel class
Names like "fetch" or "resolve" are heavily ambiguous and
continue to confuse me. I hope these new names reflect better
what's going on.

Bug: T288827
Depends-On: I587a203a9370e4742f87586b4f1867b37459c375
Change-Id: I8fa47ed313e7d7b2c114a5638a67c4f3c8b830f1
2021-08-20 10:00:10 +02:00
Thiemo Kreuz 4f9426d61a Rename …ParameterCheckboxLayout now that it's an actual Widget
This is a direct follow-up for Idc5e048.

Bug: T285323
Change-Id: Ia03d594386a9a59a4819bf78c7d2edcd465dfd52
2021-08-20 09:56:40 +02:00
Thiemo Kreuz 301c84bda4 Call focusPart() only once in MWTemplateDialog.onReplacePart()
This merges all code-paths that re-select a part (i.e. an input
widget on the right side of the template dialog).

Note there is an edge-case that actually changes with this
patch. When a page is removed, and creating a new page fails,
there is an `if ( page )` check. Before, the behavior was that
nothing gets selected in this case. After this change the
behavior is the same as if a page was removed: the closest one
gets selected. Not only does this make more sense. The `if` is
only a fail-safe anyway and should not result in different
behavior.

Bug: T288827
Change-Id: Ibb0260587588fb51a876658b16a81c5a73371dc4
2021-08-20 09:49:30 +02:00
Thiemo Kreuz 47bed4e1c8 Use page ID string instead of object reference
You will see where I'm going with this in the following patches.

Bug: T288827
Change-Id: Ifd52369d19c01499fb9cc801c3deec46c26810fd
2021-08-20 09:47:57 +02:00
Thiemo Kreuz 45096d1e2f Streamline and harden template paramter search widget behavior
What this changes:
* The moment the user selects anything in the parameter search
  widget, the input is cleared, no matter what happens next.
  Even in case of an error. We know the input was bad in this
  case. Let's get rid of it.
* The method makes sure it does not even try to add a
  duplicate parameter. This should be unreachable, but better
  be safe than sorry.

This is split from I5eeb973. I run into this while playing
around with different approaches related to hiding deprecated
parameters. Typically there should be no way the parameter
search widget offers a duplicate. Still I believe it's a good
idea to have this extra safety-net.

Bug: T272487
Bug: T288827
Change-Id: I04e76d73b4a3f6467d0ccf3ccff5d2f6b4114bd9
2021-08-20 07:46:26 +00:00
jenkins-bot eaeaf7240a Merge "Rename custom outline widget events to not conflict" 2021-08-19 13:49:29 +00:00
jenkins-bot 834d7fee77 Merge "Rename conflicting .setSelected() method in outline widget" 2021-08-19 13:46:24 +00:00
jenkins-bot 2326468533 Merge "Remove unused code from ve.ui.MWTransclusionOutlinePartWidget" 2021-08-19 13:43:26 +00:00
jenkins-bot fdde92f820 Merge "Refactor onReplacePart in TemplateDialog" 2021-08-19 13:40:52 +00:00
jenkins-bot 0bf5c8493b Merge "Remove parameter adding on new sidebar code" 2021-08-19 13:40:16 +00:00
Thiemo Kreuz 095c891040 Remove unused code from ve.ui.MWTransclusionOutlinePartWidget
* getPartId() is unused.
* Use this.data instead of a custom this.partId.
* No need to store this.header as a property.
* Rename the event to "headerClick". That's enough when the
  event comes from a widget that does have the word "part" in
  it's name.

Bug: T274544
Bug: T288827
Change-Id: I8c70425403c6cd6a19e3a1cacb2b085e5c8b2e46
2021-08-19 11:03:44 +00:00
Thiemo Kreuz 3365c0fd66 Rename custom outline widget events to not conflict
The base widgets we are going to use (notably OO.ui.OptionWidget
and OO.ui.SelectWidget) also have events, and some of them use
the same names. Such conflicts are really hard to track down.

This is meant to be temporary. The goal is to use the events
from the base classes and get rid of the custom ones, if
possible.

Bug: T285323
Change-Id: I0f103a5bbb8fb800e57009e3bf709f00a651fdda
2021-08-19 09:55:11 +00:00
Thiemo Kreuz 68712e979b Rename conflicting .setSelected() method in outline widget
The problem here is that the OO.ui.OptionWidget base class
(changed in the previous patch) also contains a .setSelected()
method, but with slightly different behavior. This results
in crazy behavior when I try to make the outer widget an
OO.ui.SelectWidget.

Renaming the method to be a custom, private helper method
avoids this problem.

The plan is to actually use the default setSelected()
behavior and get rid of the helper method. This will be done
in later patches.

Bug: T285323
Change-Id: I84e752f20a4d07007fd4e61989f9b34983410950
2021-08-19 09:54:55 +00:00
WMDE-Fisch eeda931f59 Refactor onReplacePart in TemplateDialog
As preparation to introduce then new UI to add unknown parameters.
This is a few things:
- Merge the code paths when adding a MWTemplateModel
- Put code adding parameters to the dialog next to each other so
  that preventing reselection happens around that block
- Reduce duplicated code when re-focusing after addition
- Move adding the placeholder page to the end
- Add and clean up inline documentation

Bug: T272487
Change-Id: Ic700edd42027a928a236ed11f2c257fffe994257
2021-08-19 08:19:01 +00:00
WMDE-Fisch d41714f3a1 Remove parameter adding on new sidebar code
This removes the paramter placeholder page from all places where it's
not usefull anymore under the new sidebar.

The new UI will be re-added in follow up patches.

Bug: T272487
Change-Id: Ifc6f6f64fed1a1b23c92282e2a1bb40a7d401d72
2021-08-19 08:18:55 +00:00
Thiemo Kreuz 0af0978db4 Use same .useNewSidebar property name everywhere
This makes it easier to find stuff.

Change-Id: I78a51290767db4fe06ba0d4d2d251e8df07368b4
2021-08-19 10:13:16 +02:00
jenkins-bot 5102ed2ab5 Merge "ve.ui.MWMediaDialog: mediaUploadBooklet may be undefined" 2021-08-18 16:50:07 +00:00
jenkins-bot f2e0388dc1 Merge "ve.ui.MWBackTool: Avoid using global ve.init.target" 2021-08-18 16:50:04 +00:00
jenkins-bot 68cfd5da16 Merge "Remove addParameter button from new sidebar" 2021-08-18 09:34:26 +00:00
jenkins-bot b05b165981 Merge "Make template parameter checkbox widget an OptionWidget" 2021-08-18 09:31:52 +00:00
jenkins-bot 029a982625 Merge "Remove unwanted scrollbar in responsive template dialog" 2021-08-18 09:22:36 +00:00
Thiemo Kreuz 220c98ab44 Make template parameter checkbox widget an OptionWidget
The plan is to change the outer …TemplateWidget (which contains
a list of template parameter checkboxes) into a SelectWidget.
But this requires the elements in the list to be a subclass of
OptionWidget.

Note this change does not have any effect, as of this patch. But
this makes the following patches smaller and easier to follow.

Additionally:
* The OptionWidget class is already a LabelElement. No need to
  initialize this twice. This happens via the parent constructor
  now.
* Remove CSS that is not needed any more after Idc5e048. This is
  not a FieldLayout any more.
* Update some related code documentation.

Bug: T285323
Change-Id: I92e8fd2bbece9e6c55083cdfe6ed7ad16a64d688
2021-08-18 11:11:41 +02:00
WMDE-Fisch 891814d12c Remove addParameter button from new sidebar
Bug: T272487
Change-Id: Ie790a056f16727a89199f9737862281e0ac455a3
2021-08-18 09:22:43 +02:00
jenkins-bot d417d3709b Merge "Use the "wikitext" for content in transclusions" 2021-08-17 13:32:37 +00:00
jenkins-bot 52e24c650a Merge "Remove sidebar margin on single transclusion" 2021-08-17 13:29:16 +00:00
WMDE-Fisch 03af517d19 Adjust icon spacing in new sidebar menu
The icons have a padding of 6px around the icon image itself. To
get to the required 16px/8px space the margin was adjusted
accordingly. Note that there's also a 2px padding around the menu.

Bug: T272482
Change-Id: I3df9f355dfd5c4e6366432555b96bf788e784280
2021-08-17 14:26:06 +02:00
WMDE-Fisch 53186fc231 Remove sidebar margin on single transclusion
Bug: T272482
Change-Id: I5696dbd469161b1ab1ede2bb3f49e6dd24b98521
2021-08-17 13:54:36 +02:00
Thiemo Kreuz 7503b323b1 Stop re-creating template parameter pages over and over again
This is what actually happens:
* We call `addParameter()`.
* This triggers an `add` event.
* This calls an `MWTemplateDialog.onAddParameter` event handler.
* This code doesn't check if a parameter already exists (because
  it shouldn't). It detroys the page in the content pane on the
  right and recreates it from scratch.

The only reason we do this is to focus the input field on the
right. This patch introduces a dedicated event to do this.

Bug: T288827
Change-Id: I47effe05427cfabfcf534920edee79521eaa033f
2021-08-17 13:34:41 +02:00
WMDE-Fisch 199d9536d1 Use the "wikitext" for content in transclusions
Bug: T272482
Change-Id: Ibe68b49c25b4f0d88483c22e0e4b8462d935a45b
2021-08-17 13:06:49 +02:00
Thiemo Kreuz 88ebae9b0f Remove unused properties from template part widget classes
It doesn't look like we are going to need these.

Bug: T288827
Change-Id: I0bcc1aea85ce589db814a1bed12226d47728d7e9
2021-08-16 14:52:54 +02:00
jenkins-bot 5c9bfe6a33 Merge "Make checkbox element in the sidebar an actual widget" 2021-08-16 12:36:40 +00:00
jenkins-bot c3ff9df19e Merge "Basic keyboard navigation in the new template dialog sidebar" 2021-08-16 12:36:37 +00:00
jenkins-bot ddfde5f3b6 Merge "Remove duplicate class property from checkbox layout" 2021-08-16 11:56:16 +00:00
jenkins-bot eb0e2cd507 Merge "Change filterParameter(s) event to work with a list" 2021-08-16 11:10:09 +00:00
jenkins-bot 41c286c68c Merge "Rename ambiguous "add button" click handlers" 2021-08-16 11:01:36 +00:00
jenkins-bot 0e6c56160e Merge "Show sidebar controls only when multi-part content is present" 2021-08-16 10:54:41 +00:00
jenkins-bot ea0f1c2610 Merge "Minimize template dialog CSS a bit" 2021-08-11 13:19:20 +00:00
Andrew Kostka a2135d524d Show sidebar controls only when multi-part content is present
Bug: T272482
Change-Id: I092438bc9c7d5569f758786ca6952beffdf37507
2021-08-11 15:00:59 +02:00
jenkins-bot 1f91b2e185 Merge "Rename and document definition of "empty" in ve.ui.MWParameterPage" 2021-08-11 07:44:33 +00:00
Thiemo Kreuz 97486b2b3d Rename and document definition of "empty" in ve.ui.MWParameterPage
I found this while working on T274551, which is all about the
definition of "empty".

In the old sidebar a parameter's name is dimmed (gray) as long as
the parameter's value is empty. This stops working entirely when
there is a default value.

My first impulse was "this is a bug". When there is a default
value, both the empty string and the default value (when the user
enters it exactly) typically trigger the same behavior: The
template uses the default value, just as if the user entered it.

But this code is correct because of the way it is used. Only
parameters that are "truly" empty should be visually marked as
such. The moment there is a default value it is either impossible
to change this back to an empty string – meaning the parameter
can never be truly empty – or the empty string is meaningful user
input.

Bug: T274551
Change-Id: I90657bfe83e56afd3942428c0dd8a47b444e39c9
2021-08-11 07:24:41 +00:00
Thiemo Kreuz d1f87646df Make checkbox element in the sidebar an actual widget
This should not have any effect on how the thing looks and
behaves.
* All elements in the sidebar should be reachable with the tab
  key, including disabled elements.
* Enter jumps to the corresponding paremeter in the content
  area on the right. But enter doesn't change the checkbox
  state.
* Space canges the checkbox.

The class will be renamed in the next patch.

Bug: T285323
Change-Id: Idc5e04828ece0ba77a65e4c839cd3ffccc3b6733
2021-08-11 09:12:00 +02:00
Thiemo Kreuz 993c64f9a2 Minimize template dialog CSS a bit
Bug: T272481
Change-Id: I156c8f2ea4a70d2e86a7bc4282738c51bebc3f2a
2021-08-11 08:09:40 +02:00
Thiemo Kreuz 0bbcb436c1 Change filterParameter(s) event to work with a list
As discussed in Ia44da16. This change avoids possibly hundreds
of events (when a template does have hundreds of parameters),
and replaces them with a single one.

Bug: T288202
Change-Id: Ic819e8c93e872b653c238f396f1f327b6a8759d2
2021-08-11 08:06:22 +02:00
jenkins-bot 84799aa36c Merge "Don't show toolbar in MWLanguageVariantInspector text targets" 2021-08-10 01:17:08 +00:00
David Chan b8e2bfe051 Don't show toolbar in MWLanguageVariantInspector text targets
Bug: T284402
Depends-On: Idc8d2ffdae3f1168813fcb89ce5ca20bd835f9ab
Change-Id: I9316d77218b81ed47f99293ed70fe02c32edb96e
2021-08-09 23:34:48 +00:00
Thiemo Kreuz f32a062e3f Basic keyboard navigation in the new template dialog sidebar
There is still a lot to do, but this implements some basic
behavior that was missing before.

* You can now use the tab key to navigate all checkboxes,
  including disabled ones (required parameters).
* Enter key now works on both the checkbox as well as when
  the entire line is highlighted. Enter forces the checkbox
  to be checked and moves the focus to the content area.
* Mouse clicks now work on the entire line. Before, only the
  text label was clickable.

Open issues (not to be resolved in this patch):
* Clicking the text label and the empty space after the text
  label does different things. Probably shouldn't.
* Should a click on the label check the checkbox?
* Space key should probably not move the focus to the content
  area.
* Focus rectangle is different on disabled rows. Is this ok?
* Background color when a line is focussed is missing.

Change-Id: I22ccd1bea92e4f098d4b25a9e38cddde5c103423
2021-08-09 18:38:28 +02:00
Thiemo Kreuz 984a3a1ebf Remove duplicate class property from checkbox layout
The checkbox is the first parameter in the parent constructor.
The parent is the FieldLayout class. The checkbox becomes the
this.fieldWidget in the parent class. Just use this instead of
storing a duplicate reference.

Bug: T274543
Change-Id: I4ae7d467334f88f2be93a62660145a025089401f
2021-08-09 18:31:30 +02:00
Thiemo Kreuz 7d464fbf1f Remove unwanted scrollbar in responsive template dialog
I get a scrollbar at the bottom of the sidebar. The reason is
that the container's width is 100% + 1px. The extra pixel is
from the border, which is not needed in this mode.

Bug: T274554
Change-Id: I4f749be6b9a7f89f9a7a195dc66c5c18253b1327
2021-08-09 18:28:56 +02:00
jenkins-bot 622a85a2eb Merge "Split long ve.ui.MWTransclusionOutlineTemplateWidget methods" 2021-08-09 12:50:43 +00:00
Thiemo Kreuz 2ce7bb0213 Split long ve.ui.MWTransclusionOutlineTemplateWidget methods
This direct follow-up is meant to resolve the change request
from I1b0480a.

Bug: T274551
Change-Id: Iee4bab0b9807e6d36435d31bf8ec879d13d9ad3b
2021-08-09 10:40:53 +00:00
jenkins-bot aa868059ee Merge "Better name for ambiguous "empty" concept in the model" 2021-08-09 09:40:40 +00:00
jenkins-bot d5b40aaab7 Merge "Fix off-by-1 error when deprecated parameters are hidden" 2021-08-06 13:28:45 +00:00
Thiemo Kreuz 35080a8646 Better name for ambiguous "empty" concept in the model
This is really only about the methods name, but doesn't change
any behavior.

I realized we work with several different definitions of what
"empty" means. There are at least two significant definitions:

1. When a parameter's value is the empty string or identical
to the default value, the behavior of the template is the same.
It will use the default value just as if the user entered it.

The auto-value is a meaningful value in this scenario and can't
be considered equal to the empty string.

2. The context here is when the user presses the back button.
This will destroy all user input. But an auto-value is not user
input. It will appear again when the user realizes they made a
mistake. Nothing is lost.

Personally, I would not use the word "empty" to describe this
concept. Things like "containsUserProvidedValue",
"isCustomValue", "isMeaningfulValue", … come to mind. These are
all still a big vague. A "user provided" value can be identical
to the default or auto-value. "Custom" how? I went for
"containsValuableData" for now.

Bug: T274551
Change-Id: I2912a35556795c867a6b2396cbad291e947f0ed6
2021-08-06 15:11:44 +02:00
jenkins-bot 004d37dc1d Merge "Hide old sidebar when the new one is enabled" 2021-08-06 13:10:04 +00:00
Thiemo Kreuz 6446cf950f Fix off-by-1 error when deprecated parameters are hidden
This is a direct follow-up to I6ebd020.

Steps to reproduce the bug:
* Make sure you have a template with a deprecated parameter.
  The position doesn't matter.
* Add the template. The deprecated parameter is hidden.
* Add an undocumented parameter, e.g. "b". This is added to the
  end, as it should.
* Add an undocumented parameter "a". This should appear before
  "b", but doesn't. The reason is because the invisible
  deprecated parameter is in the list that is used to calculate
  the index, shifting it by 1 (or more when there are more
  hidden parameters).

This patch includes a few closely related changes:
* We can loop the list of checkboxes directly instead of
  indirectly via the list of parameter names.
* I made it so that an active filter only resets if it would
  hide the new parameter. The original problem we had to solve
  was that the new parameter would always be visible, even if
  it doesn't match the filter. This awkward mismatch is still
  guaranteed to not happen.

Bug: T274551
Change-Id: I1b0480ae836cc19b77b159d3fb30ff32e8c59df4
2021-08-06 12:24:49 +00:00
jenkins-bot 4e2f3befe9 Merge "Make the sidebar in the transclusion dialog responsive" 2021-08-06 10:40:44 +00:00
jenkins-bot 5dabf57f94 Merge "Filter right content side of the template dialog as well" 2021-08-06 10:26:55 +00:00
Andrew Kostka 21e9f5f0c4 Make the sidebar in the transclusion dialog responsive
Bug: T274554
Change-Id: I51e988e6fb0e50c9d542400471152807626539ea
2021-08-05 17:23:22 +02:00
Andrew Kostka 2f1cfdd187 Cleanup feature flags in ve.ui.MWTransclusionDialog
Change-Id: I6f6326c981da998b547a2a1990e26185763093ca
2021-08-05 17:00:27 +02:00
Thiemo Kreuz 3e5a2d6c82 Filter right content side of the template dialog as well
I came up with a new event to do this. This event is triggered
individually for each parameter. An alternative is a single
event that gets a list of visible parameters. Is this better?
What do you think?

Bug: T288202
Change-Id: Ia44da16917c28171a01aef0f1c613dcd5d3266ba
2021-08-05 14:36:10 +02:00
Thiemo Kreuz f37814ba61 Rename ambiguous "add button" click handlers
Change-Id: I25fd1430443feffcc3fb17115dc4129890063c48
2021-08-05 10:51:26 +02:00
Thiemo Kreuz 0351537ba2 Hide old sidebar when the new one is enabled
This is – for now – intentionally done in a way that can be
undone. This will still be helpful for debugging for a while.
But we need to get rid of the duplication to be able to make
this new functionality visible on the beta cluster.

Actual removal will hapen the moment we actually remove the
old toolbar. There are already tickets for this.

Bug: T286765
Change-Id: I842c3c39a55a273af20643fa8a602d2e57fb6b8c
2021-08-05 09:14:40 +02:00
Thiemo Kreuz 5e2a898459 Don't offer deprecated parameters when they aren't used
This affects only the new sidebar. Deprecated parameters don't
get a checkbox, except they are used already. "Used" includes
parameters that are present, but empty.

Bug: T274551
Change-Id: I6ebd020d02650c19060345d13495373acab363df
2021-08-04 16:34:54 +02:00
jenkins-bot cf17a1f191 Merge "Remove tooltip from template dialog title" 2021-08-03 15:29:10 +00:00
jenkins-bot e57daaad98 Merge "Minor JSDoc documentation fixes in template dialog code" 2021-07-29 12:13:17 +00:00
jenkins-bot c7274acf80 Merge "Remove skinning modules when showing preview" 2021-07-28 19:35:42 +00:00
Arlo Breault 2fd09aaba3 Remove skinning modules when showing preview
Bug: T185284
Change-Id: Ifec8809cd75cb76c79936a69351be0c7779de39e
2021-07-28 10:55:16 -04:00
jenkins-bot 98aeab538b Merge "MWInternalLinkAnnotationWidget: show disambiguation pages last" 2021-07-28 03:00:52 +00:00
MusikAnimal 4fbab29e22 MWInternalLinkAnnotationWidget: show disambiguation pages last
Disambiguation pages are rarely the page users intend to link to,
especially with newbies. By moving the disambig page(s) as the last
result, the user is more likely to pick the page they actually intended
to link to.

Bug: T285510
Depends-On: I2b8545f6dd4849629037f81f48a540748e60da83
Change-Id: Id55a19e7665d8f88559c471de36e5447fb2babb0
2021-07-27 18:36:50 -04:00
Andrew Kostka ef33a908a0 Dynamically set the visibility of the sidebar search
With this users can also filter undocumented parameters
that they added to an empty starting template.

Bug: T272481
Change-Id: I99adb38b0ae4d4ade91fcb506f10c0222b9bb5e8
2021-07-20 13:11:08 +02:00
Andrew Kostka 6cec42f8dc Don't reset the sidebar search field if the search widget is undefined
Bug: T286987
Change-Id: I66116ea08d4682e179e9eb70d117454194e3517d
2021-07-20 12:08:00 +02:00
Andrew Kostka d44bc19d20 Adjust the styling for the template parameter search
Bug: T272481
Change-Id: Ie1c6b95cf32640401cb2a17bcda656a40a22e9b4
2021-07-16 18:03:48 +02:00
jenkins-bot d738698deb Merge "Fix incomplete back button implementation in template dialog" 2021-07-16 14:41:07 +00:00
jenkins-bot 317b78782e Merge "Make it possible to reuse existing transclusion outlines" 2021-07-16 14:25:24 +00:00
jenkins-bot 4cb9b05668 Merge "fix order of sidebar elements" 2021-07-16 14:15:16 +00:00
Svantje Lilienthal 2f4e73d6ed fix order of sidebar elements
Bug: T272481
Change-Id: Ifd925bd6e8b972fd5d4e851c3a39a91aeac97d43
2021-07-16 15:10:56 +02:00
jenkins-bot 18a18bc825 Merge "Fix incomplete template dialog event handling in new sidebar" 2021-07-16 13:07:03 +00:00
Thiemo Kreuz 014bc9369c Fix incomplete back button implementation in template dialog
Bug: T286783
Change-Id: Ie86e2c8c6a874fde11591286a83faba71a34430d
2021-07-16 14:54:09 +02:00
jenkins-bot 575d4a8376 Merge "Fix ellipsis on long strings in parameter search widget" 2021-07-16 12:48:53 +00:00
Thiemo Kreuz 5c6d2212da Make it possible to reuse existing transclusion outlines
Note that this patch alone probably does not make that much
sense. The code executed is pretty much the same. The only
difference is that the empty (!) …ContainerWidget is kept
and re-filled with what might be a completely different
template.

This is not much of a difference to before when the
container was recreated.

This change will make more sense when the container has to
manage more state, e.g. focus states. This state will
survive then.

Change-Id: Ic336d10a595e3e222741a3dc57c1d54639166b7a
2021-07-16 14:43:31 +02:00
Thiemo Kreuz 092276009a Minor JSDoc documentation fixes in template dialog code
Change-Id: I3697e48697ab0910b90b418abbc370736589b6e1
2021-07-16 14:25:11 +02:00
jenkins-bot 4ab5fd5c6b Merge "Add a message next to undocumented parameters" 2021-07-16 12:05:29 +00:00
Thiemo Kreuz 1bbf7c3394 Fix ellipsis on long strings in parameter search widget
This ellipsis was there before we started working on this code,
but was never working properly.

We understand that the CSS was intentionally done like this (as
the comment explains). However:
* We changed the width of the dialog. The old value doesn't
  match any more.
* The width is different when the sidebar is expanded vs. when
  it is collapsed. Even if we update the number, it won't
  always work.
* The 100% work fine in current browsers. I can only assume
  this was different back in 2014 when this CSS was written
  (see Ia8259e9).

Bug: T285044
Change-Id: I3de2b0ed0b6a05d2b9fa0b325a2b12277564b271
2021-07-16 13:33:51 +02:00
Thiemo Kreuz 434c11f6de Fix incomplete template dialog event handling in new sidebar
Notably:
* Don't require the model in the new sidebar via dependency
  injection, but connect the event handlers later. This is
  relevant because we currently create the new sidebar in the
  wrong spot. Removing the hard dependency allows us to split
  the code and utilize initialize() and getSetupProcess()
  correctly. This will be done in a following patch.
* The change event now includes the new position. This makes
  it very easy to add this missing feature to the new sidebar.

Also:
* Stop triggering change events when nothing changed. These
  events are expensive. They bubble all the way up to the
  TransclusionModel, and to all linked
  onTransclusionModelChange() handlers.
* Update event documentation to make this more visible.

Bug: T274544
Change-Id: Iafe29f18a6fed14d9c3124c9756aa840886afbbc
2021-07-16 11:29:26 +00:00
jenkins-bot cdf2497983 Merge "Tweaks and cleanups to template parameter search" 2021-07-16 10:47:37 +00:00
jenkins-bot 3858829c19 Merge "Fix template editor showing more than one new sidebar" 2021-07-16 10:18:06 +00:00
Thiemo Kreuz 1164f67f40 Tweaks and cleanups to template parameter search
Notably:
* Include parameter aliases, labels and descriptions in the
  search.
* Don't use a possibly outdated search index, but live data.
* Clear filter when a new checkbox is added.

Bug: T272481
Change-Id: Ie90a803af6178a8bb6de370a0f8e079800d9f8a2
2021-07-16 12:11:13 +02:00
jenkins-bot 6e86365b81 Merge "Add parameter search to sidebar of VE TemplateDialog" 2021-07-16 10:06:15 +00:00
Svantje Lilienthal 066c663864 Add parameter search to sidebar of VE TemplateDialog
Bug: T272481
Change-Id: If044e5d134f1b24f939c4786949e6ca34fb79e1e
2021-07-16 09:48:29 +00:00
jenkins-bot 974db3940f Merge "Show ellipsis when sidebar parameter names are too long" 2021-07-16 08:28:13 +00:00
Andrew Kostka 9ffdd51f04 Show ellipsis when sidebar parameter names are too long
Bug: T285044
Change-Id: I6bf53ec4d6d45888ed7e9ba1d67848e41224de63
2021-07-15 17:35:42 +02:00
jenkins-bot a8ff5f2b41 Merge "Remove trash icons from the content view" 2021-07-15 15:21:57 +00:00
Thiemo Kreuz 8ab2ec25ea Fix template editor showing more than one new sidebar
Bug: T274544
Bug: T286715
Change-Id: I9fe8b53a73b1862eca2d99afb02aa3d532d61918
2021-07-15 15:17:44 +00:00
Andrew Kostka f02c48ea52 Add a message next to undocumented parameters
Bug: T274550
Change-Id: I1af71150239ebc9966cc22e7d28883fbac99fdf1
2021-07-15 14:47:21 +02:00
Andrew Kostka 01d8a8c7a4 Remove trash icons from the content view
Bug: T275761
Change-Id: I8d2c1b8ebdc2e20779d0207b1a2ebe6ce36c54e7
2021-07-15 12:20:45 +02:00
Thiemo Kreuz 766b220f5a Finishing touches to new template editor sidebar
In detail:
* Allow clicks on all elements in the new sidebar. This should
  focus the corresponding element on the right.
* Make all elements in the new sidebar tabbable.
* Fix MWTransclusionOutlineTemplateWidget.createCheckbox() to
  not need a temporary param object any more.
* Rewrite more code in MWTransclusionOutlineTemplateWidget to
  be shorter and easier to read.
* Fix MWTemplateModel.addParameter() to not do way to much
  stuff when a parameter already exists.
* Update code documentation.
* Use more specific, less ambiguous variable and method names.

Bug: T274544
Change-Id: Iaf6f7d1b0f7bf0e9b03eb86d01f3eceadece6fe4
2021-07-15 08:40:35 +00:00
Thiemo Kreuz ff9f8a9e2d Focus template editor elements on click in the new sidebar
Clicks on the left side now focus elements on the right
side.

This patch also simplifies the …ContainerWidget constructor.
The config parameter should only be used for "OOUI things"
that are needed by subclasses and mixins. But the parameters
we have here are not "UI things".

Passing them as config passes them to classes where we don't
know what they do with it. What probably happens is that
some class keeps a reference to the entire config object,
which doesn't have a benefit and possibly blocks garbage
collection.

Bug: T274544
Change-Id: I0c0e4a1ba59dcb43141338ffe939c9c6783e000d
2021-07-15 08:40:28 +00:00
Thiemo Kreuz 198c5dba77 Make button to add undocumented template parameter work
Thanks to the widget now being an actual ButtonElement.

Bug: T274544
Change-Id: I1b0ef28b0aa115a027a07f3ae53c583598483e96
2021-07-15 08:40:20 +00:00
Thiemo Kreuz eb1f1e28a3 Make new template editor sidebar items actual ButtonElements
Actually reusing this OOUI mixin gives us a lot of well
developed functionality we need anyway. Most notably proper
event management, e.g. click events.

The number of CSS properties we need to override is managable,
I would argue. Let's see:
* Our buttons are not inline-elements, but should use the full
  width.
* No focus-border left and right for the same reason.
* We want much more inner padding.
* We want a stronger hover effect.
* We need to fine-tune the position of the icon. This is
  because of the inner padding.
* Need to get rid of a negative margin that's only relevant
  for inline-buttons.

I currently feel like the benefits are worth living with
slightly more brittle code. Note that we can undo this change
any time because all this is well encapsulated in this new
class.

Bug: T274544
Change-Id: I33f275a958964d49e803e56bf74a6fa961093da1
2021-07-14 13:31:40 +02:00
Thiemo Kreuz 170ca9d58a Reuse generic button widget for elements in the new sidebar
This introduces another generic "button-like" class that can
be reused in multiple places in the new sidebar. The main
change in this patch is the "add more information" button
which is now an instance of this new class as well.

This patch also simplifies over-complicated setup code in
related widgets.

Bug: T274544
Change-Id: I0cfe7675d02fdd5c5dc8d9198bb3f4aec9abf397
2021-07-13 17:23:27 +00:00
Thiemo Kreuz 28049425ec Various design tweaks to the new template dialog sidebar
Still far from being finished, but much closer to the mocks
already.

Bug: T274544
Change-Id: I1feee06e43a4b9c10a2d9443b6d816595bead64d
2021-07-13 13:00:37 +00:00
Thiemo Kreuz 31904688df Update new sidebar when moving template parts up/down
The new sidebar now updates accordingly when elements are
moved around.

Bug: T274544
Change-Id: Ic6bc3484c54523aa4edc6b48a843c47059569061
2021-07-13 10:18:20 +02:00
Thiemo Kreuz 226e2657ef More robust debug container for new template editor sitebar
Before, the new sidebar was hacked in a place where it confused
the BookletLayout logic. This became visible when using the
up/down buttons to move elements in the sidebar.

This new container wraps the new and the old sidebar. It also
uses a temporary color to make it easier to see where one ends
and the other starts.

Bug: T274544
Change-Id: I4e5b40b1d1556886fc85cff9e926a02e4888f032
2021-07-13 09:11:57 +02:00
jenkins-bot 5bd9eff8ea Merge "Full add/delete support for all 3 types in template sidebar" 2021-07-12 14:04:32 +00:00
jenkins-bot f92d85604c Merge "Add template outline widgets for all content types" 2021-07-12 10:52:19 +00:00
Thiemo Kreuz 5edf7dac18 Full add/delete support for all 3 types in template sidebar
From now on you can remove and add all 3 types of content from
the new sidebar.

Bug: T274544
Change-Id: If1e04ff503d72cbe9ea07c8036c9e3a0547cc0d0
2021-07-12 10:15:14 +00:00
jenkins-bot af8c144091 Merge "Move template outline item header into the base class" 2021-07-12 09:24:38 +00:00
Thiemo Kreuz a1384f34f3 Add template outline widgets for all content types
The two new widgets are pretty trivial now, thanks to the base
class.

Note there is still no code to delete the widgets. That's also
why you will always see a placeholder widget at the top. This
will be fixed with the next patches.

This patch also renames most of the "…TemplateOutline…" classes
to "…TransclusionOutline…" The reason is that these widgets are
not for a single template, but part of the container widget for
a more complex transclusion (i.e. a sequence of multiple
templates and wikitext snippets).

Bug: T274544
Change-Id: If4219b0b8ad4d1969ab1ec5ec4db0728811bab35
2021-07-12 09:19:06 +02:00
Thiemo Kreuz 2854be165e Move template outline item header into the base class
The icon and the name of the template are now created by the
base class. This is meant to be reused for other elements
that are not templates.

Bug: T274544
Change-Id: I76bbc0e8c0420e9c6357d093d5f5e1651a0c2719
2021-07-12 09:17:30 +02:00
Thiemo Kreuz fae6118071 Document and use mw.Api parameter defaults
Reasoning:
* format=json must be the default. Nothing else makes sense in
  the context of this code. This should not be a surprise.
* formatversion=2 is only a default when the custom
  getContentApi() is used, but not when mw.Api is used. One
  might argue that it's safer to always specify formatversion=2.
  However, this is not done in other places in this codebase.
  It should never be done or always.
* I find it confusing when the action=… is missing. Let's not
  rely on this default.

Change-Id: I6ca29f76bffc0849103c5bcff4aaf28fcaaa4c52
2021-07-12 09:13:59 +02:00
jenkins-bot 1569ab0a28 Merge "Remove empty container widgets that don't do anything" 2021-07-09 16:14:25 +00:00
jenkins-bot 0f1bef39b4 Merge "Abstract base class for top-level items in template editor" 2021-07-09 16:09:42 +00:00
jenkins-bot 48f711cd5c Merge "Rename CSS classes in new template dialog sidebar code" 2021-07-09 16:09:40 +00:00
Thiemo Kreuz 4018439348 Remove empty container widgets that don't do anything
This code doesn't do anything but adding an empty <div> to
something that is already a <div>. It doesn't even have a
class name, i.e. it's not referenced from anywhere. We can
add such containers back any time when it turns out we
actually need them.

Bug: T274544
Change-Id: I62546cc7939364db31f37b9de0c035974554544b
2021-07-09 15:57:11 +02:00
Thiemo Kreuz cfe2dadc93 Abstract base class for top-level items in template editor
This base class will be used to style the 3 types of top-level
items in the sidebar the same way, without the need to
duplicate code or styles.

Bug: T274544
Change-Id: I1a62ff610728d7150dea1717316ef20f6882783a
2021-07-09 15:48:08 +02:00
Thiemo Kreuz 1849924eff Rename CSS classes in new template dialog sidebar code
This matches the existing naming scheme better. I also plan to
re-use this class for other types that are not templates.
That's why the name is the more generic "transclusion" now.

This patch also removes a `padding: 2px` that's not that
helpful. We will need paddings later, but need to choose them
much more carfully.

Bug: T274544
Change-Id: I6f0f630da2230b023b3fb065e5ad86d8211bb7b3
2021-07-09 15:29:29 +02:00
Thiemo Kreuz 12dca65912 Delete last template search result, not a random one
Because the API uses a generator, the search results are ordered
alphabetically. The actual search result ranking is in a .index
field. This code accidentially deleted the alphabetically lowest
template instead of the least relevant one.

Change-Id: I79de024feb569e9f06bedab908a6509a4d4fa99b
2021-07-08 15:33:42 +02:00
Thiemo Kreuz ba1718ea11 Always add 1 prefixsearch match when searching for templates
We do this additional prefixsearch anyway. What we did before
was ignoring the result when it was not a 100% exact match.
Instead we can always add this 1 prefixsearch result when it
was not already part of the CirrusSearch result set.

This won't happen often. Usually the 1st prefixsearch result
was already part of the CirrusSearch result set anyway. But
if it wasn't, that's a serious issue for expert users that
expect the search to behave similar to the suggester at the
top of the MediaWiki interface (which is also a prefixsearch).

Change-Id: I959d2b058a3d64596a8cfbe5476ab351e40f8760
2021-07-08 11:15:34 +02:00
jenkins-bot 5c738aa74f Merge "Fixes and updates to template related JSDoc tags" 2021-07-08 08:24:44 +00:00
jenkins-bot c0b7783fc3 Merge "Change style for adding an "Unknown field" in the parameter search" 2021-07-08 08:20:59 +00:00
jenkins-bot 06f63bdc10 Merge "Remove unnecessary code from template related classes" 2021-07-08 07:39:14 +00:00
jenkins-bot 275fb5a2d6 Merge "Remove duplicate code from ve.ui.MWParameterSearchWidget" 2021-07-08 07:39:05 +00:00
Svantje Lilienthal ee98622076 Change style for adding an "Unknown field" in the parameter search
Bug: T286236
Change-Id: Ibb3df034c9b423dd4130d8242bd7bf0dc742ee2f
2021-07-08 09:20:25 +02:00
Thiemo Kreuz d68e110e67 Fixes and updates to template related JSDoc tags
Some details:
* The config is not optional in these cases.
* This patch continues to remove some comments that don't add
  any information but just repeat what the code already says.

Change-Id: I5c27cd01ad80709bb583256821d65c6b65b74b05
2021-07-08 06:36:56 +00:00
jenkins-bot 5160c4d520 Merge "Allow text selection on the "More"/"Less" button fade effect" 2021-07-07 09:47:45 +00:00
Thiemo Kreuz 1c98f4cce0 Remove unnecessary code from template related classes
For example, checking if a parameter is required works just fine
for unknown parameters. They are never required. Since I16708b0
we don't need to guard the spec related methods any more.

Change-Id: Id90e4cb810dc9faca3b26f122a534f276ee31709
2021-07-07 10:18:41 +02:00
Thiemo Kreuz f6e5866deb Allow text selection on the "More"/"Less" button fade effect
It's good practice to make transparent elements transparent
for mouse clicks as well, i.e. make it possible to select text
behind the fade effect.

Bug: T283943
Bug: T286235
Change-Id: Ib5022a74c70e4b7cb5e2a0faad20bd9abcc0da36
2021-07-07 07:48:28 +00:00
Thiemo Kreuz f04feb043f Remove duplicate code from ve.ui.MWParameterSearchWidget
Introduced in 2 separate patches by the same author. This
patch removes the line that was introduced last.

Change-Id: I77575f7afe0f9276c7b54ee44d828e7ccb87c978
2021-07-07 09:34:50 +02:00
Thiemo Kreuz 137be4438f Remove unused .getWikitext() methods from transclusion classes
These methods are special in so far that they create *minimal*
wikitext where optional whitespace is not preserved. I tried
to rename the methods to reflect this, but could not find a
caller. What's used instead are the .serialize() methods.

Bug: T284895
Change-Id: Iedaa5b7efa9675151cc0553854d8aef3f9a46cbb
2021-07-06 10:58:11 +02:00
jenkins-bot 9e6387176b Merge "Add @private/@protected documentation to template dialog code" 2021-07-06 08:41:55 +00:00
jenkins-bot a19bc2960f Merge "Keep undocumented parameters in the sidebar when unchecked" 2021-07-05 09:06:32 +00:00
jenkins-bot 8718ac8ece Merge "Fix parameter ordering when using aliases" 2021-07-05 08:33:01 +00:00
Andrew Kostka a867469b7b Keep undocumented parameters in the sidebar when unchecked
Bug: T274550
Change-Id: I010006cdbe5ce5cb79cc4248840d74cb992ff834
2021-07-05 10:17:55 +02:00
Andrew Kostka 6af13f0d42 Fix parameter ordering when using aliases
If a known parameter is present using one of it's aliases, then
only the aliased name should be shown to the user. This patch,
therefore, resolves the issue of the same parameter being added
to the sidebar twice.

When adding a parameter that is aliased, it will receive the same
position as the non-aliased parameter it is replacing.

Bug: T274545
Change-Id: If4e58c941fd0f0e690d3603935f5a5d3f9938163
2021-07-05 08:14:42 +00:00
Thiemo Kreuz 6757a1bfa9 Character = is not allowed in template parameter names
It's allowed in values, but not in parameter names. The moment
a parameter name contains an `=` the parameter name will be cut
off at this point, and what's behind the `=` will become part
of the value.

You can test this on any live wiki. Open VisualEditor. Edit any
template. Add a parameter with a name like `a=` and some value.
Switch to wikitext mode and back. Edit the template. The `=` is
now part of the value.

Bug: T98065
Change-Id: I5e00e8fac987471243605816b041d3638927ac3b
2021-07-04 14:03:21 +02:00
Thiemo Kreuz fecded9f70 Fix parameter search being to relaxed on unknown params
When what you type is a partial match, you can't add it as an
unknown parameter, even if that would be the correct action. The
reason for this unexpected edge-case is a mistake in the code
where a variable called "exactMatch" is set when a *partial*
"nameMatch" was found.

Bug: T285940
Change-Id: I6d12e2d7251a19d7d5f8be544c3c32a3ac14fcf0
2021-07-01 20:09:51 +02:00
Thiemo Kreuz 99523b855c Use and document the term "known parameter" in template code
The so called "spec" class keeps track of parameters that have
been used before, no matter if documented via TemplateData or
not. Removed parameters are still "known" (i.e. have been seen
before).

This feature allows to easily find previously used parameters
names when an undocumented parameter was removed and the user
tries to add it again.

Bug: T285483
Change-Id: Ia1555eea87cd99e7a3f386f4279ec5a80fb98a79
2021-07-01 12:03:38 +00:00
jenkins-bot 7afb7981d1 Merge "Rewrite MWTemplateDialog.setApplicableStatus for readability" 2021-07-01 11:56:30 +00:00
jenkins-bot 5028f4eaf3 Merge "Remove unused "insert" action from MWTemplateDialog" 2021-07-01 11:52:21 +00:00
Thiemo Kreuz f1a66c17e4 Rewrite MWTemplateDialog.setApplicableStatus for readability
I rearranged this piece of code like a dozen times before I
finally understood what it actually does. This should be much
more obvious now.

The idea is:
* If no edit was made the button is always disabled.
* You can save pretty much everything, except when the
  transclusion still starts with a placeholder.
* You can also click the done button when the dialog is empty.
  This feels a bit odd, but was like this before. I think this
  codepath is unreachable. But it probably doesn't hurt to
  keep it.

Bug: T284895
Change-Id: Ic483201b64fd64f414c5b1ec4c44198b8eadb9f2
2021-07-01 11:20:50 +02:00
Thiemo Kreuz 55a49195ba Add @private/@protected documentation to template dialog code
These tags don't do much, if anything. But they provide a hint
in which scope a method might be used.

Bug: T284895
Change-Id: I0b4bdd416ee89d26961c4ded4d8bbace8c57da76
2021-07-01 09:36:00 +02:00
Thiemo Kreuz db531ddba5 Add missing search result limitation to template search
Bug: T274903
Change-Id: If57d28f7796d69825a25fa9b67bcd5c127c9e3b7
2021-07-01 09:33:52 +02:00
jenkins-bot f9cb2e3519 Merge "Don't create a checkbox for ve.ui.MWParameterPlaceholderPage" 2021-06-30 14:31:59 +00:00
jenkins-bot 0e3bf54e3f Merge "Add documentation to ve.ui.MWTemplateOutlineTemplateWidget" 2021-06-30 14:31:57 +00:00
jenkins-bot 217793ebd1 Merge "Use the parameter's label in the sidebar" 2021-06-30 14:31:55 +00:00
Thiemo Kreuz bc4aeed86e Avoid the term "canonical order" in template related docs
While the term "canonical" is not wrong, I find it still
somewhat ambiguous.

1. "Canonical" could mean different things. E.g. is the order
of parameters as they appear in the article's wikitext the
"canonical" one? It's possible to argue like this, esp. if a
template doesn't have TemplateData documentation. In this case
the only order known is the one from the wikitext.

2. "Canonical" sounds like the parameters must be reordered.
But this should never happen. Not having dirty diffs is more
important than having the parameters in a specific order.

Bug: T285483
Change-Id: I23658d37fea50b727667677ac6a49066673b2135
2021-06-30 09:38:28 +02:00
Andrew Kostka 0c141e2581 Add documentation to ve.ui.MWTemplateOutlineTemplateWidget
Change-Id: Ibc0b39fd417fa7eef5cf1cd52b9769c6514ce85d
2021-06-29 21:50:41 +02:00
Andrew Kostka 30917c8ba3 Don't create a checkbox for ve.ui.MWParameterPlaceholderPage
Change-Id: Ia02e86e026e618a4ace31306fe50f003c49080ae
2021-06-29 21:21:19 +02:00
Andrew Kostka 526a49672e Use the parameter's label in the sidebar
Change-Id: Ic2c00f51088d67453bb50ff0fa15f22c9fbd8e56
2021-06-29 20:44:17 +02:00
jenkins-bot 7426139a41 Merge "Fix possibly uninitialized variable in template dialog" 2021-06-29 13:47:06 +00:00
jenkins-bot 802be178e3 Merge "Extract MWTemplateTitleInputWidget.addExactMatch into a method" 2021-06-29 13:47:03 +00:00
jenkins-bot 17cc6831bc Merge "Revert "Extract "show all" to placeholder class"" 2021-06-29 09:55:53 +00:00
jenkins-bot 73fe8f7a38 Merge "Add icons to the show/hide button in the ExpandableContentElement" 2021-06-29 08:55:46 +00:00
jenkins-bot b3d23f59b3 Merge "Fix the show/hide button for the ExpandableContentElement on mobile" 2021-06-29 08:49:41 +00:00
Andrew Kostka 2c0f44df83 Add icons to the show/hide button in the ExpandableContentElement
Bug: T282996
Change-Id: I2013c00696af2320d871e12c6d523f0da1dcb277
2021-06-29 08:33:22 +00:00
jenkins-bot 9fcba8bac8 Merge "Minor documentation updates in template related classes" 2021-06-28 14:46:11 +00:00
Andrew Kostka e5cbe69187 Fix the show/hide button for the ExpandableContentElement on mobile
Bug: T283943
Change-Id: I23ae2350dfb9100ed6604fc93628c616c41ab2e1
2021-06-28 15:18:38 +02:00
Thiemo Kreuz (WMDE) e6d3828429 Revert "Extract "show all" to placeholder class"
This reverts commit 950a5300dc.

Reason for revert: This broke several workflows. The reason is
that MWParameterPlaceholderPage & MWParameterSearchWidget both
hold references to the MWTemplateModel. This model is not
always the same. The dialog might be the same when a template
is edited multiple times. But the model might be a new one.
From this point on the MWParameterSearchWidget pulls data from
an outdated model.

Bug: T284636
Bug: T285571
Change-Id: I7b9ea8cab8f17705ec8020f07e3732da6ba0e73c
2021-06-28 14:04:12 +02:00
jenkins-bot 8da60b7864 Merge "Hotfix for broken "Extract show all to placeholder class"" 2021-06-28 11:24:50 +00:00
Thiemo Kreuz 6b346442ad Hotfix for broken "Extract show all to placeholder class"
This does not revert commit 950a5300 but applies the most
minimal hotfix I could come up with.

The reason for the breakage is that MWParameterPlaceholderPage
& MWParameterSearchWidget both hold references to the
MWTemplateModel. This model is not always the same. The dialog
might be the same when a template is edited multiple times.
But the model might be a new one. From this point on the
MWParameterSearchWidget pulls data from an outdated model.

This extra check compares this model reference and creates a
new widget when it changed.

Bug: T284636
Bug: T285571
Change-Id: Ib3eca52bbff90ffbf56a257e3984adcbe02b310b
2021-06-27 18:29:23 +02:00
Thiemo Kreuz b3bede3ba0 Extract MWTemplateTitleInputWidget.addExactMatch into a method
Same as in TemplateWizard, see I128bc00.

Bug: T274903
Change-Id: I8693b85625a8640e44c213300d7c6862430bec47
2021-06-25 17:07:32 +02:00
Thiemo Kreuz 2966b69609 Fix possibly uninitialized variable in template dialog
There is a codepath where `modelPromise` is undefined and
calling `modelPromise.then()` fails. This codepath implies
that the dialog is empty and there is nothing to update. We
can just close the dialog then.

I found this while debugging the actions in this dialog.
This happens when the dialog is empty (except for a
placeholder) but you submit it anyway. This is typically
not possible as the button is supposed to be disabled.
Still I think it's a good idea to make this code less
fragile.

The relevant code was introduced in Ibc2fc66 (2016).

Change-Id: Ia6b723548456c211b944a2320949bfc23b0afa16
2021-06-25 16:49:30 +02:00
Thiemo Kreuz 26b0322ff0 Minor documentation updates in template related classes
Bug: T285483
Change-Id: I1cf17d7bfb01326b93bc781b2501a492d50f0aab
2021-06-25 16:46:59 +02:00
Thiemo Kreuz 2529d33f51 Better name for spec.isParameterKnown() method
This reflects much better how this method is meant to behave.

Note I will continue to remove documentation that doesn't
explain anything in addition to what the code already says.

Bug: T285483
Change-Id: I81fa8a5d9d0752f3aeac4015c9a27b50e054d4df
2021-06-24 18:05:14 +02:00
jenkins-bot ec2c42932d Merge "Label for each template in sidebar" 2021-06-24 12:34:52 +00:00
jenkins-bot acc41f5ed6 Merge "Wiring for adding and removing parameters" 2021-06-24 10:55:46 +00:00
Adam Wight cc95ed8ef3 Label for each template in sidebar
Bug: T274545
Change-Id: I1731373a63f96eda0e43fe042746eaed40bfe6fb
2021-06-24 12:50:05 +02:00
jenkins-bot f1534d9e51 Merge ""Add more information" should be a button instead of a checkbox" 2021-06-24 10:39:05 +00:00
Andrew Kostka 5e2cd392c7 Wiring for adding and removing parameters
Bug: T274545
Change-Id: I0514a93f4313914a654e5f24cf78950cb4893409
2021-06-24 12:31:43 +02:00
Andrew Kostka 47c7d4939f "Add more information" should be a button instead of a checkbox
Bug: T274545
Bug: T272487
Change-Id: Icc4d461d763290b0bc07ec8dbaa98c625fc9e068
2021-06-24 09:55:17 +00:00
jenkins-bot f06856b2d9 Merge "Remove extraneous ve.ui.MWTemplateOutlineCheckboxListWidget.js" 2021-06-24 09:37:34 +00:00
jenkins-bot 118ae98a2a Merge "Wire model changes into new template sidebar" 2021-06-24 09:31:46 +00:00
Andrew Kostka 6a890c31bd Remove extraneous ve.ui.MWTemplateOutlineCheckboxListWidget.js
Bug: T274545
Change-Id: I327ee06aff19fd2d3841e4e4a2d09a24c47e4d89
2021-06-24 11:12:12 +02:00
Adam Wight 64c5b093cc Wire model changes into new template sidebar
Only partially wired.

Bug: T274545
Change-Id: I961ffbdd82829b18c08a7c33759a05427103fa8b
2021-06-24 11:09:39 +02:00
jenkins-bot 2cbb32302f Merge "Inline many var declarations in the code below" 2021-06-23 09:24:05 +00:00
Thiemo Kreuz 4367235dcc Inline many var declarations in the code below
This makes the code more readable and easier to reason about.
The ESLint rule responsible for this code style was removed
just recently.

Notes:
* I focus on classes that are relevant for what the WMDE team
  does right now.
* I merge multiple `var` keywords only when the variables are
  strongly connected.
* Caching the length in a for loop makes the code hard to
  read, but not really faster when it's a trivial property
  access anyway.

Bug: T284895
Change-Id: I621fed61d894a83dc95f58129bbe679d82b0f5f5
2021-06-23 09:02:24 +00:00
Thiemo Kreuz eedef37c78 Remove tooltip from template dialog title
This reverts parts of I678bb24.

Brief history of this code:
2014: The dialog was designed to dynamically change the title.
      There was never a tooltip.
2016: A change in OOjs changed the behavior in VE. Now the initial
      title shows up as a tooltip. It never updates because VE
      does not know about this. The tooltip does not match the
      visible title.
2021: We revert to the behavior from 2014. We achieve this by
      bypassing the codepath that creates the tooltip. This is why
      ….title.setLabel() is used instead of ….static.title.

Bug: T276568
Change-Id: I346a904881c3a63186d6a80afdaf717688bab42a
2021-06-22 16:12:52 +02:00
Adam Wight 1100db9665 Revert "Make template dialog header tooltip match title"
This reverts commit 7d05257059.

Change-Id: I16395c1118a5a1afe6c0f9022e478f38a2ac3755
2021-06-22 15:37:09 +02:00
Adam Wight 7d05257059 Make template dialog header tooltip match title
The tooltip is useful for languages where the dialog title might get
truncated.  This patch makes sure the tooltip is always the same as
the visible label.

Bug: T276568
Change-Id: I678bb243bb5ac6d1c516ee4e146f2db9ffd5afcf
2021-06-22 13:16:17 +02:00
jenkins-bot 3fbd568b07 Merge "ve.ui.MWSaveDialog: Tweak margins of checkboxes" 2021-06-21 22:30:23 +00:00
jenkins-bot 126eb076c1 Merge "Only add asterisk after word characters in improved template search" 2021-06-21 19:29:30 +00:00
WMDE-Fisch c4f59132ae Only add asterisk after word characters in improved template search
This will avoid that the search breaks in edge cases where symbols
are used.

Including a fallback for ES5 browsers. The fallback should cover
almost all cases. Worst case would be not adding the asterisk even
though it might be valid.

Bug: T284554
Change-Id: Ie4aee0b77492b7a73bc251a8723a206dbd641600
2021-06-21 21:07:28 +02:00
Bartosz Dziewoński b05fb5f7a2 ve.ui.MWMediaDialog: mediaUploadBooklet may be undefined
Follow-up to 0f5cd19e08.

Bug: T279217
Change-Id: I88cc16e355d803625fcb477ac2d8d1f352b1698a
2021-06-21 16:46:57 +02:00
Bartosz Dziewoński 5badd4fcd4 ve.ui.MWBackTool: Avoid using global ve.init.target
We have to move the activation logic from a ve.ui.Command to the
ve.ui.Tool, as the Command is unable to refer to the Target.

Previous attempt: 4984c5ffbb
reverted in fb32aa4978.

Bug: T279313
Change-Id: I3cb74aa5123b67a6c63b8e07ea7f93a6d4a07d4f
2021-06-21 16:33:33 +02:00
jenkins-bot 06ea3f84f8 Merge "Rewrite MWTransclusionDialog methods for readability" 2021-06-21 10:41:39 +00:00
WMDE-Fisch 407ff95597 Rename OutlineParameterCheckboxWidget to OutlineParameterCheckboxLayout
This not really just a checkbox widget anymore it inherits from
FieldLayout and became something more in that direction.

Let's use a mixture of these things to make it a bit clearer.

See also comment in Ie81b84be288553343017c4aaf8691c4e266995f5

Change-Id: Iff1746a8e5e94b56eb6c27465405aaf6b74c2310
2021-06-21 09:08:54 +02:00
Thiemo Kreuz c6f2683dd8 Rewrite MWTransclusionDialog methods for readability
Most notably:
* Introduce variable names that explain much better what's
  going on.
* Reduce nesting.

Bug: T284895
Change-Id: I793677d8107abb6354f9e19d79c4879a41c4bd93
2021-06-18 16:09:52 +02:00
WMDE-Fisch 0e04315c66 Add missing newline in JSDoc
Change-Id: I88f5814e3691f4787a04ac8c882a4c836d786bd7
2021-06-18 14:13:31 +02:00
Thiemo Kreuz c135f10f72 Remove unused "insert" action from MWTemplateDialog
This action was removed via Ib744b89 in 2019, see
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/VisualEditor/+/491537/4/modules/ve-mw/ui/dialogs/ve.ui.MWTemplateDialog.js
Note the messages that are removed in this patch:
* …-action-insert was used for the "insert" action.
* …-action-apply was used for an "apply" action.
* …-action-cancel doesn't mention an action. Internally,
  the cancel action is "".

Since Ibd740ad the actions are registered in the
FragmentDialog superclass, see
https://gerrit.wikimedia.org/r/c/VisualEditor/VisualEditor/+/491536/2/src/ui/dialogs/ve.ui.FragmentDialog.js
Note the messages. Cancel is unchanged. …-action-insert and
…-action-apply are still there, but both linked to the same
"done" action. The "apply" and "insert" actions are gone.
I.e. they are merged into a single "done" action, represented
by a single button that changes the label from "Insert" to
"Apply changes" when needed.

On top of that,
MWTransclusionDialog.updateActionSet() replaces "Apply
changes" with "Save".

Note: Other dialogs also mention an "insert" action. I didn't
look at these. These are not in the focus of our team's
current project.

Bug: T284895
Change-Id: I1d35ada3b5b2049ed20c2d940a1c065b704c978d
2021-06-18 13:44:35 +02:00
jenkins-bot 853fb2710f Merge "Add missing word wrapping to template/param descriptions" 2021-06-18 09:23:32 +00:00
jenkins-bot 595b3a1caf Merge "Better variable names for the template dialog's "single" mode" 2021-06-18 08:34:54 +00:00
Thiemo Kreuz 2a1defc26f Remove unused .onAddParameterBeforeLoad() method
https://codesearch.wmcloud.org/search/?q=onAddParameterBeforeLoad&i=1

Bug: T284895
Change-Id: Ib521e05d8def8514ffe1b3c3822f0151ab10932e
2021-06-17 18:30:02 +02:00
Thiemo Kreuz bba592460d Better variable names for the template dialog's "single" mode
The "mode" button is the button that allows to expand and
collapse the dialog. It can't be collapsed when multiple
templates are edited. That's what these lines do,
disabling the button.

"Can expand" is not the correct question. It's always
possible to expand the dialog no matter what it contains.

Bug: T284895
Change-Id: I60f3060695c80bf5541ef2156be89b85a62bf91b
2021-06-17 18:24:17 +02:00
Adam Wight 988cda65dd Template dialog checkbox list
Introduces new widgets forming the backbone of the experimental
template dialog sidebar.

FIXME: `text-overflow: ellipsis` is not working yet, the container
styles need adjustment.

Bug: T274543
Change-Id: Ie81b84be288553343017c4aaf8691c4e266995f5
2021-06-17 08:47:47 +00:00
Thiemo Kreuz d9596c7f20 Add tooltip to "dismissible message" close button
Bug: T284742
Change-Id: Ibf0cb23c44d440e7a986bc85120f4ea0f844d999
2021-06-17 07:57:10 +02:00
Thiemo Kreuz 6da5b9269b Add missing word wrapping to template/param descriptions
Both the template description as well as the parameter
description (including default value and examples) typically
contain longer texts. These can contain longer words that
"explode" the design. This is trivial to avoid.

Note this is not meant to fix this issue in all places where
it can appear. For example, a long parameter name causes the
same issue. But:
* Technically, it's not that easy to fix.
* Even if, it's not obvious how to fix it. Cut off the
  container? Add ellipsis? Or wrap? How should the
  surounding stuff float then?
This is all left out because of this. Focus on what's
obvious.

Bug: T284890
Change-Id: Id6700af168f5ab5ddde97d3f5ae63829b65a3be5
2021-06-16 14:31:35 +02:00
jenkins-bot 6d101fb9d7 Merge "Extract "show all" to placeholder class" 2021-06-16 12:25:55 +00:00
jenkins-bot ab47e5ff9a Merge "Small code cleanups for the MWDismissibleMessageWidget" 2021-06-16 11:11:47 +00:00
jenkins-bot 2a74f10909 Merge "Dismissible feedback message for the template search" 2021-06-16 11:02:50 +00:00
Thiemo Kreuz feb902aba0 Small code cleanups for the MWDismissibleMessageWidget
* Re-focus the input field after closing the message.
* Store only the message key. That's all that's needed.
* Avoid a class property that's not needed.
* Use the config object instead of calling .setLabel() manually.

Bug: T284742
Change-Id: If8e8bb6460fa5aea8ddd46c2e27b5f08b7772896
2021-06-16 10:32:08 +02:00
Andrew Kostka 13d1c4d2ac Dismissible feedback message for the template search
Bug: T284742
Change-Id: I5dc32521b899c3c9d35d1bf77d346384e4cc87e6
2021-06-16 10:03:04 +02:00
jenkins-bot 09933c4905 Merge "Method for getting the currently selected element" 2021-06-16 07:22:28 +00:00
jenkins-bot 4c7f5ff805 Merge "Introduce a new class to encapsulate booklet inter-pane wiring" 2021-06-15 14:55:16 +00:00
Adam Wight 950a5300dc Extract "show all" to placeholder class
We can skip all the up and down message passing by persisting the
parameter placeholders for each template dialog.  If the parameter
list is expanded then the placeholder is deleted, on being created
again it will still have state.

To test: create a transclusion with two templates, each having many
parameters.  "Add more information" to add parameters, expand the
list by clicking "Show <num> more fields", then delete the parameter
placeholder using the trash cans.  Try different permutations to fool
the cache or collide with another template.

This is preparation for other template sidebar dialog work.

Bug: T284636
Change-Id: I23bdd38b173114c2a9afafc7465c4beb92d25869
2021-06-14 18:09:26 +02:00
Thiemo Kreuz c2017f74b2 Remove @param/@return docs that literally repeat the code
These don't add any knowledge but make the code harder to read
and maintain, and are an additional source of errors.

Change-Id: Ied57741a3f985e355adfddb4e75378d5c497faa9
2021-06-14 15:44:51 +02:00
jenkins-bot c29dc420e0 Merge "Fix object vs. array initialization in template search" 2021-06-14 13:25:30 +00:00
jenkins-bot 3f4cfb0fd8 Merge "Rename "value" to "wikitext" in TransclusionContent… classes" 2021-06-11 14:10:24 +00:00
WMDE-Fisch 09d98669df Rename expand and collapse button msg key names
These are currently more confusing than helpfull. Also applied
alphabetical order.

Change-Id: I4d48f7bc28b403142a5818d1c7a062872afc660d
2021-06-11 13:16:44 +02:00
jenkins-bot 7ca81e991b Merge "Use a new tab when linking to the project page for feedback" 2021-06-10 16:13:31 +00:00
jenkins-bot 76196703b2 Merge "Add message linking to project page for feedback" 2021-06-10 15:49:55 +00:00
Adam Wight a2daf5f6c6 Method for getting the currently selected element
Continue refactoring booklet pane access.

Bug: T284632
Change-Id: I866f8550d269d05b40eaddf8abb4ed5be03f902d
2021-06-10 15:32:07 +02:00
Adam Wight 44035a2384 Introduce a new class to encapsulate booklet inter-pane wiring
Begin to extract the wiring between a sidebar and the content pane of
the template dialog booklet layout.  Eventually, this helper class
will present a high-level interface like "addPart(id)" and will take
care of creating the outline item, content page, and connecting
events.

Start very simple, take over the "focus" method.

Bug: T284632
Change-Id: I7bc73cc4386b99d95941fc6ed88ab5bd998de014
2021-06-10 15:30:51 +02:00
Thiemo Kreuz df419335bb Rename MWTransclusionDialog.setMode() to toggleSidebar()
This reflects better what the method actually does. This patch
is a direct follow-up for the renames started in Ib029fd4.

Change-Id: Ie3e87139a5c2f5ac196e0fcc02fb897fadc99177
2021-06-10 14:05:40 +02:00
Andrew Kostka 0c310d03d3 Use a new tab when linking to the project page for feedback
Bug: T284560
Change-Id: I13e7461299ccd1a584e0f661a5506e7b52b8fe4b
2021-06-10 13:06:35 +02:00
WMDE-Fisch ecf317e0bd Fix message keys to show options in template dialog
The names of the messages keys are very confusing. The order was set
wrong during refactoring in Ib029fd48b393d2ab7d7cff6c842789e22989e944.

We should rename the keys in a follow up in sync with translatewiki.

Bug: T284649
Change-Id: I43794d80b7df7d00441cb583ca53bcab03999e65
2021-06-10 10:50:40 +00:00
Svantje Lilienthal 1a707e2aad Add message linking to project page for feedback
Bug: T284560
Change-Id: I8ac45db4844c8ccb65595e8bfe3fb68be9bb02ee
2021-06-10 11:28:42 +02:00
Thiemo Kreuz 190237ee28 Rename sidebar state to distinguish from multiple transclusion
This dramatically simplifies the "mode" flag in
MWTransclusionDialog. The main reason to touch this code is:
The flag appears like it will be "single" when the dialog
contains a single template, and "multiple" when there are
multiple templates. But this is not true.

What the flag really does is show/hide the sidebar. The sidebar
is needed to be able to create multi-part templates. But a
dialog that already contains multiple templates can be set to
"single" mode (i.e. the user can collapse the sidebar), and
vice versa.

This patch focuses on private details inside of this class, but
keeps the terminology of a "mode" in some places. E.g. the
messages are not renamed to not cause unnecessary trouble for
translators.

Change-Id: Ib029fd48b393d2ab7d7cff6c842789e22989e944
2021-06-09 09:44:08 +02:00
jenkins-bot 28256b3ca4 Merge "Support watchlist expiry" 2021-06-08 20:31:30 +00:00
Bartosz Dziewoński 53c59f35f6 ve.ui.MWSaveDialog: Tweak margins of checkboxes
Previously, if the checkboxes were shown on multiple lines (e.g. due
to a FlaggedRevs checkbox), there would be uneven margin at the
bottom. There was a special case to fix this only for the watchlist
expiry not-checkbox.

Change-Id: I006049cf23e6d42519bfa15b7ec30ea1bc5d08ac
2021-06-08 20:16:44 +00:00
Ed Sanders 857014fae9 Support watchlist expiry
Bug: T251348
Change-Id: I017a54784c758c5e97fb640721bd456adc0fbab5
2021-06-08 20:14:45 +00:00
jenkins-bot eca1ef82f2 Merge "Rewrite MWParameterPlaceholderPage.onParameterChoose() for readability" 2021-06-08 19:35:17 +00:00
jenkins-bot 2b0da3e338 Merge "Update template dialog title when multiple transclusions present" 2021-06-08 08:14:11 +00:00
Thiemo Kreuz 8d7c55aa71 Rename "value" to "wikitext" in TransclusionContent… classes
This class represents a raw wikitext snippet. There is also no
base class that would require us to follow a generic
getValue/setValue naming scheme.

Change-Id: I0891a2f6c0ae0121429a47c39221e99b9653e8e3
2021-06-08 09:27:47 +02:00
Thiemo Kreuz b81c18a017 Fix and update documentation in template dialog related code
Some of this was copy-pasted but forgotten.

Change-Id: I08c48e8e0a4cf17ec0888e4ce85427f4da825776
2021-06-07 23:47:23 +00:00
Thiemo Kreuz 7fdc560fb8 Rename "sequence" to "ordered parameter names"
There are 2 methods with the same name, but they are very
different. This makes it much easier to understand the
difference, I hope.

Change-Id: Ie1f049b2b14e1fe23f078e281ee797da29dfe3db
2021-06-07 23:24:17 +00:00
Thiemo Kreuz 6f72b7a391 Move initialization of optional elements into if block
This does have a few advantages:
* Less code is executed and less memory consumed when these
  elements are not needed.
* Code that belongs together is together.
* No local class properties are created when they are not
  needed in the code below.

This patch is kind of a proof of concept. It touches only a few
classes we currently actively work with. If this change is fine
we can change some of the other classes the same way.

Change-Id: I9f548765034f1f69799fff41aeb6c147ff28b82d
2021-06-07 20:53:34 +00:00
Andrew Kostka 67e48a26ef Update template dialog title when multiple transclusions present
Bug: T276568
Change-Id: I530a6cd8aea4f9fcafe7a03fc5050883f1f4b37c
2021-06-04 16:48:05 +02:00
jenkins-bot 69676950b3 Merge "Much longer descriptions of template dialog related classes" 2021-06-04 12:00:46 +00:00
Thiemo Kreuz e13b0dae48 Much longer descriptions of template dialog related classes
The idea is to possibly rename some of these classes, based on
these descriptions. But this should be done in later, separate
patches.

Change-Id: I7f9e5b2382711b434d6dd618489fa3ed8b7a46b4
2021-06-04 13:17:59 +02:00
jenkins-bot df5238cd11 Merge "Fix duplication bug in MWTemplateTitleInputWidget" 2021-06-04 10:50:39 +00:00
Thiemo Kreuz cdafea5663 Rewrite MWParameterPlaceholderPage.onParameterChoose() for readability
The main motivation for this patch is actually the comment. The
so called "spec" contains all parameters that are present in a
template, no matter if they are present in the TemplateData
documentation or not. This is critical here.

Change-Id: I5e1c79e3859a27562a9dea1d450cec196aa572ed
2021-06-04 12:49:53 +02:00
jenkins-bot bc0f405317 Merge "NWE: Always paste rich text as plain, and show context item to convert" 2021-06-03 18:15:59 +00:00
Adam Wight d4eee82701 Update template dialog titles: Insert/Edit
Toggle depending on whether the transclusion existed or is new.

Bug: T276568
Change-Id: Ib9b76cac7cd57245e8db2ef10879069a86a6269e
2021-06-02 12:36:38 +02:00
jenkins-bot 7fe5b6a433 Merge "Template dialog button title toggles between Insert/Edit" 2021-06-02 10:34:53 +00:00
Adam Wight c49478de60 Template dialog button title toggles between Insert/Edit
Depends on whether this is a new or existing template transclusion.

Split from Ib9b76cac7cd57245e8db2ef10879069a86a6269e

Bug: T276568
Change-Id: I4d22e32fef067b640e9a9389deffaace736c3405
2021-06-02 12:00:15 +02:00
jenkins-bot fa94c27a8d Merge "Change header titles in the template dialog" 2021-06-02 09:05:04 +00:00
WMDE-Fisch 58cf1b0344 Change header titles in the template dialog
Bug: T276568
Change-Id: I5da40032c5b83d04ae92e86372c445d7a28d0444
2021-06-02 08:48:07 +00:00
Thiemo Kreuz e97e325ac6 Guarantee exact match when searching for a template
When the existing search results don't contain an exact match
(see previous patch), perform an additional search for the
title. This uses OpenSearch. This is recommended in multiple
places and also used in the quick search field at the top of
MediaWiki.

Again, I came to the conclusion that an isolated unit test
would be complicated and not test much anyway. Better test
on-wiki.

Bug: T274903
Change-Id: Ib575248e089ff66814400202d224deff6369c772
2021-05-31 08:31:49 +00:00
Thiemo Kreuz 1a37edc53f Move exact matches to the top in template search
This code detects a few edge-cases:

1. When some search results are exact matches, make sure they
are always at the very top.

2. When the prefixsearch API is used, e.g. as a fallback,
redirects show up as a separate metadata structure outside of
the pages array. Consider these and stop if there is already
an exact match.

3. CirrusSearch returns redirects as part of the pages array.
When there is an exact match, make these redirects separate
options and add them to the top.

All of this is case-insensitive, on purpose. In case two
templates with different capitalization exist, we rely on
the backend to return both. The code introduced here is fine
with this.

Notes:
* This doesn't guarantee an exact match is always there. This
  requires an additional HTTP request and is done in the next
  patch.
* I tried to write unit tests for this, but gave up. The setup
  is complicated. An isolated unit test would not test much
  anyway. Better test this on-wiki.

Bug: T274903
Change-Id: I64e1b5633e7b878a4d0d23d66229ca87e69d0045
2021-05-31 09:54:39 +02:00
Thiemo Kreuz 621bca1df4 Show redirects as part of description in template search
These are the most minimal (and therefor most stable,
hopefully) hacks I could come up with so far.

Bug: T274903
Change-Id: I28ba414dd34aad756e29400eb656f0942291a923
2021-05-27 12:40:51 +02:00
WMDE-Fisch 98b6cc8bc2 Don't update backButton visibility if not set
Bug: T283511
Change-Id: Idb9668e45c6820cbb631d7a8aac34e03cf788802
2021-05-26 08:47:52 +02:00
jenkins-bot d06554c81e Merge "Ensure correct classes are added to surfaces" 2021-05-25 19:33:17 +00:00
jenkins-bot 539dc5ddba Merge "Remove unused 'inTargetWidget' config" 2021-05-24 21:11:53 +00:00
jenkins-bot 028658a4e1 Merge "Remove/fix a few small pieces of unused code" 2021-05-24 13:23:53 +00:00
Ed Sanders a71dd4f797 Ensure correct classes are added to surfaces
* Create getSurfaceClasses method.
* Pass surfaceClasses to target widgets.

This ensures that the 'content' class is passed to mobile
target widgets, and the 'mw-body-content' class is added
in a less hacky way.

Change-Id: Ibce6d1a1d0fda63cca354761f1b91f808858e95b
2021-05-23 20:04:28 +01:00
jenkins-bot 915a39064e Merge "Add star to template search term only when it's possible" 2021-05-21 14:31:23 +00:00
Thiemo Kreuz 8f045a7155 Remove/fix a few small pieces of unused code
I found these thanks to PHPStorm.

Change-Id: Ieb30a95debb58d3a454ac3c6f0546e5dbbe77ed4
2021-05-21 11:43:45 +00:00
Thiemo Kreuz b15455ec3d Fix duplication bug in MWTemplateTitleInputWidget
Template names sometimes show up twice when searching for a
template in the "Add a template" dialog.

This is a bit hard to test. The code responsible for this
is not in a single place. The feature is in the upstream
TitleWidget class. It's not broken. It makes sense to
provide e.g. "foo" and "Foo" as two separate options when
the user typed "foo", but the page is named "Foo". Both are
valid, and the feature allows the user to pick either.

But the VE widget does it's own normalization. Both entries
are normalized to "Foo". Both do the same. The additional
one is pointless.

You can try this on the actual enwiki: Open VE, insert a
template, search for "Template:nHLE".

Change-Id: I65e706c4d131a2f8c605d7979a02ea56f831bf03
2021-05-21 11:43:31 +00:00
Thiemo Kreuz b7043d6f24 Fix object vs. array initialization in template search
The "redirects" part in a prefixsearch query is always an
array, no matter if formatversion 1 or 2 is used.

The "pages" part is an object with formatversion 1, and an
array with formatversion 2.

As of now this always uses formatversion 1. This is
hard-coded in the upstream TitleWidget class.

Change-Id: I8cde8e104f8a288015da745db41016f6639b453b
2021-05-21 11:24:48 +02:00
Andrew Kostka 2fe6094099 Update the delete button's feature flag in the tranclusion context menu
Bug: T274263
Change-Id: If805ce9dfc44be34e07ec79179837f12898e626e
2021-05-21 09:24:14 +00:00
jenkins-bot 13f8d7db67 Merge "Remove obsolete vendor prefixed properties" 2021-05-18 01:25:08 +00:00
jenkins-bot a01b56bcf1 Merge "Invert template search result highlighting" 2021-05-17 12:30:49 +00:00
Adam Wight 9cac71676e Invert template search result highlighting
Bug: T275048
Change-Id: I50fc7407b4357e2cea9d5421d0de46a81d39c69d
2021-05-17 14:12:02 +02:00
Andrew Kostka b2aa35a90a Show a warning before resetting the transclusion dialog
Bug: T272355
Change-Id: Id97190a149ed7642eda82300eeee623e0debf528
2021-05-17 13:27:37 +02:00
Adam Wight f444610fbc Support isEmpty on transclusion dialog elements
Returns true if there is no meaningful user input yet.

Will be used in the next patch.

Bug: T272355
Change-Id: I4f88ce31662bbc46755f78d574c46b907581d438
2021-05-17 13:26:11 +02:00
Andrew Kostka b2c9b225bd Add back button to the transclusion dialog
Bug: T272354
Change-Id: I08c4a7db6239b485439bf547e3e8b4d6f7aeede8
2021-05-17 13:18:14 +02:00
Andrew Kostka e0bbf0b979 Show a delete button only in the transclusion context menu
Bug: T274263
Change-Id: Ifd81994c212cd03c1318c5fd762251ce828d9195
2021-05-17 12:26:37 +02:00
jenkins-bot 71a4ad4f8e Merge "Template dialog bigger size uses "larger" preset" 2021-05-14 11:27:44 +00:00
Ed Sanders ea9ea1d17f NWE: Always paste rich text as plain, and show context item to convert
Bug: T282789
Change-Id: I1bc32c9e16140190baef9bcb08d49b4b21896883
2021-05-13 15:56:19 +01:00
Adam Wight 9607cb3ed0 Template dialog bigger size uses "larger" preset
Rather than invent our own size, we'll reuse the "larger" format and
tweak the dialog height to 90%.

Bug: T273971
Change-Id: Ibef85c1912267b14d83396b089b81934751a8328
2021-05-12 11:31:40 +02:00
Thiemo Kreuz 333cadd5d4 Add star to template search term only when it's possible
Discussed in T274903#7077957. Note this might not be the
"perfect" solution. We are still experimenting, and this is
all hidden behind a feature flag. This is the change with the
most minimal impact. Actively trimming the input is another
solution, but with a bigger impact we might want to discuss
first.

Bug: T274903
Change-Id: I2ed06c04bb96c7b61bd7e87ad001e639ea6d06a2
2021-05-11 16:31:42 +00:00
WMDE-Fisch 42b557ff80 Use add template when adding a new transclusion part
We have two cases now that we want to cover here:
- Either we're inserting a new template and start a "fresh"
  transclusion, then we want to use "search" in the headlines
- Or we're adding a new template to an exsisting
  transclusion, then we want to use "add" in the headlines

Bug: T277028
Change-Id: I9fa294cf732598d58f848c75b353d2e1742eb4e8
2021-05-11 13:13:44 +02:00
Svantje Lilienthal 2665734b10 Renaming temporary config variable and splitting it from cirrus search lookup
This allows using the config variable independendly from the cirrus search extension.
This way it can be used for all subtickets of T271802.

Bug: T277028
Change-Id: I1b3bdda5fa6fbfe5c531c3b51c2c8e2a28ed1faf
2021-05-10 14:47:31 +02:00
Adam Wight f89301bedf Optional verbose template search
Renames "Add a template" to "Template Search" in most cases and
provides inline help for the workflow.

Bug: T277028
Change-Id: I3fee87cb89b5044e785596e71ef3f1a18f2694ce
2021-05-10 12:45:12 +00:00
Andrew Kostka c1d36072ea Add collapsible descriptions to the transclusion dialog
Bug: T273426
Change-Id: I793a66f5c5877451b70058e9388dd86b3fcaadd7
2021-05-10 11:18:17 +00:00
Adam Wight d5b5300fc1 Container as a local field
We're about to replace this jQuery element by a OOUI container, and
can take an initial step by reducing its lexical scope.

Change-Id: I4123c8d22c01040fc2f61180304254498b21f5fd
2021-05-04 16:25:45 +02:00
Adam Wight cd60daf072 Internally rename container for parameter docs
The name "description" conflicts with the TemplateData field name,
which is only one of several documentation fields.

Change-Id: I0942701204fe8499e8890740585b9a02c1d14c63
2021-05-04 16:24:07 +02:00
Adam Wight abdbb7d7ff Internally rename container for adding an undocumented paramter
The internal name "more" conflicts with new collapsible buttons.

TODO: looks like TemplatePage has an analogous field?

Change-Id: I10b24758316a6cc3fbd236c77daffa014fcdafc6
2021-05-04 16:23:53 +02:00
Volker E c468f529fc Remove obsolete vendor prefixed properties
With updated basic support, let's remove obsolete vendor prefixed
properties.

Bug: T278670
Change-Id: I13ceec520559745c877588200024ebce16944da1
2021-05-03 08:09:01 -07:00
Adam Wight ded8c40915 Optional feature makes the transclusion dialog bigger
When $wgVisualEditorTransclusionDialogInlineDescriptions is set to
true, the template dialog will use a larger format.

Bug: T273971
Change-Id: Iad3c3f4d65125c83e35414ce15f793f6a1b192ef
2021-05-03 16:53:27 +02:00
Thiemo Kreuz 6e08a27fc7 Use standard search API when searching for templates
Bug: T274903
Change-Id: I7de8f6cc55ab678ed741ae5ebbaad608b9a9b0db
2021-04-30 12:52:45 +00:00
Ed Sanders bc846108d1 Remove unused 'inTargetWidget' config
Change-Id: I7708acbe1592460973e4017b594299b6d31dc328
2021-04-29 15:48:17 +01:00
WMDE-Fisch e3197a82ff Increase space between fields when using inline descriptions
Bug: T273425
Change-Id: I3bf31622dbf794e1de1fa69b4fac68114c5689f7
2021-04-20 18:27:03 +02:00
WMDE-Fisch 2920c68adf Use verbose label for the example
Bug: T273425
Change-Id: Ia56aa35f98f31859e48781848b7481ebd5e2bd1c
2021-04-20 10:34:52 +00:00
Andrew Kostka 3c2db5fba9 Relocate parameter descriptions in the transclusion dialog
Bug: T273425
Change-Id: I2044b65ba88ae00e394fb84cb8e96a218995918a
2021-04-15 13:08:53 +02:00
Andrew Kostka 43c1ec5f42 Add filtering for the suggested values combo box
Bug: T271898
Change-Id: Ifb0deb117fbe40bd43c62d8be235a239a2b37f25
2021-04-14 14:11:50 +02:00
jenkins-bot 7ce573802a Merge "Add command to insert non-breaking space" 2021-04-13 19:05:43 +00:00
jenkins-bot 1e4de0e464 Merge "Add a combo box for suggested values in the transclusion dialog" 2021-04-09 10:40:33 +00:00
Andrew Kostka de2f5b3055 Add a combo box for suggested values in the transclusion dialog
Bug: T271898
Change-Id: Ic637eea2cac45f79234b62c787e1b76d68b61570
2021-04-08 16:10:22 +02:00
Bartosz Dziewoński fb32aa4978 Revert incorrect changes to ve.ui.MWBackCommand that made it stop working
This would would be correct if it was in a method of ve.ui.MWBackTool,
but this is actually a different class ve.ui.MWBackCommand (they are
both in the same file), which doesn't have a 'toolbar' property.

This partially reverts commit 4984c5ffbb
"Avoid using mw.ArticleTarget methods on global ve.init.target in tools".

Bug: T279613
Change-Id: Ia5e80e34cc5021295639cf18b3c324d2821aecf5
2021-04-08 15:37:46 +02:00
Bartosz Dziewoński 1abb5a5786 Add command to insert non-breaking space
Triggered by Ctrl+Shift+Space on PC.

On Mac, there is no trigger, we rely on the built-in OS shortcut.

Bug: T53045
Change-Id: I9630804c833d755910589022b0ca78208337d804
2021-04-08 00:09:35 +02:00
jenkins-bot 8fb68f49a1 Merge "Avoid using mw.ArticleTarget methods on global ve.init.target in tools" 2021-04-03 12:59:18 +00:00
Bartosz Dziewoński e04f78d48a Replace use of deprecated CSS class 'mw-ajax-loader'
Bug: T278894
Change-Id: I100bbe06da198f5175366c25b74daf3af986aae3
2021-03-31 20:46:58 +02:00
Bartosz Dziewoński 4984c5ffbb Avoid using mw.ArticleTarget methods on global ve.init.target in tools
Bug: T278399
Change-Id: I49475db2aa014ef4807ff55755c1b773e6aa0e6a
2021-03-30 15:27:54 +00:00
jenkins-bot 1864aa3928 Merge "Fix displaying error message when preview fails" 2021-03-20 17:36:20 +00:00
Bartosz Dziewoński 4cb6842f86 Fix displaying error message when preview fails
Follow-up to 5f1c68945d,
I didn't realize that showPreview() expected strings.

Bug: T277696
Change-Id: I78af5786d211f724728ed81e28170d2d6be6125b
2021-03-18 13:45:07 +01:00
Lucas Werkmeister b6a4e76d42 MWEditSummaryWidget: Don’t query for title
As far as I can tell, the code only uses the comment, nothing else.
Omitting the title probably won’t make the underlying database query any
cheaper, but it should at least save some network traffic.

Change-Id: Ideb66ce3a24fb4f42fe8fc22ba0e93d05724d8b6
2021-03-13 13:48:21 +01:00
Lucas Werkmeister 9d7ddcf066 MWEditSummaryWidget: Handle suppressed comments
Bug: T277368
Change-Id: I76887672a0e8b3a2047d1b1b47724f1ee513db23
2021-03-13 13:48:20 +01:00
Thiemo Kreuz d43f13f4f8 Reduce deep indention in MWTemplateTitleInputWidget
Change-Id: Ie1bd279753dba3b96b694660977b9f44f6f0834e
2021-03-02 14:34:41 +00:00
jenkins-bot cb21c4a158 Merge "Parse relative hrefs on image nodes like on regular links (try 2)" 2021-02-24 17:19:44 +00:00
Ed Sanders 87ab649e9d Add mw-content-container, mw-body classes to preview
Bug: T272751
Change-Id: I96440806ec9bce28cfb1b833c8fd913ba6770903
2021-02-18 21:33:36 +00:00
jenkins-bot b6033895f5 Merge "Add edit count bucket to VisualEditorTemplateDialogUse events" 2021-02-01 10:22:38 +00:00
Bartosz Dziewoński 185db3a157 Remove tabindex="-1" from "Add more information" button in template dialog
This makes it button keyboard-accessible, like the other buttons.

Bug: T179136
Change-Id: Ib2824176fe861e0ad8511f755521bee941119b29
2021-01-29 21:06:12 +01:00
Bartosz Dziewoński 91291d3e98 Parse relative hrefs on image nodes like on regular links (try 2)
Previous, reverted attempt: da9b6fffbd.
This attempt also includes 6037fefbe0,
and fixes minor conflicts with other changes.

* In normal images, parse relative 'href' attributes instead of
  expanding them to absolute. This resolves Parsoid generating
  |link= options for copy-pasted images (T193253).

  Keep them in the underscore-form to avoid causing dirty diffs like
  T237040 again. Unlike in the previous attempt, we don't need to be
  super-careful about the 'resource' attribute, thanks to the Parsoid
  changes in T108504.

* In gallery images stuff, prefix the 'resource' attribute with './',
  same as normal images do. This causes no functional changes, but it
  makes updating tests easier, and the consistency is probably good.

* Update test examples to also prefix 'resource' and relative 'href'
  attributes with './', like the real Parsoid does.

Bug: T193253
Change-Id: I91131728a87c9406bf069d46d3c94c9a8905a003
2021-01-27 11:53:15 +00:00
Adam Wight 9a1072a960 Add edit count bucket to VisualEditorTemplateDialogUse events
Bug: T269986
Change-Id: I68cc15d58a23149a6edc71cac229f6b29d33fd92
2021-01-21 13:17:03 +01:00
Bartosz Dziewoński 1af7c4da6a Fix typo in doc comment
Change-Id: I47d189564928dfd056d83e27b2ee6db23a98a83e
2021-01-21 00:15:13 +01:00
jenkins-bot 932a6a843f Merge "MWWikitextStringTransferHandler: Factor out Parsoid->DOM conversion" 2021-01-20 22:11:34 +00:00
Ed Sanders 38aeaf60f6 MWWikitextStringTransferHandler: Factor out Parsoid->DOM conversion
The conversion to a DM doc and subsequent cleanup is a generally
useful step that should be available as its own method.

Change-Id: Ia53c0a641b231bb81c25c011624357acf4dc42a3
2021-01-20 19:49:27 +00:00
Ed Sanders 1ec49384dc MWSaveDialog: Use MessageWidget (inline, warning) to show save dialog warnings
This is the same style that is recommended for form warnings.

Change-Id: I163f5180c66b9eb165a610184b153bb1da99caab
2021-01-20 19:41:17 +00:00
Ed Sanders e20decc77c MWSaveDialog: Remove wrap option from showMessage
This was used when we used to pass API errors to showMessage, but
is now unused by the two remaining users (missing edit summary, and
"press ctrl+enter to submit").

Change-Id: I8a6b4db78d4e451cf3ec85fcdfd8293328aaaa3c
2021-01-16 16:22:23 +00:00
Ed Sanders 598cb943de MWSaveDialog: Restore focus to edit summary widget after resize
Change-Id: I1fc1e43d947e9e8472a470bb5eabf67fda07be5d
2021-01-16 16:18:18 +00:00
Ed Sanders 443eaded40 Move newline-stripping filter into MWEditSummaryWidget
Edit summaries should always strip newlines, wherever
this widget is used.

Change-Id: I37177771fef831037067d6244fb27cba5e06528b
2021-01-16 16:16:49 +00:00
jenkins-bot 3bd0d4056a Merge "Instrument media search interactions in MWMediaDialog" 2021-01-11 20:23:40 +00:00
Ed Sanders 3cde92d60e AceEditorWidget: Fix toggleLineNumbers
Change-Id: I1a48e4351b2249b1ccf0af5c9b2fadd9a97d5f04
2021-01-03 00:23:08 +00:00
Arlo Breault 2402f430b4 Preserve inline media tag name in galleries across edits
Follow up to I37799076852fa6f062c9d85bcebb15998fb44a80

Hat tip to Bartosz for pointing this out.

Change-Id: Ic2968240a015bac2f831203e586535d2f9574963
2020-12-16 17:28:51 -05:00
WMDE-Fisch 2ce9934ab9 Add tracking of template usage
The names in the schema are roughly following what's
done in Schema:TemplateWizard. The information if
templates have TemplateData will be logged seperatly.

Bug: T259705
Change-Id: Iafa7256f675dbfd6a5a6de794061901780e3c55d
2020-12-16 12:56:45 +01:00
Eric Gardner a7c1e4e985 Instrument media search interactions in MWMediaDialog
Before we can integrate our new media search functionality into VE,
we need to add instrumentation that can measure the effectiveness of
the current media search tools to provide a baseline for comparison.

Bug: T265101
Change-Id: I980d6ae10045b0a4e56694473006196c2132c930
2020-12-15 14:45:10 -08:00
WMDE-Fisch 094a9aa044 Replace deprecated doNotIgnoreMissingTitles
This parameter name was deprecated and replaced in 1.31. See also
Ie5fe2097cda45968bb080643d3afcac0b2868a6c

Change-Id: Ie9d6c70d3dfe3954504d3d698c122dceede7603d
2020-12-15 12:52:55 +01:00
Ed Sanders 85a856e016 MWDefinedTransclusionContextItem: Add param getter
Change-Id: I7fdd4810118e72b9719b840fa5e0887006a74a25
2020-12-14 14:29:06 +00:00
jenkins-bot b4c26620e1 Merge "Send EventLogging when adding template parameters" 2020-12-04 17:09:28 +00:00
jenkins-bot 18be32a9dd Merge "Send EventLogging when editing parameter values" 2020-12-04 17:06:22 +00:00
jenkins-bot 4e436dc2ea Merge "Send an event when the template doc link is clicked" 2020-12-04 16:50:49 +00:00
James D. Forrester 688edf1d64 build: Use "Grade A" rules for stylelint
Change-Id: I54b16407450960fefd5522a25cb733853d2f9372
2020-12-01 08:35:03 -08:00
jenkins-bot 2b34787241 Merge "Don't block media dialog on initialising upload booklet" 2020-11-26 20:10:47 +00:00
Adam Wight 9925ad3a88 Send EventLogging when editing parameter values
The first edit to a parameter will cause an event to be sent,
subsequent edits to the same parameter will not send an event.

Bug: T258920
Change-Id: Ibe663ce99a8fdf85a5add17186fb44fdbd4176bf
2020-11-26 11:13:14 +01:00
Adam Wight 46dad92e7d Send an event when the template doc link is clicked
Bug: T258920
Change-Id: I579472f2f9a683f63a08abc97f69c080e84bed35
2020-11-26 11:12:20 +01:00
Adam Wight 19723ba681 Send EventLogging when adding template parameters
Record that a parameter was added, and whether it was known or
unknown--whether it's documented the TemplateData.  Note that
`.isParameterKnown` returns true after an unknown parameter is added
to the template, so we need to set up the event early.

Bug: T258920
Change-Id: I5f8d8d06226474160a0a82c2e85a7fa4e22ba8cb
2020-11-26 11:10:48 +01:00
Ed Sanders 5e1e619949 Tweak alignment of save checkboxes
Change-Id: Id48eb28535ecc2decc1f3203ac92237137738f2f
2020-10-27 21:43:53 +00:00
David Lynch cf9d3a29df MWLinkAction: update call to window.open
Bug: T264146
Change-Id: Ie3f91cb0ca281d57976b71045f2b54ec96160068
2020-10-08 18:37:47 +00:00
Ed Sanders 0f5cd19e08 Don't block media dialog on initialising upload booklet
Bug: T264441
Change-Id: If2533c7bdf08e92443b28f267b1ede22699a4179
2020-10-02 20:32:49 +01:00
Ed Sanders 5c84f0cd88 Rewrite EducationPopup so it isn't a mixin
Reference images are moved to Cite and used by Citoid.

Bug: T170919
Bug: T171292
Depends-On: I02041246dda1b3d3ad1bcc0b014fa022e8259b62
Change-Id: Id97659ed1fa64a1223a8957fefaf2a149edd0e9c
2020-09-24 21:33:50 +01:00
jenkins-bot c7c20dfb10 Merge "Fix config argument to explicitly pass api" 2020-09-07 19:42:48 +00:00
Bartosz Dziewoński e6a524d761 ve.ui.MWSignatureContextItem: Remove useless 'command'
The 'mwSignature' command replaces the selected content with your
signature. So basically, if you double-click this node, it gets
deleted and an identical one is inserted. This is useless.

I think I added this when this class was inheriting from
ve.ui.MWTransclusionContextItem, to override the command that would
open the transclusion dialog, but even then this should have instead
been `null`.

Change-Id: Id4492e36e9d89001df655e48b528d07eb608289e
2020-09-02 22:09:21 +00:00
jenkins-bot 4afad48527 Merge "Show image autocomplete for "File" parameters" 2020-09-01 21:29:24 +00:00
jenkins-bot bf4aba90bc Merge "Reduce duplication/clutter in MWParameterResultWidget" 2020-09-01 21:26:09 +00:00
Adam Wight 1e96f47563 Fix config argument to explicitly pass api
These constructors only take a single argument, so the api config was
being ignored and the input would fall back to the default `new
mw.Api()`.

The order is changed so that the "api" config is merely a default,
and can be changed by whatever comes later.

The UserInputWidget currently doesn't accept an "api" config. This
will be fixed in Ifb1dd9d. But this is not a blocker. Merging this
patch here before the other won't have any consequence. It will just
continue to ignore the "api" config. ;-)

Change-Id: I15c35216c717576c6767927cac06ef72198fc95a
2020-09-01 09:36:24 +02:00
Adam Wight bf72437d63 Show image autocomplete for "File" parameters
The input field becomes a title autocomplete, showing small preview
images and searching only the File namespace.

This is consistent with how TemplateWizard behaves when editing a
File parameter.

Bug: T260886
Change-Id: I7a114e279436ec1ff6f7b8ab66443138ab12637f
2020-08-28 09:55:04 +00:00
James D. Forrester 8a78603988 Drop support for wgCommentByteLimit, hard-coded null in MW nowadays
Change-Id: I767e0633415568134c46fccbafdaceb1ab76dea3
2020-08-26 20:25:38 +00:00
jenkins-bot dd95e88589 Merge "ve.ui.MWGalleryDialog: Allow "Add new image" button label to wrap" 2020-08-20 13:41:24 +00:00
Thiemo Kreuz 5e2b7506b6 Reduce duplication/clutter in MWParameterResultWidget
The MWParameterSearchWidget that shows a list of all available
template parameters displays the (human-readable) label and
description of each parameter (both given via <templatedata>), as
well as the parameter's internal name and aliases, if there are
any.

This turns out to be non-helpful in the majority of situations:
* When there is no <templatedata> yet, there are no labels.
  Instead, the names are used as labels, which means they are
  *all* identical and everything is shown twice.
* The same happens when manually adding an "unknown field". Simply
  start typing, and you can add parameters with any name. What you
  type is shown twice (actually 3 times, 1 time in the input
  field, 2 times in the result widget).
* Many template parameters are already nice, human-readable. Even
  if <templatedata> exists and specifies labels, these labels are
  often identical to the names. There is no need to come up with
  something else if the name is already good enough. (Exception:
  Localizations, but these are rare.)

Furthermore, this is a *search* result widget. The pretty much
only reason the names and aliases are shown is because the user
can search for them, and needs to understand why a parameter was
found. This still works fine.

For comparison, when a parameter is required you will *never* see
it's name, because the parameter is always there, and never shows
up as a search result.

Change-Id: I6b1dca1c94b2c496930b5bfdfe1c6f76898faa2a
2020-08-20 12:32:02 +02:00
Ed Sanders 4545f53245 build: Update eslint-config-wikimedia to 0.17.0
Fix instances of variable shadowing.

Change-Id: I6e2befb020d7d4b506c7b46131eafacd951aa6d1
2020-08-18 13:16:49 +01:00
Ed Sanders 42c7096dbf Gallery: Handle invalid titles
Items which are invalid titles will still get discarded if
the gallery is edited, but this is better than crashing.

Bug: T260584
Change-Id: I5dc20c233fd9ab41bdf48531829bddca2c5b25df
2020-08-17 18:22:42 +00:00
Bartosz Dziewoński adc4346652 ve.ui.MWGalleryDialog: Allow "Add new image" button label to wrap
The interface has enough space for 2 or 3 lines of text.

(On mobile, the button has only an icon and no label.)

Bug: T260074
Change-Id: I50b08029f843e91d10b8c81985f6dfacbb96c8e7
2020-08-11 16:07:13 +02:00
Ed Sanders dd862a837d MobileArticleTarget: Move MWBackTool to a separate file
Change-Id: I1561f454bcc779f97c758ba7178b09d15f52fe42
2020-07-31 16:15:10 +00:00
Ed Sanders 69d8a195e5 Follow-up I0a1a889: Show user uploads in gallery dialog
Gallery dialog should behave the same as media dialog.

Bug: T62398
Change-Id: I601df9370b82868ba981e415fe24bd4f29399cdb
2020-07-30 17:01:04 +01:00
jenkins-bot b097557733 Merge "Fix: focus order and screen reader issue in help popup dialog" 2020-07-13 19:58:59 +00:00
jenkins-bot c17c7047ef Merge "Fix: provide proper focus order to Category popup" 2020-07-13 19:58:56 +00:00
Akinwale Alagbe 92f2fb1522 Fix: focus order and screen reader issue in help popup dialog
Bug: T257175
Change-Id: Ib1e72caf06de827d5867e2badfd16408d32e9593
2020-07-13 21:32:43 +02:00
Akinwale Alagbe 2f7765d1e8 Fix: provide proper focus order to Category popup
Bug: T257173
Change-Id: I99e9332adb83bf1197da827583b9f22f68b2f395
2020-07-13 21:30:38 +02:00
Ed Sanders 7d722c5f9a MWMediaDialog: Show user uploads when no query provided
Bug: T62398
Depends-On: Iff4b9fab47764e5b775f6757de1163a245f58ed5
Change-Id: I0a1a88933efa9003a75373c61f194f56bb083219
2020-07-13 08:39:40 +00:00
jenkins-bot f197832398 Merge "MWSignatureNode: Don't inherit from TransclusionNode" 2020-07-08 20:44:16 +00:00
Ed Sanders a8753df147 MWSignatureNode: Don't inherit from TransclusionNode
We don't share much functionality, and we have to do a bunch
of hacks to disable functionality we don't want.

Change-Id: I9861123d8f1cbab1923f1aa5be713c2dadaed53d
2020-07-08 22:18:35 +02:00
jenkins-bot c7dedaa353 Merge "ve.ui.MWSignatureContextItem: Keep the $body element, just empty" 2020-07-08 18:34:34 +00:00
Akinwale Alagbe 2a581819ec Fix: Adding accessibility labels to Visual Editor template elements
Bug: T245669
Change-Id: I3b792ffde571047d9900920188e92634b8f50298
2020-07-06 18:46:59 +00:00
jenkins-bot e679ea1e94 Merge "Adds focus visualization to parameter result widget" 2020-06-26 12:40:23 +00:00
bkudiess-msft 748cdffd0b Adds focus visualization to parameter result widget
Bug: T253665
Change-Id: Ie7109375a0d61fb4f8e7b4f6ad54484582c47194
2020-06-26 14:14:57 +02:00
Bartosz Dziewoński ff271d7b43 ve.ui.MWSignatureContextItem: Keep the $body element, just empty
The rendering is the same as before, but keeping the element around
makes it possible to override getDescription() to return some extra
text and have it appear as expected.

Change-Id: I1ef38abffbdb405121ea6b0b2ac368bbbb008cd7
2020-06-22 20:00:48 +02:00
Mvolz 842a728488 Revert "Allow generic params to be passed to getWikitextFragment"
This reverts commit e5c1ef651b.

This change caused an error where templates failed to be inserted
into wikitext in the 2017 wikitext editor.

Bug: T255785
Change-Id: Ie57c49e68e594be22af2b1b479840f29e46131db
2020-06-19 13:15:23 +00:00
Ed Sanders 013b7419bf build: Update eslint-config-wikimedia to 0.16.2
Use jsduck config

Change-Id: I5cd7bbcee83b0fa148b8fb8c3b4adcf08f96cefc
2020-06-18 19:16:52 +01:00
jenkins-bot 15443d35c5 Merge "Allow generic params to be passed to getWikitextFragment" 2020-06-15 20:42:45 +00:00
jenkins-bot 1bc368e01d Merge "Move restbaseId stripping to ve.utils.parsoid" 2020-06-12 18:49:17 +00:00
Ed Sanders 310b4d6e4c ve.dm.Node: blacklistedAnnotationTypes -> disallowedAnnotationTypes
Pulls through I69bea8829091b72f52e8486f7171d70e3194c6ef

Bug: T254646
Change-Id: Ibe880de0436e58416a857756d45fa4dc194196b1
2020-06-12 11:11:34 +01:00
Ed Sanders 877d1e3359 Move restbaseId stripping to ve.utils.parsoid
De-duplicates the two implementations we had.

Bug: T253584
Change-Id: If5d15dd4e7e0d3704ca8d75c0a25c529b06f17fb
2020-06-10 20:31:16 +01:00
Ed Sanders 590dc0988d Remove 'blacklist' in documentation
Bug: T254646
Change-Id: I9bad51ee248084f92de4c35d9e10d3d983f53831
2020-06-10 16:19:50 +01:00
Bartosz Dziewoński dd6c27ae65 ve.ui.MWIncludesContextItem: Fix hiding includeonly tags for multi-line content
Change-Id: Ic3cb24b7470bb71688b25c0c90673ff4d16176d0
2020-06-08 21:06:27 +02:00
Ed Sanders e5c1ef651b Allow generic params to be passed to getWikitextFragment
mw.Target doesn't know about revid and etag, so move that logic
to ArticleTarget, where the param can still just be a boolean.

Change-Id: Idf4632cd28554aaf5bbf5f2b44ded047c0c4b182
2020-06-04 22:45:09 +01:00
jenkins-bot be3ad7d93a Merge "Handle <noinclude> etc. as nodes rather than metaitems" 2020-06-03 13:23:03 +00:00
Ed Sanders 6076708ff3 build: Update eslint-config-wikimedia to 0.16.0
Change-Id: I638e0f82949597e2a2e4ea18fc2f0258f225358c
2020-06-02 21:30:00 +01:00
jenkins-bot 6dd197a10f Merge "init: Manage education popup state the same way as welcome popup state" 2020-06-01 20:57:40 +00:00
Bartosz Dziewoński 1fc11e0146 Handle <noinclude> etc. as nodes rather than metaitems
The difference is that metaitems are not visible on the editing
surface, and their exact position is not preserved when the paragraph
containing them is edited.

This behavior is desirable for e.g. categories, but not for
<noinclude> and related tags, which are intentionally placed in
specific places in the text.

Note that we don't really have any editing interface for these nodes
yet. But you can see them (and they come with descriptions and links
to documentation pages), and delete or copy-paste them.

Bug: T250937
Change-Id: I104e7abbd650567df0e59813653c46a66d955d58
2020-06-01 18:47:14 +02:00
Lucas Werkmeister fd974c25c2 SaveDialog: only allow vertical resize of summary
By default, many browsers permit resizing the textarea in both
dimensions; however, the SaveDialog doesn’t handle horizontal resizing
very well (the textarea is no longer centered and the options don’t
adapt to the new width), so add some CSS to limit the resizing to
vertical only.

Change-Id: I91bf63357237ddc2e3ede8e661480ab0cb48d10e
2020-05-23 11:22:13 +02:00
Bartosz Dziewoński 21b25bd77d Fix deleting signature nodes
Code in ve.dm.MWTransclusionNode (which ve.dm.MWSignatureNode extends)
expects the node data to have an 'attributes' property.

We could override a bunch of methods to fix this, or add checks in the
original code, but it seems more future-proof to instead ensure that
the property exists.

Bug: T248585
Change-Id: I5bd721ca73605a396509669145b740db7283afd3
2020-05-12 01:01:18 +02:00
Roan Kattouw 31db495bcf init: Manage education popup state the same way as welcome popup state
And factor out the common code for using a preference with a fallback to
localStorage or a cookie.

Bug: T235566
Change-Id: Ibb983319edcd2987225fe89677fd10e3ff8f9df6
2020-05-01 19:12:30 -07:00
Ed Sanders 651756c4fc eslint: Enable the mediawiki/class-doc rule and make pass
Also minor other adjustments

Change-Id: I9ee48359e3e53799f2f6240e44b53972283ce328
2020-04-17 22:59:11 +01:00
jenkins-bot ae404ff919 Merge "Remove some hardcoded CAPTCHA support code" 2020-04-17 19:56:57 +00:00
libraryupgrader d1efaac5b2 build: Updating npm dependencies
* eslint-config-wikimedia: 0.15.0 → 0.15.3
  The following rules are failing and were disabled:
  * mediawiki/class-doc
  * mediawiki/valid-package-file-require

* grunt-banana-checker: 0.8.1 → 0.9.0
* grunt-stylelint: 0.14.0 → 0.15.0
* stylelint-config-wikimedia: 0.9.0 → 0.10.1

Change-Id: If718fe8876cc4721602757d38fe06ab421ce8d80
2020-04-16 22:55:11 +00:00
jenkins-bot faa6d75de8 Merge "Adding accessibility label to template and field name edit textbox" 2020-04-16 17:04:54 +00:00
Bartosz Dziewoński 1846b72998 Remove some hardcoded CAPTCHA support code
While we pretend that the ConfirmEdit CAPTCHA support is added by
ve.init.mw.CaptchaSaveErrorHandler in the ConfirmEdit extension,
we still have a bunch of code here required for it to work.

This commit removes some of it, no longer needed after
I6605017fd31a4f96c529dd0beb69e9f4433cebc1.

Depends-On: I6605017fd31a4f96c529dd0beb69e9f4433cebc1
Change-Id: I41e032fd754927b7ea6cfb767eb9f21b522ccacd
2020-04-15 13:18:47 +00:00
Akinwale Alagbe 229a249cca Adding accessibility label to template and field name edit textbox
Change-Id: Ieeb29de8534300751956eb76477b38578478b4a2
2020-04-02 21:02:55 -07:00
Ed Sanders de47496b19 Move MWutils to preinit and rename to parsoid utils
Bring in ve.dm.MWInternalLinkAnnotation.static.getTargetDataFromHref
and ve.resolveUrl, so that the file has no dependencies on VE.

Change-Id: I03bc455d5484a6c51f3fa2397c64936b829fe7e3
2020-03-24 23:13:16 +01:00
jenkins-bot 6c29d69e33 Merge "MWTransclusionDialog: Set 'aria-expanded' on "Show/hide options" button" 2020-03-19 19:57:37 +00:00
Akinwale Alagbe 2aeae1c3f9 MWTransclusionDialog: Set 'aria-expanded' on "Show/hide options" button
Adding the ability for screen reader to announce 
the state of the Transclusion dialog 
when the show/hide options button is clicked.

Bug: T248089
Change-Id: I89b86179bcb63376e480cb8df55e24b9d29df037
2020-03-19 19:43:14 +00:00
Akinwale Alagbe a65c905287 Adding aria-label to the widgets in page settings that fail accessibility
Bug: T247048
Change-Id: I08469c9a38d905b8953b471f11839a5b99f4e7c8
2020-03-13 20:54:43 +01:00
jenkins-bot 2c1383b79e Merge "Move checkbox widget creation to mw.libs.ve" 2020-03-13 18:13:46 +00:00
Ed Sanders e3d3e0869d Move checkbox widget creation to mw.libs.ve
So this can be used other VE API users (e.g. DiscussionTools).

Bug: T245222
Change-Id: I1e0e9bb9da53a62f8a20126e579dcd6300bd2376
2020-03-13 18:00:44 +00:00
jenkins-bot 74ee640664 Merge "ve.ui.MWSaveDialog: Remove meta element filtering from wikitext preview" 2020-03-11 15:26:05 +00:00
jenkins-bot ee43838e79 Merge "Making Categories page in page option dialog accessible" 2020-03-10 19:48:57 +00:00
Akinwale Alagbe 30c90b867a Making Categories page in page option dialog accessible
Bug: T247122
Change-Id: Id91438bf6bc1bf0781fbbcbed32326c5700bfb7d
2020-03-06 13:32:48 -08:00
Bartosz Dziewoński 734c929ea0 Add some accessibility labels to buttons on mobile
Various buttons have a label on desktop, but only an icon on mobile.
We should still use the label for accessibility.

Change-Id: I2b49a80e174dc30ae997a69662643b28b428263a
2020-03-06 15:09:44 +01:00
Bartosz Dziewoński d0c45940d0 ve.ui.MWSaveDialog: Remove meta element filtering from wikitext preview
Once upon a time, we added code to filter <style> and <link> elements
from the rendering of templates in visual editor, because attempting
to cut them would crash Chrome (T52043).

There are at least three reasons why that is not needed here:
* The preview is not editable text, so you can't cut from it
* The Chrome bug was fixed 7 years ago anyway
* We now use TemplateStyles in articles and they work just fine

The code was added here in 9dd638a5ab
without explanation, I think it was just done for consistency.

Bug: T212085
Change-Id: I0712e3a081f04d0b74cda47652fa6eb118dfe7b2
2020-03-05 16:57:51 +01:00
jenkins-bot 4a2d636dab Merge "Fix: non descriptive announcement of version no." 2020-02-25 22:00:52 +00:00
Akinwale Alagbe dd91c3cd09 Fix: non descriptive announcement of version no.
When user navigate to the version number,
the screen reader only narrates the hexadecimal number
associated with the version label without providing context
about what this number represents

Bug: T245470
Change-Id: If9cccac0d71de2de5da96a3a053d21e3deb0d80c
2020-02-25 21:45:31 +00:00
jenkins-bot a2ceb67351 Merge "Fix:Internal and External Link annotation widget" 2020-02-25 16:03:01 +00:00
Akinwale Alagbe d3292378cc Fix:Internal and External Link annotation widget
Adding the ability to special aria-label for the link annotation widgets
in order to aid accessibility to visually impaired audience

Bug: T245294
Change-Id: I3e1fd4a3e3a951092b5212397acc38b2b89a23c2
2020-02-24 16:40:19 -08:00
Bartosz Dziewoński 8c949955e6 ve.ui.MWEducationPopupTool: Autofocus the button to close it
Change-Id: I4c2a3620b0477492713580baab8c3ae503009ed5
2020-02-19 00:25:37 +01:00
jenkins-bot 9e6a40a827 Merge "Use mw.Api#getErrorMessage instead of custom handling" 2020-01-10 14:22:14 +00:00
James D. Forrester 2c77e88d2c doc: Bump copyright year for 2020
Change-Id: I30539877543dc2a57bd1428a00d10ac46d8fc294
2020-01-08 09:13:24 -08:00
James D. Forrester 1f74985894 Update VE core submodule to master (e032fa161)
New changes:
479b50059 Localisation updates from https://translatewiki.net.
c595d8ab0 Metion task related to Firefox hack
0a160fac2 Don't trust selections from the server
d796f3db5 rebaser: Update dependencies
b097dfaad ve.dm.Transaction: Don't translate offsets inside annotate-only replacements
eadee0343 FragmentWindow: Replace previousSelection with initialFragment
561e88158 Use ve.dm.example.imgSrc everywhere
d1dceab31 DesktopContext: Remove onModelSelect event
85947ac55 Pause synchronizer while staging
9a4dd169d Catch various out-of-bounds exceptions
341114afc Remove CE HTML from DM html test fixture
5d3a673e0 ve.ce.Document test: Add src to test image
182ac338e Evalutate fragment selection after staging
e032fa161 rebaser: Drop document opacity while paused

Change-Id: Id551ee2e6510610b8f2e12cf77ce3c8429700872
2019-12-20 12:15:32 +00:00
Bartosz Dziewoński 5f1c68945d Use mw.Api#getErrorMessage instead of custom handling
Bug: T240519
Depends-On: Ie18666b41f4aff1ab4bcf93f9df6e3000ac7b500
Change-Id: I69d9432162f195dcfe9470485b549a1b007617ff
2019-12-14 17:01:35 +00:00
jenkins-bot f213e370f7 Merge "Update VE core submodule to master (b1617fdca)" 2019-12-13 17:22:33 +00:00
James D. Forrester 60721584fe Update VE core submodule to master (b1617fdca)
New changes:
d4a21a7e7 Localisation updates from https://translatewiki.net.
0e99d907a Update OOUI to v0.36.0
c422b8313 Localisation updates from https://translatewiki.net.
b1617fdca Update OOUI to v0.36.1

Local changes:
* Rename onLookupMenuItemChoose → onLookupMenuChoose
  (deprecated in OOUI v0.36.0)

Change-Id: If66f3f16c0e882e99b0d768a3cf4170d24e7093e
2019-12-13 18:06:59 +01:00
jenkins-bot cee6e3e6a9 Merge "ve.ui.MWEducationPopupTool: Respect default preferences for anon users" 2019-12-13 16:23:24 +00:00
Ed Sanders 1d3386b8ac Wikitext links: File/Category support
Change-Id: I282141c23738ca6fa1e634da9bf02912032e12ff
2019-12-12 01:34:40 +00:00
Ed Sanders a007781e81 Support wikitext link editing
Depends-On: I3eb2d5ee0da52942db1de75ef9f8b0ae2632657e
Change-Id: I7ad61899a221a198a06e206614d907a331861dbb
2019-12-12 02:33:35 +01:00
Bartosz Dziewoński 092d0c332b MWSaveDialog: Fix error handling for diffs
In case of HTTP errors we'd crash and show no message.

Change-Id: Ideeff4ce75e7ca82ce63bf7ede6dff03eaa1c5d7
2019-11-24 09:51:43 +00:00
jenkins-bot 35f2093c62 Merge "Move more code to ArticleTargetSaver" 2019-11-14 21:26:24 +00:00
Ed Sanders b0f4b4c94e Move more code to ArticleTargetSaver
* Add a postWikitext method and split out postContent
  from postHtml
* Move saveSuccess handling into postContent promise
* Connect promise directly to saveComplete instead
* Pass whole response.visualeditoredit object, instead
  of splitting into variadic arguments for saveComplete.
* [DEPRECATION] Make serialize return the postHtml promise
  and deprecate passing a callback.

Change-Id: I905737515578000b2b87214c92e8b9fe9e82f6b7
2019-11-14 14:34:22 +00:00
Ed Sanders 6caa4601aa Generate internal links locally
Bug: T147230
Change-Id: Ib154ffebb601dc76c708f2d8a8315cbf98ff6da1
2019-11-12 20:36:00 +00:00
Ed Sanders 4c86c54e46 Replace $.when with ve.promiseAll
Add linting guards, except in preinit

Change-Id: I999641eddb0e0f5b112ec2259dbafc1e816e3437
2019-11-04 22:06:54 +08:00
Ed Sanders 2d4234fac8 Remove jQuery from ve.dm.MWLanguageVariantNode
Change-Id: I849cb6756171aa7bba43dc390cbd390b323328d2
2019-11-02 16:28:32 +00:00
David Chan 22098d6b16 Convert $.Deferred() to ve.createDeferred(), except in preinit
Follow-up to a8e07e026dea4f54241d1dbb6b7bcdbd8c670db2 in core.

Change-Id: I09333adb4876c6e584a4a6b6a1628227c4cd2616
2019-11-02 13:06:28 +08:00
Ed Sanders ffa3742ce1 build: Update linters
Change-Id: I03d1a8e63b730ad98ec07ad5f630ba82698de5be
2019-11-01 16:20:22 +00:00
Bartosz Dziewoński 00eb79d4d7 Revert "Parse relative hrefs on image nodes like on regular links"
This reverts commit 6037fefbe0.
This reverts commit da9b6fffbd.

Bug: T237040
Change-Id: Id6ea5784512e4d4c3cb00927b859d713c3814f89
2019-10-31 22:40:42 +01:00
Ed Sanders 4da31e7c9e Update VE core submodule to master (3075d3f8c)
New changes:
4af3f84f7 Mark surface as "showAsDeactivated" when opening a window
79eb0e4e5 ve.ce.Surface: Guard against focusing a un-initialized surface
4124c275e [BREAKING CHANGE] ve.ui.TargetWidget: Construct a real target inside the widget

Local changes:
* Use new target widget
* Remove calls to deprecated methods
* 'surfaceReady' event was upstreamed

Bug: T236400
Change-Id: I765d657c172d96c3b2e2ae5998083e4926a31f15
2019-10-25 17:16:17 +02:00
Ed Sanders b345ae203b Fix documentation position
Change-Id: I8e1045f38e0cca3a937a5e2a07b1db820f64bee1
2019-10-24 14:31:38 +01:00
Bartosz Dziewoński 4086de5a9a ve.ui.MWEducationPopupTool: Respect default preferences for anon users
Bug: T231762
Change-Id: I05dccf79becab9487ee2a67c4970c938d52e25d7
2019-10-22 20:02:21 +02:00
jenkins-bot cc1bd58e83 Merge "Parse relative hrefs on image nodes like on regular links" 2019-10-11 15:22:29 +00:00
jenkins-bot def3261c49 Merge "Fix linking to pages in media dialog/media context/internal link context" 2019-10-07 15:13:02 +00:00
Bartosz Dziewoński 55aec8f977 ve.ui.MWDefinedTransclusionContextItem: Fix handling of template names
The ...target.wt property contains the wikitext used to generate
the template name. It can contain trailing newlines (T234817) and
all kinds of funny wikitext syntax. Instead, use ...target.href,
which is the title of the page that is actually transcluded. Compare
the new code to ve.dm.MWTransclusionNode.prototype.getPartsList.

Additionally, fix some confusion about namespaces (treating template
names as titles in the main namespace). The template names in the
configuration page (visualeditor-template-tools-definition.json)
now support overriding namespaces in the same way as in wikitext.

Bug: T234817
Change-Id: I7c557d28e961d0b9117fc0380c65cdd42035ae96
2019-10-07 14:56:16 +02:00
Bartosz Dziewoński 7579f6eb1f Fix linking to pages in media dialog/media context/internal link context
If you had an image thumbnail for a file 'Foo?.png' on the page,
ve.ui.MWMediaContextItem and ve.ui.MWMediaDialog did not escape
the '?' when linking to it, which resulted in incorrect links.
Similarly, if you had an internal link to the page 'Foo?',
ve.ui.MWInternalLinkContextItem did not escape it.

Additionally, the links were always generated as if the wiki was
using short URLs, even when it is not (T233628).

The approach using mw.Title is copied from ve.ui.MWGalleryDialog.

Bug: T233628
Change-Id: I10256ed6883dae0ea216de4c0719f03d7fd19ae4
2019-10-07 14:27:02 +02:00
David Lynch d03db0e4f2 ui.MWSaveDialog: checkbox tracking was getting duplicated on every setup
Bug: T232790
Change-Id: Id19aa59c71432d0179fc06b6a30014d1037074ae
2019-10-03 12:44:43 -05:00
Ed Sanders 41572f2595 build: Update eslint-config-wikimedia and fix
Change-Id: Ib9cf45a393438e2eb47fd1b0c837d2d6acb06541
2019-10-03 00:54:54 +01:00
Bartosz Dziewoński da9b6fffbd Parse relative hrefs on image nodes like on regular links
* In normal images, parse relative 'href' attributes instead of
  expanding them to absolute, and parse 'resource' to keep it
  identical to 'href' if they refer to the same page (including
  same percent-encoding and space/underscore). This resolves Parsoid
  generating |link= options for copy-pasted images (T193253).

* In gallery images stuff, prefix the 'resource' attribute with './',
  same as normal images do. This causes no functional changes, but it
  makes updating tests easier, and the consistency is probably good.

* Update test examples to also prefix 'resource' and relative 'href'
  attributes with './', like the real Parsoid does.

Bug: T193253
Change-Id: If2d7f080d9d693568054f8311c1e1b15ca27ea5c
2019-09-25 00:25:04 +02:00
jenkins-bot 7f7cf6ce79 Merge "MWInternalLinkAnnotationWidget: adjust the input for relative links to subpages" 2019-09-20 11:23:40 +00:00
jenkins-bot 067ec50ff8 Merge "MWSaveDialog: add more instrumentation" 2019-09-18 15:13:10 +00:00
David Chan c4cb88aded Don't unwrap a solitary paragraph in Wikitext string transfers
This meant we were returning invalid documents with bare content outside
content branch nodes. Instead let ve.ce.Surface in VE core do the unwrapping.

Bug: T232944
Depends-On: I8799d51958b966c99307f4c70546ea326e67385c
Change-Id: I0479116b51cc3135a992fdf36b8edfb2c44916ba
2019-09-17 20:44:45 +00:00
David Lynch 001ed6a88e MWSaveDialog: add more instrumentation
Bug: T229079
Change-Id: I2e5b45a4a28b580fbca872d620df94a61fb8a24a
2019-09-16 10:48:31 -05:00
Bartosz Dziewoński a02323698b ve.ui.MWEditModeTool: Fix showing active editor
This line of code seems to have been accidentally deleted in
1761b6d6d6.

Bug: T232359
Change-Id: I7d9568cc11a7c96e607203d41ab132c6f304d304
2019-09-09 18:32:56 +02:00
James D. Forrester a05f9e4bf4 Update VE core submodule to master (0b17a137b)
New changes:
d4cb2f03e Update OOUI to v0.34.0
b0b481693 jsduck: Stop listing OOjs in upstream, it's using JSDoc now
0b17a137b Update OOjs to v3.0.0

Change-Id: If29a97ce689523763431face5a13929a461735b4
2019-09-05 13:03:41 -07:00
David Lynch 828aad2e01 MWLinkAnnotationInspector: track edits to the label field
Bug: T229841
Change-Id: If5aa535015260a315f02f9e694f1fcb533928b08
2019-09-03 09:19:09 -05:00
jenkins-bot bc963f4155 Merge "Support for defined template context items" 2019-08-30 18:50:27 +00:00
jenkins-bot 6cd05557d0 Merge "MobileArticleTarget: v1 of toolbar refresh" 2019-08-30 17:43:58 +00:00
Ed Sanders e5f5a49344 Support for defined template context items
Context items can be created for specific template titles. Titles
are mapped to context items using an on-wiki message.

Bug: T211243
Change-Id: Icfc39e350452da238d0e0c17cb2305c60d9ca16a
2019-08-30 13:02:47 +01:00
David Lynch 593d26b4ab Don't let double-clicking the save button trigger a save
Tapping the toolbar save button while the save dialog is open triggers a save
because of the accesskey. It shouldn't save on a double-tap, because that's
easy to accidentally do / trigger on a slow device.

Bug: T230816
Depends-On: I4c3afce9d57c9bca737272b40b9a4862b5794bac
Change-Id: I1925b1b97de6a811f73196b616ec09a2c30c336f
2019-08-29 22:43:53 +00:00
David Lynch 1761b6d6d6 MobileArticleTarget: v1 of toolbar refresh
Bug: T211789
Bug: T230807
Change-Id: Ifd2319039628a8143dc09f6fa35e4a9825d3062c
2019-08-29 15:27:56 +00:00
jenkins-bot dd86fc76aa Merge "Use upstream pulsating dot" 2019-08-28 17:31:52 +00:00
Ed Sanders 4a8947686d Docs: Standardise "messages used" comments
Change-Id: Ic563901a9439e86ca85ac6210323a35ab34736c3
2019-08-28 16:41:19 +01:00
Ed Sanders 7cc538fe51 Use upstream pulsating dot
Bug: T226719
Depends-On: Ibd035ea48b7d0316a7627a91623ff6116ccbae31
Change-Id: Iedf88e9c5ac8efa809ccb25f2081eff9946da395
2019-08-28 13:40:29 +01:00
Ed Sanders 3b09a0719c Link inspector: Turn off 'addQueryInput'
The double result creates more confusion that it clears up,
and now that the query input is always used for text insertion
it is less of an issue that we don't have a case-exact match
in the results list.

Bug: T230819
Change-Id: I58cbe740fa7d0327aadd5dd111161bb7087a4ddb
2019-08-27 12:17:44 +01:00
Ed Sanders 042bfdfd9d Update VE core submodule to master (07687721b)
New changes:
77076f828 LinkAnnotationInspector: add a "label" field on mobile

Local changes:
* Updates for mobile link label editing

Bug: T229431
Change-Id: Ib0489f6f59b228ebc4a20f7a0a515be938a8f6d3
2019-08-23 00:25:51 +02:00
Bartosz Dziewoński 84d548e7b1 Remove redundant @method annotations
A @method annotation is only necessary when the docblock is not
directly followed by a function declaration (in which case JSDuck
assumes it documents a property), e.g. when defining an abstract
function or referencing a function from another library.

I verified that JSDuck generates exactly the same output before and
after this change (docs/data-<hash>.js files are identical).

Change-Id: I7edf51a8560ab9978b42800ab1026f0b5555c3bf
2019-08-21 23:33:15 +02:00
jenkins-bot 2d52d7e86c Merge "MWSaveDialog: On mobile show a back button rather than an x" 2019-08-15 09:32:32 +00:00
Ed Sanders 3cbe0a5a20 Update VE core submodule to master (c2c5149f3)
New changes:
62f06382c Localisation updates from https://translatewiki.net.
5fc25c0d9 LinkContextItem: Apply ellipsis directly to link

Local changes to fix link ellipsis styles.

Bug: T230267
Depends-On: I25bb4fa9b7288232b08bab9c88f281817a26d6bb
Change-Id: I8a4b04d45979a1f6c375a7c92a340e3e81d7753c
2019-08-15 10:12:22 +02:00
David Lynch ac471d47e9 MWSaveDialog: On mobile show a back button rather than an x
Bug: T230058
Change-Id: I370fedddf8475e5688ac4ce53f9ccd7d6137705b
2019-08-14 11:38:38 -05:00
Ed Sanders 348c880cbe MWSaveDialog: Don't pretend saveButtonLabel is optional
Change-Id: I7cfc5bfbf8893fa4808f2823b37efae7b9e520ac
2019-08-05 21:16:21 +01:00
Ed Sanders 88cb572e35 Fix typo in file header
Change-Id: I6f258f81e6cb129328bf912245f23d6c4d877f47
2019-08-05 21:15:58 +01:00
jenkins-bot 644f409d61 Merge "Use MobileFrontend license message on mobile when available" 2019-08-02 22:12:12 +00:00
Ed Sanders 0b1f0a0eda Use MobileFrontend license message on mobile when available
Bug: T229579
Change-Id: I861f0d997607a34ca04727afd55771cbf14e253b
2019-08-02 16:29:54 -05:00
James D. Forrester 05fb44ae56 build: Upgrade eslint-config-wikimedia from 0.12.0 to 0.13.1
Change-Id: I43f407da92f59a8bf758cc2586e84aa5e18d9ab0
2019-08-02 09:51:07 -07:00
jenkins-bot 2d2e7dcdb2 Merge "ve.ui.MWLinkAnnotationInspector: Correct code comment" 2019-07-30 23:58:16 +00:00
Bartosz Dziewoński 0f5fe34534 ve.ui.MWLinkAnnotationInspector: Correct code comment
The way this works changed in ff9bf1fcb3 (2015).

Change-Id: I61617723ec6ada8018cdca55eb3fcc971796fded
2019-07-31 00:21:45 +02:00
Bartosz Dziewoński 7ac972d408 ve.ui.MWInternalLinkAnnotationWidget: Remove 'maxlength' to fix pasting URLs
Bug: T228240
Change-Id: I1f1be3a0893bdf8b7f9d07301ed01673eda8327d
2019-07-29 22:07:51 +02:00
jenkins-bot 138c3eb53a Merge "ve.ui.MWLinkAnnotationInspector: Update size after showing/hiding errors" 2019-07-25 20:51:33 +00:00
Ed Sanders 9a1994e47c Update VE core submodule to master (7cb9caca1)
New changes:
28aea2e4d Edit cards v2 design
739017973 Track usage of the new "close context" button

Local changes:
* Edit cards v2 pull through

Bug: T222396
Change-Id: I1ca885e8d8127e7827a059755315ed789a7b9210
2019-07-25 22:24:48 +02:00
Bartosz Dziewoński bfc549e720 ve.ui.MWLinkAnnotationInspector: Update size after showing/hiding errors
Change-Id: I84af3fbfea4aa89d76de95cfcdbfd3bc9e69ee83
2019-07-25 00:06:02 +02:00
Ed Sanders b35241497a Use type=url for external link input
Change-Id: I13cfdaaf5e94f07d16270df2933d1b23cf9f0ff7
2019-07-24 13:50:11 +01:00
Ed Sanders 393de5985f Update VE core submodule to abf2bfa85e64e67cdf963601fe1da2a11fd9e89a
New changes:
1a7460058 Remove ve.newMobileContext feature flag

Local changes:
* Remove ve.newMobileContext feature flag

Change-Id: Ia8def997b7cba4623866080752b06068d2118cc3
2019-07-23 22:12:48 +00:00
Ed Sanders 085764ddd6 SaveDialog: Hide options bar when empty
Since I7f6fd7ee9 it is now possible for the options bar to be
completely empty if the user is logged out. In this case hide
it and only show it again when the character limit needs to be
show.

Ideally we wouldn't have the height change, but it is quite rare
that a user gets to 400 chars and is logged out.

Bug: T228165
Change-Id: Ifbdf352afcbf4e549889e04fdb70fd30ce233aad
2019-07-16 14:28:25 +01:00
jenkins-bot 2d25d15a39 Merge "Add number of images to gallery context" 2019-07-15 23:26:30 +00:00
Ed Sanders c958ea383d Add number of images to gallery context
Change-Id: I3e54c6cb2b29ecb1153afd5f2f61adaabceb095b
2019-07-16 01:04:08 +02:00
Ed Sanders 377ed366cd Add validation to feedback to internal links
Turns out we had this message lying around unused,
so use it (even though an invalid title is quite
hard to come up with).

Change-Id: I0200678820fe88a59869f7fad8f491b4c5b77482
2019-07-15 22:35:59 +00:00
Ed Sanders fba9585dbf Add validation feedback to external link
Bug: T227899
Change-Id: I165ed59402bdffb63b0c79b68a41d509c4574837
2019-07-15 22:35:46 +00:00
jenkins-bot 14539bfe22 Merge "Make page title the target title" 2019-07-15 19:08:11 +00:00
tcreusc 57317a20e4 Make page title the target title
There are cases where the page title and the real/desired page name
are not the same. Fixing that also fixes the suggestions that appear
in dialogs (see related bug).

Bug: T193132
Change-Id: Iafa84c05bea08ebb061ee6d1323eb50945b39815
2019-07-15 17:22:17 +00:00
Bartosz Dziewoński f259bb9c02 MWSaveDialog: Use close flag for close actions, move 'back' button
When previewing/reviewing changes, the "Return to save form" button
now replaces the "Resume editing" button in the top-left corner (and
receives the 'back' flag). Effectively, you tap 'back' once to go back
to the edit summary, and twice to go back to editing. This seems to me
like a much more natural interaction than two separate buttons.

Bug: T225021
Bug: T227049
Bug: T227857
Change-Id: Id27ccf06923c8aa86b1c1a9292bc43bb825ce6c8
2019-07-12 20:33:02 +00:00
Niklas Laxström ea66017b4b Remove non-existing showRedlink from ve.ui.MWInternalLinkAnnotationWidget
It was removed in 3e31a31 in 2016.

Change-Id: Ib7383a4ff585258a98d6795487e912597b41900e
2019-07-10 12:18:48 +02:00
jenkins-bot 2ec5bd5447 Merge "MWLinkAnnotationInspector: Work around annoying syntax highlighting bug in Gerrit" 2019-07-09 17:09:40 +00:00
David Lynch e32f460a5c Extra logging for link inspectors
Bug: T221249
Change-Id: I4e5991f7aa90d08598d5ba7ac14839956bee9b94
2019-07-09 10:12:33 +00:00
Bartosz Dziewoński 9ba3255c26 MWLinkAnnotationInspector: Work around annoying syntax highlighting bug in Gerrit
Wrap a regexp in parentheses to avoid confusing Gerrit's New UI syntax
highlighter, which goes crazy if a line starts with a regexp.
https://github.com/highlightjs/highlight.js/issues/1962

Change-Id: I7e4ca4d5c4d449925af7168147016ed2fb8a6e33
2019-07-09 10:08:23 +02:00
jenkins-bot 1d2b9d20cf Merge "Dialogs: Use close flag for close actions" 2019-07-02 19:01:36 +00:00
Ed Sanders 3f892fe368 Simplify pulsating dot to one DOM node using :before/:after
Change-Id: I81af08d58a33b6d3751bfc5012217b9bd98e69dc
2019-06-27 15:35:50 +01:00
jenkins-bot b57aaa59cd Merge "MW link inspector: Empty before appending" 2019-06-26 19:23:12 +00:00
Ed Sanders d4bd5d14c8 Fix link normalization when opening inspector
Move fix for I92ffc19eab4e to getInsertionData as getTextFromAnnotation
is also used when populating internal link search field.

Bug: T226645
Change-Id: I60806932b00a742dae52651fb7931caf07413361
2019-06-26 16:16:17 +01:00
Ed Sanders 239e592d15 MW link inspector: Empty before appending
We don't inherit any root DOM structure from the parent,
so explicitly clear it.

Change-Id: If4c034e8230ccaf721a8e3667f29c6783c94a8bb
2019-06-23 16:58:04 +01:00
Ed Sanders e83e80f42e Show edit summary on preview page
Bug: T199582
Change-Id: Ia8c2322706e8e635498c447dddb3b4b98040e27e
2019-06-21 12:54:13 +01:00
Ed Sanders 7ad624f0a3 Remove switch confirm dialogs
Bug: T220007
Change-Id: I81b39a02d573d96bcb6b4238aabbcd077e874906
2019-06-11 22:35:34 +02:00
Ed Sanders efae95dabf Dialogs: Use close flag for close actions
Bug: T225021
Change-Id: Ifd0cb40031c2717cc0716f98a27c124f54709003
Depends-On: I67b8474b0662f8dbc23c1b5ff883e3d4093bdbd4
2019-06-10 15:58:47 +01:00
jenkins-bot 4ec7272876 Merge "MWEditSummaryWidget: Use showSuggestionsOnFocus flag" 2019-05-29 15:29:13 +00:00
Ed Sanders 5b4158860a 'scrollCursorIntoView' -> 'scrollSelectionIntoView'
Change-Id: I202b1bdb3196b318c26422577b66de66d37080c8
Depends-On: Iac446ce9fce170b43c96001ca89e8af4825522ca
2019-05-24 10:11:38 +00:00
Ed Sanders c1130d386c MWEditSummaryWidget: Use showSuggestionsOnFocus flag
Bug: T169484
Depends-On: Ib47c9831ea712bf92b56a88474c3419067124458
Change-Id: I8697e153d4ed0bfbc8d89b65ff63a302c11a27ea
2019-05-24 11:09:26 +01:00
Bartosz Dziewoński d43262feb6 ve.ui.MWEditSummaryWidget: Remove a hack for T220204
Change-Id: I1539eb72b9b313c32743b300a58a734f3eaafef4
2019-05-23 21:30:15 +02:00
Ed Sanders b6704010fa Automatically add a template when chosen from the autocomplete list
This behaves in the same way as the link inspector.

Change-Id: I8901c636cd5c74023f4c6c562b410f55afe91124
2019-05-17 13:15:07 +02:00
Ed Sanders 4c8346f822 Fix API request for media dialog preview
Regressed with upgrade to apiversion 2.

Change-Id: I257c367b8f639a389002fefcd074e2fffe5a3bd4
2019-05-13 12:51:54 +01:00
Ed Sanders a424bc3da5 SaveDialog: Move iOS Safari hack to avoid losing focus
Bug: T222859
Change-Id: I07b530573a8f5b900bdb5cbc15314f5758baf36a
2019-05-13 11:50:55 +01:00
Ed Sanders 5346acc175 Fix edit summary preview
API version 2 doesn't use the '*' property.

Bug: T222999
Change-Id: I4da49dfd6f1e7ffe682fb803bb256ab7ec2aad61
2019-05-11 21:24:43 +01:00
Ed Sanders 1168db2370 Link inspector: Pass new 'showInterwikis' option to title widget
Bug: T222831
Change-Id: I28a8c8cbb90f9917301bafa877e0ae66970816e7
2019-05-08 13:48:24 -05:00
Bartosz Dziewoński 274d1cfde6 ve.ui.MWWikitextSurface: Hide UI of extensions that attach to our dummy textbox
Bug: T211898
Change-Id: Ieec33166299ddba4bdd36b3feb0376d82bb704d3
2019-05-06 22:56:39 +02:00
James D. Forrester dd5a1f0285 Follow-up f9330c8564: Don't auto-add MWSaveTool
Bug: T222325
Change-Id: I1ccd43c6de51cd2fc8d4fc3291b1870b99736d80
2019-05-02 15:57:34 -07:00
David Lynch 4c68fe654e MWInternalLinkAnnotationWidget: adjust the input for relative links to subpages
If in an appropriate namespace, automatically add the name of the current page
to the beginning of internal links that start with a /. Same behavior as
wikitext link-parsing, essentially, just made explicit in the UI.

Bug: T110413
Change-Id: Idf9dc3fafab0e9c809eaf6c523c80da57577bb61
2019-05-02 11:59:05 -05:00
Bartosz Dziewoński c31cf00432 ve.ui.MWSaveDialog: More save panel disappearing on iOS Safari
Bug: T221289
Change-Id: I6ec40bd78f5c36a6033e800466124fcbb4f6446d
2019-05-01 22:43:49 +02:00
jenkins-bot 857c1bd3d1 Merge "Replace the save button with a save tool" 2019-04-30 19:51:36 +00:00
jenkins-bot d85062d1d1 Merge "Fix switching without changes" 2019-04-30 19:37:03 +00:00
Ed Sanders f9330c8564 Replace the save button with a save tool
Now shows correct tooltip for save button (including
the access key).

Bug: T163142
Change-Id: If14a1a5a5829fc215cb79827392173dc05c4bdd7
2019-04-30 19:32:33 +00:00
Ed Sanders 934572cdf7 API: Use formatversion=2 by default
V2 has better handling for booleans.

Change-Id: I5388bd2cc64ae0c9ed4a185adce1e3bb4cdd92fc
2019-04-30 19:31:28 +01:00
Ed Sanders 7739b1c79b Fix switching without changes
* Remove 'discardChanges' from switchToWikitext. This was
  intended to discard changes even when the document was
  modified, but it is no longer used as we always keep
  changes if we can.
* Remove 'leaveVE' param, it was only used once and has
  been replaced with a direct call to switchToFallbackWikitextEditor.
* Don't reset 'section' if there are no changes.

Bug: T221981
Change-Id: Ia39345da44d203ba67ae331917c8d5ece7d42ef7
2019-04-30 14:52:58 +01:00
Ed Sanders 31dd73ae81 MediaDialog: Use new icons
Bug: T222086
Change-Id: I09c0a4e039de224d3cb0dd92855c559668ed35d3
2019-04-29 10:00:06 -07:00
Ed Sanders 709530993b DesktopArticleTarget: Remove changing document opacity when switching to WTE
When this was introduced in 7b2cacbe57
(2013), the confimation dialog was a generic confirm() popup. Now that
it is a OOUI dialog, the dialog overlay serves the same function.

Change-Id: I9812ab55c7a8179524865d93a6d269e388d4c4ab
2019-04-25 21:08:42 +02:00
jenkins-bot d39c28ca69 Merge "ve.ui.MWSaveDialog: Work around save panel disappearing on iOS Safari as well" 2019-04-24 22:25:59 +00:00
Ed Sanders e3846ed09b EditSummaryWidget: Don't highlight first automatically
Bug: T50274
Change-Id: If9d46116caac381bfc7264652429377e60bb2a0b
2019-04-24 17:58:46 +01:00
Bartosz Dziewoński 11673b21ad ve.ui.MWSaveDialog: Work around save panel disappearing on iOS Safari as well
Same thing as Ifb49ede450cabdcd8303b298b62f2ac632809b53, for
a slightly different case that we missed.

Bug: T221289
Change-Id: I0ca287af87e1058620fbed75a50d40f01513a567
2019-04-24 15:56:58 +02:00
Bartosz Dziewoński 5b0bb28323 ve.ui.MWSaveDialog: Fix preview of redirects
Incorrect order of operations caused all metadata to be removed before
we looked for the 'mw:PageProp/redirect' metadata item.

Bug: T221686
Change-Id: Ifcf210ad772babe1019fd0cfbaa7bd60d0e7e5fe
2019-04-23 23:02:24 +02:00
Ed Sanders a7149cc3ee Update VE core submodule to master (7cd15cfe9)
New changes:
9b162a5da Localisation updates from https://translatewiki.net.
10dbdabf4 Remove valid-jsdoc exceptions for @chainable
a424f804d Make blockquote a non-content branch node

Local changes:
* Update stuff for making blockquote a non-content branch node

Bug: T76426
Change-Id: I95ae25f20d3d102da69bf5ffdff55335f6c07635
2019-04-22 12:39:14 +01:00
jenkins-bot 32985886e3 Merge "eslint: Enable valid-jsdoc" 2019-04-17 18:39:41 +00:00
Ed Sanders 0db4ae6e00 eslint: Enable valid-jsdoc
Change-Id: Ia0d1e57246a1c567d73022ceca9b8c02850f9bc8
2019-04-17 17:13:39 +01:00
Timo Tijhof ef36f4b0a1 Move usePageImages/usePageDescriptions from page conf to site conf
These do not vary by user or page, and can thus be loaded asynchronously
via the startup module, rather than blocking rendering and fetching
of modules on all pages.

In a future change, it might be better to go a step further and bundle
these with a module so that they only load as-needed instead of still
on all page views, but this should be an improvement nonetheless.

Change-Id: Icae3712ac5546a90bc7ffd787b0f3285dff6a26f
2019-04-17 00:10:27 +01:00
Bartosz Dziewoński 0e0bc12177 ve.ui.MWMagicLinkNodeInspector: Select annotation after converting
Currently, the selection is not updated, so we end up keeping the
first two characters selected. Same code as ve.ui.MWLinkNodeInspector,
see cb72eea2041bb35e02eb756be3f2c7e8e6c3b43c.

Change-Id: I2204643c41025ad69fa9e232edfc5a896f1b8bdf
2019-04-16 17:10:42 +02:00
Ed Sanders d14d443aff Use new CE Surface selectAnnotation method
Change-Id: Ic26c46d3cdabc7b9949527d04eada5203cf6f7d3
Depends-On: I23f3586e340899801c99b3015e51dd0965a8ef0b
2019-04-16 17:09:01 +02:00
Bartosz Dziewoński b7f7cf3734 ve.ui.MWSaveDialog: Work around review panel disappearing on iOS Safari
No idea what causes it, but I've seen a similar issue when working on
Ic35f084d019afd1782292c831765ceb1444fb14a (in OOUI) and this hack
worked there too.

Bug: T219680
Change-Id: Ifb49ede450cabdcd8303b298b62f2ac632809b53
2019-04-10 22:56:08 +02:00
Ed Sanders 72df5f690f Update VE core submodule to master (f039957f3)
New changes:
f039957f3 [BREAKING CHANGE] Use keyed objects for importRules blacklists

Local changes: Use extendObject to set importRules

This allows us to inherit the ruleset from the parent
so we don't have to worry about keeping it up to date.
(For example alienTableCell from upstream was missing
in MW).

Media/Gallery dialogs: Add missing mwTable types.

Change-Id: I366a091ff4def66cc25200b3d1b2c23ba6b716f7
Depends-On: I8ff7e8242c8db235a0f9e11e2e52f90d62d368a0
2019-04-09 16:58:26 -07:00
jenkins-bot afdd97c58f Merge "EditSummaryWidget: Disable pending animation" 2019-04-09 20:13:07 +00:00
Ed Sanders ed0105b5a1 EditSummaryWidget: Disable pending animation
Animation shows breifly on every keystroke, even though
only one server request is made, as the promises always yield
to a browser animation frame.

A pending animation isn't really required for autocomplete
as the results are only optional suggestions.

Change-Id: Ifa257592b10d84dccfa3e0c819c1edf1f7ef9cfa
2019-04-09 19:54:39 +00:00
Ed Sanders e2dfdf0ef7 EditSummaryWidget: Don't show suggestions on focus
Bug: T220176
Change-Id: Iffad075929d8835eb4f8677b33c3edd30a27b3f8
2019-04-05 14:04:29 +01:00
jenkins-bot 96dfb99016 Merge "Edit summary autocomplete" 2019-04-04 17:44:36 +00:00
Bartosz Dziewoński a5c5257e71 Directly call action=query&prop=langlinks from JS rather than PHP wrapper
When this code was written in 2013 (1a5bdd5bd2),
the langlinks API did not have a way to return the language names (autonyms).
This has been added in 2014 (4ba3a9aea96ee21c035c69999be23580e23f4e0a).

Change-Id: I70edb846d94b1108b079caf5915532234190da8f
2019-03-18 23:27:44 +01:00
Ed Sanders 1ffb574450 Edit summary autocomplete
Bug: T50274
Change-Id: Ida462f3dea325902459546af97e66cd9d0c86166
2019-03-09 14:03:27 +00:00
jenkins-bot 266a2bf036 Merge "ApiVisualEditor: Separate out templatesUsed from metadata" 2019-03-02 01:49:06 +00:00
jenkins-bot 1c083a362e Merge "Add more read-only implementations" 2019-02-25 23:59:13 +00:00
jenkins-bot 92ce7f0b99 Merge "MWMetaDialog: Implement read-only mode" 2019-02-25 23:12:47 +00:00
jenkins-bot 99351fa20a Merge "MWCategoryWidget: Implement setDisabled" 2019-02-25 23:05:23 +00:00
jenkins-bot f8ffb4d6ce Merge "MW(Advanced)SettingsPage: Use Array.forEach for metaItemCheckboxes" 2019-02-25 22:57:52 +00:00
Ed Sanders c04d3da853 Add more read-only implementations
* Gallery:
  - Disable add/remove image buttons in read-only mode
  - Make image list undraggable
* Template: Disable outline controls
* Transclusion: Add/remove buttons on template pages
* MagicLinkNodeInspector: Disable input (e.g. ISBN links)

Bug: T210142
Change-Id: Ibb03ab0bfd55ef5bf7d7558c217c779d7904a134
2019-02-25 20:01:11 +00:00
Ed Sanders e3bb0b9e8b ApiVisualEditor: Separate out templatesUsed from metadata
Generating the templatesUsed list is relative slow, and is only
used in an obscure part of the editor, so only generate it when
needed.

Bug: T209078
Change-Id: I1cecdad65b80c4c9b1746e752ea4b41bc0fc0037
2019-02-25 13:01:43 +00:00
Ed Sanders 6aa61aefa5 MWMetaDialog: Implement read-only mode
Bug: T210142
Change-Id: I7b32668a5daecc04515e9fa13875b278cadfbcce
2019-02-25 12:56:37 +00:00
Ed Sanders 33774758b7 MWCategoryWidget: Implement setDisabled
Change-Id: I443f2b55e2f17fb3c182e6cb22e392434513ce6c
2019-02-25 12:56:37 +00:00
Ed Sanders 9c5ec0d0d1 MW(Advanced)SettingsPage: Use Array.forEach for metaItemCheckboxes
Change-Id: Id034ae5cba46503370fbf61094b33e6b93569fe9
2019-02-25 12:56:35 +00:00
Ed Sanders 8e3ef8fb7f Hide label section in MagicLinkNodeContextItem
Change-Id: Ifc6cdb2ee15874bfd036b29a6abaffa6e4207728
2019-02-24 13:25:23 +00:00
Bartosz Dziewoński 043a59a9bd ve.ui.MWSaveDialog: Fix fragment links in visual diff too
Follow-up to a22b9c8ea3.

Bug: T212554
Change-Id: Id7a16505c11a25f7a61f1394e9d9d1372cbb3d23
2019-02-22 22:51:30 +01:00
Bartosz Dziewoński ab8ae002af ve.ui.MWSaveDialog: Target links in visual diff to new window
Needed after change I6c988c012730d36d60629864a436e4a1700684c5
in VE core.

Change-Id: I7f0e836bd105a925f8dc62d52f081ee9051765fd
2019-02-22 22:50:55 +01:00
jenkins-bot f1b7225336 Merge "Swap the link-rtl.png and link-ltr.png files" 2019-02-22 20:49:11 +00:00
Ed Sanders 18907dde5a Implementations for read-only mode
Depends-On: Ifaa74be266c048d87f94b4ae2df59cafc7aa155f
Change-Id: Iedd1bd9ce17750ad8528c1a053293c4a7321c5de
2019-02-22 18:20:51 +00:00
setian 08e96d7b2e Swap the link-rtl.png and link-ltr.png files
Bug: T216617
Change-Id: I717f36ea94f1c7a016111ce7b32068bf42e05806
2019-02-22 02:38:56 -05:00
Ed Sanders e21d4fab3f Update VE core submodule to master (2951e9378)
New changes:
202adf904 [BREAKING CHANGE] Unify FragmentInspector/Dialog behaviour

Local changes:
* Update dialogs to use common actions & FragmentWindow

Change-Id: Ib744b8996db48d1ee58bc873120400566c490e88
2019-02-22 01:13:36 +01:00
Ed Sanders 332aa1f3d2 build: Update eslint-config-wikimedia to 0.11.0
Change-Id: I5a294705eed1760e2d4dde33934d2ffb12e29525
2019-02-20 20:23:43 +00:00
jenkins-bot 8846e65e44 Merge "Support only surfacing part of the document" 2019-02-20 19:06:30 +00:00
Ed Sanders de2a2ca06f Improve abstraction around template context description
* Separate partDescription from partDescription*s* and use Array#map
* Lookup CE node class of current model, instead of using
  ve.ce.MWTransclusionNode hard-coded.

Change-Id: Ief07b865b4c216dc13408b12e8a1354cd2c28dfe
2019-02-19 13:23:14 +00:00
jenkins-bot 557cc0e581 Merge "ve.ui.MWGalleryDialog: Allow normal tools in gallery captions" 2019-02-18 18:47:55 +00:00
Ed Sanders 3269d53632 Support only surfacing part of the document
Bug: T76541
Depends-On: I227a0d704b9b337cff2102d424be9795d6362ed7
Change-Id: Iac71a51c8696434658f24fbb41c8142237bd810e
2019-02-13 19:03:44 +00:00
Ed Sanders bc02c44d36 rootNode/documentNode -> attachedRootNode
Change-Id: I56bb10749cac04e17ace2781b4d693ec5f522e7c
2019-02-13 19:03:36 +00:00
Chunliang Lyu 4774fbdf5c Fix TypeError in MWTocWidget.initFromMetaList
If a page contains __NOTOC__ magic word, it would break the VisualEditor
with "Uncaught (in promise) TypeError: Right-hand side of 'instanceof' is not
an object at VeUiMWTocWidget.ve.ui.MWTocWidget.initFromMetaList".

The issue seems to be that we removed ve.dm.MWTOCForceMetaItem and
ve.dm.MWTOCDisableMetaItem in commit 57a06a6e75,
but the code in initFromMetaList still refers to them.

Change-Id: I857cddcc7d4aa73375357ef922591ed94d760166
2019-02-09 19:31:27 +01:00
jenkins-bot d1c7b9a5d1 Merge "Fix function name" 2019-02-06 22:36:21 +00:00
Ed Sanders fed2067df9 Fix function name
Change-Id: I540ec247f37a21dfd0b84c8b593a6a37197bfcb2
2019-02-06 21:54:23 +00:00
Bartosz Dziewoński 9ff514a460 ve.ui.MWTransclusionContextItem: Use the right class name in override
Follow-up to I47a995905fef5aa2cabb2b3215111de0b506e7f7.

Bug: T209610
Change-Id: I204e92771bcde9015244a1697c3a7e6bd888a516
2019-02-06 22:36:52 +01:00
jenkins-bot f5bae30b4a Merge "ve.ui.MWTransclusionContextItem: Remove "Generated from" prefix from description (mobile)" 2019-02-05 19:13:55 +00:00
Bartosz Dziewoński c56b764330 ve.ui.MWTransclusionContextItem: Remove "Generated from" prefix from description (mobile)
It does not provide any additional information, and it is long enough
that it causes the actual template name(s) to not fit on the screen on
small mobile sizes.

Bug: T209610
Change-Id: I47a995905fef5aa2cabb2b3215111de0b506e7f7
2019-02-04 19:48:28 +01:00
James D. Forrester b74f4db570 MWMediaTransferHandler: Fix new eslint warning from unused global
Change-Id: I729cfb8d6b487ecd5b42af5921ca8f1e18cfd749
2019-02-01 20:07:15 -08:00
Bartosz Dziewoński c91047b129 ve.ui.MWGalleryDialog: Allow normal tools in gallery captions
PHP parser and Parsoid now both allow normal wikitext in gallery captions.

Bug: T187958
Change-Id: I3470ec1f81493c58e4c2bdad00d5d78af8b4a10b
2019-02-01 19:51:35 -08:00
jenkins-bot dae36e4ea1 Merge "MWTemplateTitleInputWidget: Filter out templates named '…/doc'" 2019-01-31 22:29:51 +00:00
James D. Forrester c1d690e53d MWTemplateTitleInputWidget: Filter out templates named '…/doc'
As configured on-wiki via MediaWiki:templatedata-doc-subpage; this will
probably have a few false positives, but that's worth it.

Bug: T54448
Change-Id: Id91f95b5865e151f8007a2421428aeb82b11b3fd
2019-01-26 13:23:38 -08:00
jenkins-bot cd42c60644 Merge "MWLinkAnnotationInspector: check field validation before submitting with enter" 2019-01-25 01:26:44 +00:00
David Lynch 410386d573 MWLinkAnnotationInspector: check field validation before submitting with enter
Bug: T214453
Change-Id: I46adc4578f3827cb9f1fb8b424eb88a49f635fc9
2019-01-24 11:17:04 -06:00
jenkins-bot 2ea2197483 Merge "Fix uncaught jQuery linting errors" 2019-01-22 16:27:45 +00:00
jenkins-bot 26fd8c670e Merge "Re-introduce: Replace deprecated setIndicatorTitle with setTitle" 2019-01-22 00:43:05 +00:00
jenkins-bot 65fd3de442 Merge "Use pixel dimensions for education dots" 2019-01-18 21:26:05 +00:00
Ed Sanders 375edf0182 Fix uncaught jQuery linting errors
Change-Id: I17482ec84c95e88881ab4bee9b9cadb27b2dc472
2019-01-18 21:03:38 +00:00
Ed Sanders ec1a940616 Use pixel dimensions for education dots
Bug: T214203
Change-Id: I02410b09d490c6a6ebd71cafa998f09c8cd1033f
2019-01-18 21:00:56 +00:00
jenkins-bot 1737464653 Merge "Fix fragment links in preview" 2019-01-18 16:54:54 +00:00
Ed Sanders a22b9c8ea3 Fix fragment links in preview
Bug: T212554
Change-Id: Ic9b8f14c377b0dd43aa648983fac27272a64b66f
2019-01-18 14:39:00 +00:00
Volker E 5c5323fc3a Re-introduce: Replace deprecated setIndicatorTitle with setTitle
Patch got reverted in Iffbbd36d0e91, with I3028c4225a42 we should be
good to go now.

Bug: T76638
Change-Id: I016f7db8b2527b3ffe3bd103e6c88ee8e4dd11bc
2019-01-16 22:12:38 -08:00
Ed Sanders 5461c56380 stylelint: Enforce class name pattern
Change-Id: Ia41a08424f840d353eb7fc213815f7992da4a2ef
2019-01-13 15:14:53 +00:00
jenkins-bot 1190ce584d Merge "Add missing mw-content-ltr/rtl class to diffElement" 2019-01-09 16:49:39 +00:00
Ed Sanders 74f6c4899c build: Update eslint-config-wikimedia to 0.10.0
Change-Id: I63a0ebf0b31a0d5d4e680a4e2a5a0be4850be165
2019-01-08 17:00:09 +00:00
jenkins-bot c0c0c3e6c1 Merge "Revert "Replace deprecated setIndicatorTitle with setTitle"" 2019-01-07 21:23:26 +00:00
Bartosz Dziewoński 8a286b06f0 Revert "Replace deprecated setIndicatorTitle with setTitle"
This reverts commit a7c98d88de.

Bug: T212975
Change-Id: Iffbbd36d0e91d02f50ce0407ed556f2a7d91a301
2019-01-07 21:08:35 +00:00
David Chan 0d362040bd Update VE core module to master (469c6340e)
New changes:
6515e03e1 ve.ce.Surface: Rearrange #findBlockSlug test to check other cases
cbfdc8570 Localisation updates from https://translatewiki.net.
708ba0557 Prevent block slugs from overlapping floated elements
3703fd66d Separate the concept of a document node and a root node in CSS

Bug: T211844
Change-Id: Ia86cf9b23e561d3c32601d41c1bc5a9824e9953c
2019-01-06 07:47:17 +08:00
Ed Sanders 3059251b5c Add missing mw-content-ltr/rtl class to diffElement
Change-Id: I9bd4fad6202ea3636256970b12d6c94f408d0bd8
2019-01-04 22:23:23 +00:00
Volker E a7c98d88de Replace deprecated setIndicatorTitle with setTitle
Bug: T76638
Change-Id: I6637cb21f01bd9e6b158d08671c1f29665e601e1
2019-01-03 11:52:31 -08:00
jenkins-bot 3d4fabd3de Merge "Move save error messages above save footer" 2019-01-03 16:55:40 +00:00
Ed Sanders 0f1a8b9eb9 Default originalGalleryGroupItems to empty array
Bug: T212809
Change-Id: I29e95be677d1d7fcc96bbf20efb7d5724d71b0de
2019-01-03 15:13:15 +00:00
James D. Forrester 3c293ea00c doc: Bump copyright year for 2019
Change-Id: I8991b97c980d4149f53eb5601036220ef3c0c440
2019-01-01 13:24:23 +00:00
jenkins-bot ccfcacf1fd Merge "ve.ui.MWGalleryDialog: Improve modification checks" 2018-12-30 22:49:34 +00:00
jenkins-bot 4c44d8b712 Merge "Use ve.targetLinksToNewWindow where possible" 2018-12-13 22:25:31 +00:00
Ed Sanders ad5b8f99ee Replace $( 'body' ) with $( document.body )
Better to use the actual element rather than a string selector.

Change-Id: I7d2c08cf1e3c6f14be5bf65ac040b7cdfdd8c594
2018-12-13 16:44:25 +00:00
Bartosz Dziewoński 22a80e430e Use ve.targetLinksToNewWindow where possible
Also, avoid parsing HTML manually in a few places.

Change-Id: I983a7e1917a3f0728173e9621c709d1c8c04f650
2018-12-12 23:19:11 +00:00
Ed Sanders f2ac575ee2 Move save error messages above save footer
Keeps the more important information higher up the page.

Bug: T72266
Change-Id: Iaf29a5190af5f72c88eb1bfdacce199cd046eee4
2018-12-12 12:53:55 +00:00
Ed Sanders a9aa4d6c15 Fix save dialog error message transition
Element must be hidden for $.slideDown to work.

Also speed up animation to OOUI default 250ms.

Change-Id: I0616c156f1893688abd80f9e47c1a88e9237d085
2018-12-12 12:20:24 +00:00
Volker E 3949712ec0 TransclusionDialog: Fix removeButton position
Change-Id: I886c64f51fe54483d24c6cfa925b698db7bf4e7e
2018-12-11 16:05:33 -08:00
jenkins-bot 7fe951e5e1 Merge "Exclude deprecated params from search list" 2018-12-11 21:01:56 +00:00
Ed Sanders ae1095d313 Exclude deprecated params from search list
Only show param info if the exact field name/alias is entered

Bug: T207897
Change-Id: Ic5be8b8cd7698b88ab89d771769f2e9ba407dfa9
2018-12-11 14:59:54 +00:00
Ed Sanders 85974b171c Bring back 'alert' indicator
Was removed upstream in OOUI, but we require it to
show that parameters are deprecated.

Resize to fit new 12x12 size for indicators.

Change-Id: I2356de0754a2ccf09b87b152f3023282f2e37f41
2018-12-11 14:25:48 +00:00
James D. Forrester 309d05cb38 build: Upgrade stylelint-config-wikimedia to 0.5.0 and make pass
Change-Id: I4c547757ed5a32ff98b1cf2670010db302bd8467
2018-12-03 13:06:59 -08:00
Bartosz Dziewoński a659c4eaea ve.ui.MWTransclusionDialog: Remove unneeded code re-setting insert label
This sets the label to be the same as the default value inherited from
ve.ui.MWTemplateDialog. Looks like it's no longer needed since change
Ia8fb88d3501ffa2c26add4419da5463a926f45d1 (2014).

Change-Id: I1dd40d2428c0221dfdc79e5f34e411b127624eb6
2018-11-29 23:10:56 +01:00
Ed Sanders b76e40b2f3 MWSaveDialog: Use ve.targetLinksToNewWindow
Change-Id: I1515901f05de1a7b1ef2aa3cb34f3043ab02acce
2018-11-28 15:44:52 +00:00
jenkins-bot 23c6c3b6e0 Merge "Use mw.Title.wantSignaturesNamespace" 2018-11-27 19:31:13 +00:00
Ed Sanders 0d54a62858 Use mw.Title.wantSignaturesNamespace
Change-Id: I60187f0a3eb9cf5d56a4fdaa3401b107758bd8e3
Depends-On: Ib2faa22c429096d545ddb829a6b4025427ad6071
2018-11-27 18:42:44 +00:00
Bartosz Dziewoński b983538038 ve.ui.MWSaveDialog: Improve handling of links in edit summary preview
* Pass the page title, so that links to section point to the current
  page rather than "API"
* Make all links open in a new window, instead of producing a warning
  about losing your changes

Bug: T208978
Change-Id: Ia1924e1af644ee41ebcaa1da40ca004cb72dcdaf
2018-11-27 02:39:47 +01:00
jenkins-bot 827e3661ec Merge "Track when block notices are shown on visual editor" 2018-11-26 12:35:21 +00:00
Ed Sanders f2a9ccd5bd Avoid HTML string parsing
Identified using https://github.com/wikimedia/eslint-plugin-jquery/pull/12

Change-Id: I138e018fdc037d688e055eacddfdc5bfc2cc5abe
2018-11-21 18:47:19 +00:00
Ed Sanders 1a3e8a958c build: Use eslint-config-wikimedia v0.9.0 and make pass
Change-Id: Idb57fc12e7822cf17e10dbb726480fc7de0ae199
2018-11-21 16:51:20 +00:00
Thalia 883e0c23a5 Track when block notices are shown on visual editor
When an edit notice is passed through from the API, allow
a type to be specified, and specify type 'block' if the
notice is a block notice.

If VisualEditorTrackBlockNotices config is true, track
when a message with type 'block' is shown.

Bug: T209633
Change-Id: If5fecc2c2c1c39f4b7245b9a215e1120c93b2b22
2018-11-21 11:22:50 +00:00
Bartosz Dziewoński 120788db59 ve.ui.MWTransclusionContentPage: Fix missing icon
It's missing here: https://phabricator.wikimedia.org/F27262533
We forgot this in 09800aa249 (in 2015).
Oops.

Change-Id: I0f1cda43c6566accf45c82a858158f15c2229f47
2018-11-20 04:04:25 +01:00
Bartosz Dziewoński 914e6905ed ve.ui.MWTemplateDialog: Unbreak the logic to enable/disable "Apply" button
I have moved this block of code to the wrong place in change
13675e4a81. As a result,
`this.loaded` was being set early, so the dialog was treating
all of the pre-existing transclusion parts as newly inserted,
and the "Apply" button was therefore always enabled.

Bug: T209661
Change-Id: I3c1b45f91738ab6fc4a6f6d61ae5bf925c9a1bb5
2018-11-16 01:08:29 +01:00
Bartosz Dziewoński 79e16e218f ve.ui.MWGalleryDialog: Improve modification checks
Undoing the changes to an image caption or alt text, or to the gallery
caption, or to the order of images, or removing a previously added
image, will now disable the "Apply" button again.

The following cases will *not* disable the button again, and it is not
feasible to implement them:
* Re-adding a previously removed image with identical options
* Changing any caption to the old value by other means than "Undo"
* Changing image caption or alt text to the old value after switching
  to a different image and then back

Bug: T206534
Change-Id: I7c19600e741211a6ba61837513497facbafc5cef
2018-11-15 22:16:26 +01:00
Bartosz Dziewoński a66f57643c ve.ui.MWGalleryDialog: Update "Apply" button when image added
Use 'change' event instead of 'reorder' to respond to this event.
This also covers removing images now, so delete that code.

Bug: T206534
Bug: T209451
Change-Id: I9eda383be2ca7f02b42814d43e6b42961b9b96e7
2018-11-15 20:56:39 +01:00
Thalia 70c3bc65d9 ve.ui.MWGalleryDialog: Improve how dialog actions are enabled
Enable the Apply changes/Done action if (i) the current contents
of the dialog inputs would change the gallery node or (ii) if the
user has interacted with inputs that alter the gallery caption or
images (including dragging/dropping or removing an image).

Bug: T206534
Change-Id: Ia6c1cc60d4f32ac66778e6973e2d400491f74128
2018-11-13 19:14:33 +00:00
Ed Sanders 2149de7bb0 Fix margin/padding on save dialog enter prompt
Non integer px values were resulting in scrollbars.

Bug: T208947
Change-Id: Ifeefbcc6068b086a3b351706827b34129b7d0227
2018-11-07 13:50:18 +00:00
jenkins-bot ef5ad0052a Merge "SaveDialog: Remove scrollable property from nested panels" 2018-11-05 20:46:22 +00:00
jenkins-bot 6ce7ac63d7 Merge "Fix padding around .ve-ui-mwParameterResultWidget-name(s)" 2018-11-05 18:27:43 +00:00
jenkins-bot 3f97176f7c Merge "Use upstream AbandonEditDialog" 2018-11-05 18:19:23 +00:00
Ed Sanders 381bc46130 Fix padding around .ve-ui-mwParameterResultWidget-name(s)
Bug: T208720
Change-Id: Iff8bbb702fdceab86d423a9f74aaebac8b41ebc3
2018-11-05 11:50:12 +00:00
Ed Sanders 956c28bf56 SaveDialog: Remove scrollable property from nested panels
Scrolling is handled by oo-ui-window-body.

Change-Id: If074b5de859b5a9dbad76d6715739e4d37e68c90
2018-11-02 20:32:23 +00:00
jenkins-bot 74a744327e Merge "ve.ui.MWMetaDialog: Wait for each page to set up (especially 'category')" 2018-11-01 23:02:59 +00:00
jenkins-bot 9ac196777a Merge "Blocked apply if redirect address is invalid" 2018-11-01 22:17:03 +00:00
jenkins-bot 490b1171e3 Merge "Update the styles for VisualEditor's "Format" dropdown" 2018-11-01 21:20:10 +00:00
flutters f847880292 Blocked apply if redirect address is invalid
Extracted extractValue to a separate method
Added checkValidRedirect method to MWSettingsPage
Added errors when redirect address is invalid
Added 1 error message to localisation strings
Added 1 TODO (more precise error messages)

Bug: T74971
Change-Id: I8bcf16e97e5211671759acdf0846243df2c03fc2
2018-11-01 21:20:01 +01:00
Bjornskjald 9490ff370c
Update the styles for VisualEditor's "Format" dropdown
Now when using the MonoBook skin, the text size for headings inside the dropdown is the same as their size on the page.

Bug: T72559
Change-Id: Ie0c30369021f8022b788730a6de90e44a288b13b
2018-11-01 20:40:56 +01:00
jenkins-bot 62c81905e6 Merge "Use changed ve.dm.Selection interface, if present" 2018-11-01 13:39:18 +00:00
jenkins-bot c1871d0216 Merge "ve.ui.MWMediaDialog: Open to the "Upload" tab when dropping/pasting file" 2018-11-01 11:48:46 +00:00
Ed Sanders 1f7b239fbb Reset scroll and tab state when closing dialogs
Bug: T205948
Depends-On: I993455b648b62b97164f55146c75a53da70c322b
Change-Id: I30336caf76e8ff4de4c4dbd3728211c9a58d724e
2018-11-01 04:11:28 +00:00
Bjornskjald daa1f6eb1e
Add using the article title as the default value for sorting in categories
This way users can rearrange/edit current name without exiting VE and/or copying it from somewhere else

Bug: T145339
Change-Id: I80690cdf344c2ccbdd8be486642afcf841f36c10
2018-10-31 19:01:02 +01:00
Ed Sanders eab2b728e9 Use upstream AbandonEditDialog
Bug: T192333
Depends-On: Ib581528363a3fe5461529515835bd7fb1ce66e56
Change-Id: I206366e096aafc02102357648b9f85f879479500
2018-10-31 13:38:31 +00:00
David Chan 2c3e33b759 Use changed ve.dm.Selection interface, if present
Bug: T208228
Change-Id: Ie2027c4d16e0ac591512e90dbdeea012f11ff875
2018-10-31 12:07:14 +08:00
James D. Forrester c36f3d2214 Revert "Update VE core submodule to master (02f5f0ca4)"
This reverts commit be628a5b7e.

87b20f9b Revert "[BREAKING CHANGE] Do not cache document model data in DM selections"

Change-Id: I47bbf757a4ad227346d3734f6e50d928a2de1409
2018-10-30 15:12:30 -07:00
Bartosz Dziewoński b5e430a3fc ve.ui.MWMetaDialog: Wait for each page to set up (especially 'category')
The initial value for the categories field is set asynchronously
(after potentially querying the MediaWiki API about the categories).

This caused the existing categories to "pop in" after the dialog was
opened (if you were on a slow network and it took more than 250ms to
query their information).

Additionally, it caused the "Apply" button to always be enabled if the 
page had any categories on it (since the categories field was still
empty when extractSettings() was executed).

Bug: T207719
Change-Id: I46475a1eead91707edb8efe8cb7221a734818e16
2018-10-30 20:55:43 +01:00
Bartosz Dziewoński f0d30ad59f ve.ui.MWMetaDialog: Consider category sortkeys when checking for changes
I forgot about them when reviewing 79253bb0c8.
Oops.

Bug: T207719
Change-Id: I11fd396883132a2dfb79ded6f04983fd5b7fbf61
2018-10-30 20:55:43 +01:00
Bartosz Dziewoński 52e54864b5 ve.ui.MWCategoryPopupWidget: Clear state after closing the popup
After removing a category, it would forever stay in the "removing" mode.

Bug: T208346
Change-Id: I8e8c00e16ea8d03cef5872d969e80e9dfaa84035
2018-10-30 20:55:43 +01:00
jenkins-bot afb49f7f1f Merge "ve.ui.MWMetaDialog: "Apply changes" is now only enabled after making changes" 2018-10-30 19:29:05 +00:00
flutters 79253bb0c8 ve.ui.MWMetaDialog: "Apply changes" is now only enabled after making changes
Added 5 methods for MetaDialog (documented in code comments)
extractSettings
compareSettings
getAllWidgets
assignEvents
updateActions

Added 2 fields to MetaDialog
oldSettings
widgetList

Apply changes button now is only enabled when there are new changes

Added getFieldsets method to all subpages

Bug: T207719
Change-Id: Id51acf6c754d9a2572811775d83983e6ab9395b7
2018-10-30 19:12:52 +00:00
jenkins-bot b2c529e499 Merge ".eslintrc: Enable and fix "max-statements-per-line": 1" 2018-10-30 15:46:05 +00:00
jenkins-bot 5f4c261f68 Merge "Update VE core submodule to master (02f5f0ca4)" 2018-10-30 15:45:05 +00:00
jenkins-bot cb568ec6a1 Merge "Analytics: track more things for Growth" 2018-10-30 15:41:40 +00:00
Ed Sanders be628a5b7e Update VE core submodule to master (02f5f0ca4)
New changes:
ccb4de82c [BREAKING CHANGE] Do not cache document model data in DM selections

Bug: T208228
Change-Id: I564399ad864751d1690077b45a06e098b5509a93
2018-10-30 08:11:02 -07:00
Bartosz Dziewoński af1a898380 ve.ui.MWMediaDialog: Open to the "Upload" tab when dropping/pasting file
Bug: T208286
Change-Id: I1f203b3a9b9401de22420e21f5553c78321cdbf8
2018-10-30 03:07:30 +01:00
Bartosz Dziewoński e7fd1ac847 .eslintrc: Enable and fix "max-statements-per-line": 1
I am surprised this was disabled. I investigated this after reviewing
some code by a new contributor which I was certain should have failed
the lint check, but passed.

Change-Id: I5b3c837b8ca3292f6e268b3922443bd9587eadbe
2018-10-30 00:19:16 +01:00
Ed Sanders 16548af330 Use data.cloneElements when converting pasted wikitext
To avoid duplicate about attributes.

Bug: T204007
Change-Id: I97a92512d7b114ed46bc48d3d416eebc86df13f7
2018-10-29 21:36:10 +00:00
David Lynch 803f476528 Analytics: track more things for Growth
Bug: T207802
Change-Id: I77652325ce7b9dda9c4f4a86c1d34421451cf025
2018-10-29 10:21:49 -05:00
Bartosz Dziewoński aa137ef2ad Move styles that are not theme-wide out of themes/
Reasons why these files should not be in a directory named "themes/":
* They are specific to MediaWiki skins, not OOUI themes
* They are specific to one module, rather than affecting many widgets

The new locations/filenames are consistent with other modules that
have skin-specific styles.

Note that we have one more themes/ directory elsewhere in this repo
(and another in VE core) and that is okay.

Bug: T96704
Change-Id: I70bb61e339aeccb3afea657f665785ceaa091777
2018-10-23 05:04:27 +02:00
jenkins-bot 54abc29ca1 Merge "Improve the gallery dialog layout for mobile" 2018-10-15 10:19:41 +00:00
Thalia 88875b1b8f Improve the gallery dialog layout for mobile
Bug: T203477
Change-Id: I0adc851b71362267d1d06d9a8b5483c1ee114c26
2018-10-12 16:58:48 +01:00
Volker E a5a3d829a9 Update user avatar icon and make use of OOUI's built-in
Bug: T123810
Change-Id: I3ed04d3037836b47706d9f7284eeb9668712bdcb
2018-10-10 18:34:27 -07:00
jenkins-bot 1afd5651ab Merge "Don't add body attribute to an extension node with an empty body" 2018-10-08 23:16:16 +00:00
Thalia 1d845aab1c Don't add body attribute to an extension node with an empty body
Map nodes with an empty body don't have a body property on their
'mw' attribute; so don't add one when checking if the node has
been modified.

Bug: T206473
Change-Id: I24fb8d5f012c417996c8d420fa25af9d13528d18
2018-10-08 17:29:58 +01:00
jenkins-bot 93523f5a15 Merge "Wrap editPanel & searchPanel in a StackLayout" 2018-10-08 16:17:54 +00:00
Ed Sanders d44e7fb3e8 Mobile target improvements
Change-Id: If55097a45ae812b712a74f41af350bfaa69f6135
2018-10-07 12:47:53 +01:00
Ed Sanders bb369a0b48 Wrap editPanel & searchPanel in a StackLayout
Change-Id: Ib069a41c7855647b1cd85546fc83b30d65b27443
2018-10-05 22:17:14 +01:00
jenkins-bot 95eb279cc6 Merge "ve.ui.MWGalleryDialog: Fix setting of expanded/scrollable panels" 2018-10-04 21:45:24 +00:00
jenkins-bot c43f1589d4 Merge "ve.ui.MWGalleryDialog: Switch innerMenuPanel/innerContentPanel" 2018-10-04 21:38:41 +00:00
Ed Sanders 485b257278 ve.ui.MWGalleryDialog: Fix setting of expanded/scrollable panels
There are 4 scrollable panels:
* Image list content
* Edit panel
* Search panel
* Options panel

Remove non-existent 'expandable' property.

Change-Id: Ia0d0a66be8a2bcb243a39ef632151d7fb99486ef
2018-10-04 21:23:10 +00:00
Ed Sanders 61cfce8c32 ve.ui.MWGalleryDialog: Switch innerMenuPanel/innerContentPanel
These two panels were named the wrong way around.

Also change 'inner' prefix to 'imageList'.

Change-Id: Ie1c3e2160c81b898795fb1fd4d0a027e8f06c4d4
2018-10-04 21:22:05 +00:00
jenkins-bot 0a4cee1cd6 Merge "Use correct OOUI hierarchy in gallery dialog" 2018-10-04 20:41:13 +00:00
Thalia f422ae2dcc Use correct OOUI hierarchy in gallery dialog
Make sure fieldset layouts contain field layouts. Also remove
meaningless parameter icons.

Bug: T205615
Change-Id: Ia104cd60ffa9f5d636bee5611f265a2bb5ac0051
2018-10-03 22:22:25 +01:00
Thalia a4f033a1e6 Use correct OOUI hierarchy in media dialog
In the "advanced settings" tab, make sure widgets are wrapped in
field layouts, then fieldset layouts.

Bug: T205615
Change-Id: I141f9954e482f9d5afd84bfa63384b90a2911d00
2018-10-03 21:54:41 +01:00
Thalia 56cd18e674 Refactor media dialog initialize method
Change-Id: Ida7b50a89ab454ba023334cd2203d2e2e6150931
2018-10-03 20:50:36 +01:00
Bartosz Dziewoński 7a18889ddd ve.ui.MWMediaDialog: Remove unused CSS
This rule was being overridden by a more specific rule from OOUI with
the selector `.oo-ui-fieldLayout.oo-ui-labelElement`. I don't think
the margin tweak would be useful.

Change-Id: If6321ba7ea1cfad83f65f137b2a440957bf2fea6
2018-10-02 00:02:03 +02:00
Thalia dc6e7027a8 Make extension dialog done action messages match other dialogs
Bug: T205807
Change-Id: Icd7e4fddcee8687d9c3dbbda144aa0989d659ac8
2018-09-30 21:18:18 +01:00
Bartosz Dziewoński 9cf5515ccb ve.ui.MWMediaDialog: Remove unused widget and messages
* visualeditor-dialog-media-size-originalsize-error
  Unused since 37b3c07b26.

* visualeditor-dialog-media-originaldimensions
  Never used (introduced in 4947420650).

Change-Id: I22f37b457cc6fbac03593fece003e97f4f5a2ccf
2018-09-27 18:31:20 +02:00
Thalia 9813d876e1 Enable the media dialog on mobile visual editor
Also make improvements to the layout, so that the dialog works
in desktop and mobile - most importantly, change from booklet
to index layout.

Bug: T190885
Bug: T118710
Change-Id: I1915d06c9b0e4b7907136e645f60be96e30cc287
2018-09-27 13:21:15 +01:00
Bartosz Dziewoński 42ebd10090 Correct some doc comments' syntax
I ran Closure Compiler over the codebase just to see what would happen,
and it printed some useful warnings.

Change-Id: I56d40b11e6d1dd7ce68a5e59da511f66e928647f
2018-09-26 14:49:52 +02:00
Ed Sanders 985a94777a Change type from 'frame' to 'thumb' when resizing
Bug: T204185
Change-Id: If40c70a074263b870aee4e5c87c3f4b5e98d0c4b
2018-09-24 15:31:58 +01:00
jenkins-bot f8ab6b188e Merge "ui.MWParameterPage: multiline inputs for line if newlines already present" 2018-09-13 12:02:47 +00:00
David Lynch d30e6925bf ui.MWParameterPage: multiline inputs for line if newlines already present
TemplateData doesn't always match up with the way the template is being used.
If a field has the `line` type, but is provided with newlines, we should avoid
mangling it by forcing it into a single-line field. As-is, any edit to the
template, even if the user only thinks they touched unrelated parameters,
would cause this.

Bug: T190191
Change-Id: I4f2a0b6c46532dcc268288cb209d0260b18f3ad7
2018-09-12 12:01:03 -05:00
Volker E 40b8c0da5c Replace deprecated 'advanced' by renamed to 'settings' icon
Bug: T190581
Change-Id: Ie598c703ca03adb98ca05ed3ab227aba2b5ab971
2018-09-07 19:46:12 -07:00
jenkins-bot 15df919bc1 Merge "Replace jQuery.grep with Array.prototype.filter" 2018-09-03 15:40:49 +00:00
jenkins-bot 3023ca8e90 Merge "Match width of template lookupMenu to input" 2018-09-03 15:40:44 +00:00
Ed Sanders 222ad828bd Don't assume commandGroup has a demote property set
Bug: T203282
Change-Id: Ic67dcfb2a473559d5e5d457072cda101844fe1e9
2018-08-31 22:20:36 +01:00
Ed Sanders 76d0b95af3 Re-order MWCommandHelpDialog and promote/demote insert tools
Change-Id: I3ac4e556e06e2ab899d8bc07ca79d847146952e6
Depends-On: Ic12bc1c3ac96a1feb79e277e65aaf2d29af4f03f
2018-08-29 10:51:00 +00:00
jenkins-bot bf9d3c1b06 Merge "Template dialog: Lazy resize multiline text inputs on first focus" 2018-08-27 20:43:38 +00:00
Ed Sanders 7bf56a3bd4 Update VE core submodule to master (e69a4a07c)
New changes:
3b62827b8 Remove negative margin from mobile context action buttons
694705894 Implement a simple notification system to fill in for mw.notify
461283560 Validate history start when applying/unapplying change

Bug: T202514
Change-Id: I203dc5101bc31988df2d3986da4300a318e5e889
2018-08-25 18:08:48 +01:00
petarpetkovic 30f099382a Replace jQuery.grep with Array.prototype.filter
Change-Id: I912fb68060d88b618cb2a2502417c1bccc5fecec
2018-08-25 00:11:30 +02:00
Ed Sanders 23ec1973d8 Match width of template lookupMenu to input
Bug: T196117
Change-Id: I58909b2f0138b512df03a8990d3c19cb0b184cad
2018-08-24 14:22:00 +01:00
Ed Sanders 0f81aae133 Template dialog: Lazy resize multiline text inputs on first focus
Bug: T134814
Bug: T200834
Change-Id: I3ec84ad01db1ed896c41ac8ef38cce8eddb0b8c2
2018-08-23 17:34:25 +01:00
Bartosz Dziewoński 1481f70b9e ve.ui.MWSettingsPage: Fix missing icon (renamed in OOUI)
Bug: T202101
Change-Id: I3ed199269e1f4452739628ae8d51a04fb911cc04
2018-08-21 00:26:01 +02:00
jenkins-bot 4d78073001 Merge "Replace 'settings' by renamed 'pageSettings' icon" 2018-08-17 00:28:05 +00:00
Volker E 07f58084cd Replace 'settings' by renamed 'pageSettings' icon
Bug: T190581
Change-Id: Ie0307ebc16d516463302773ef4226f2ba2dbd16c
2018-08-16 17:00:38 -07:00
Ed Sanders 20662e6dde Fix icons broken by OOUI update
Change-Id: I44edf30dc578787935c0052e8675bfde7fdd746d
2018-08-16 22:41:31 +01:00
Bartosz Dziewoński 39208b7d40 Update VE core submodule to master (2859146e5)
New changes:
fa5d35054 Only re-use session token if docname matches
58d7cd280 Localisation updates from https://translatewiki.net.
d0716d8e7 Update files generated with new l10n language 'my'
2cc7a4423 Create unit tests for sequences
873fdd01e Upstream horizontalRule sequence and fix command

Local changes:
* Register unit test file for sequences
* Remove duplicate horizontal rule sequence

Change-Id: Ibc65cf5c086428bb0d13c8e2f2de5819e1e23d43
2018-08-14 09:20:07 +02:00
jenkins-bot 083d436a4b Merge "Replace Bugzilla numbers with Phab numbers" 2018-08-09 16:03:32 +00:00
Ed Sanders 4ee09f75af Replace Bugzilla numbers with Phab numbers
Change-Id: I0e91d63b3872520b8f66002615967b2cfe235bf5
2018-08-09 15:11:27 +01:00
Ed Sanders efaf98d414 Wikitext surface getCaretPosition: Handle null ranges
Bug: T199484
Change-Id: Ica84a87c7cda7135c062f38d3f5b671d6dc3d049
2018-08-08 18:52:39 +00:00
jenkins-bot 9a3d759c00 Merge "Always generate empty wrapper paragraph inside image captions (slugs begone!)" 2018-08-05 18:23:05 +00:00
David Lynch 5dc09c5cd7 Add horizontal rule sequence (----)
Bug: T199925
Change-Id: I9f76e1e10ff8511252c3b9e5fbe7a9b94dade427
Depends-On: I7a41fa64f2b14ce58aca91feddc791b8648995d0
Depends-On: Ifb7bd4f75aeba38f3ae63fe6ba81cf7fe086461a
2018-08-01 19:28:14 +00:00
Bartosz Dziewoński 86f2057c81 Always generate empty wrapper paragraph inside image captions (slugs begone!)
While all of the following are valid in the model:

1. <mwBlockImage></mwBlockImage>
   Image with no caption. Must use the media dialog to insert one.
2. <mwBlockImage><mwImageCaption></mwImageCaption></mwBlockImage>
   Image with empty caption. There is a slug to insert a paragraph.
3. <mwBlockImage><mwImageCaption><paragraph></paragraph></mwImageCaption></mwBlockImage>
   Image with caption with empty paragraph. Nice and intuitive!

(Same for <mwGalleryImage> / <mwGalleryImageCaption>.)

The third option is the most convenient for the user. We should always
generate that when converting documents from HTML and from the editing
tools (MWGalleryDialog, MWMediaDialog/MWImageModel).

Previously, the editing tools generated option 2 if no caption text
was entered, and the converter generated option 2 if there was no
caption node or if it was empty. Curiously, option 1 was never used.

Wikitext for manual testing:

```
[[File:Foo.png|thumb]]
[[File:Foo.png|thumb|]]
[[File:Foo.png|thumb|Caption]]

<gallery mode="packed">
File:Foo.png
File:Foo.png|
File:Foo.png|Caption
</gallery>
```

Bug: T200387
Change-Id: Ie82fb339f6bd8ae1b289235bf5402490722d9a7c
2018-08-01 05:40:57 +02:00
petarpetkovic 50d556e8d2 Make link annotations more flexible
* When ve.ui.MWLinkAnnotationInspector is being initialized,
internal and external annotation inspectors are hardcoded to
new ve.ui.MWInternalLinkAnnotationWidget and
new ve.ui.MWExternalLinkAnnotationWidget. Make this creation
more flexible by creating these inspectors through a method,
which inheriting classes can override.
* In ve.ui.MWLinkAnnotationInspector.getAnnotationFromFragment,
factor out the creation of link annotations, so overriding
classes have the ability to provide different internal and
external annotations.
* In newFromTitle, static method of MWInternalLinkAnnotation,
creation of `element` isn't flexible for reusability with
slight changes to attributes passed to the constructor. By
factoring out the creation of attributes, inheriting classes
can reuse the existing structure and alter the attributes if
needed.

Bug: T195064
Change-Id: I2037464a7be77783837e9810691c8e372c8197c6
2018-07-26 15:12:19 +02:00
Bartosz Dziewoński 668ce071fa ve.ui.MWTemplateDialog: Prevent focus changes in the setup process
This is similar to the hack in ve.ui.MWMetaDialog, except uglier :(
We already explicitly focus the right field in the ready process.

I am not really sure why the focus change causes the issue, but
preventing it definitely fixes it. It would make sense if we changed
the value of the field after focussing it (as setValue() restores the
validity flag cleared by onFocus()), but we don't seem to do it.

Bug: T199838
Change-Id: Ia602551ee0b0885cefbd4cb2fc00d569ff42da67
2018-07-19 01:43:31 +02:00
Bartosz Dziewoński fc91623b94 ve.ui.MWMediaDialog: Fix confusion between #getSetupProcess and #getReadyProcess
Follow-up to 13675e4a81.

Bug: T185944
Bug: T199841
Change-Id: I2bf08bc0a3684dbfdb9574ea6df0352e8d9d8fd7
2018-07-18 06:30:46 +02:00
Bartosz Dziewoński 13675e4a81 Fix confusion between #getSetupProcess and #getReadyProcess
The #getReadyProcess method should be used pretty much only to focus
a field inside the dialog after it is opened. It runs after the window
opening animation finishes, so if you add stuff to the window here,
that will be visibly delayed.

The #getSetupProcess method should be used pretty much for everything
else that depends on the opening `data`. It runs before the window
opening animation, so if you add stuff to the window here, it will be
visible while animating it.

Bug: T185944
Change-Id: I71ea5b6e1e1947c1cf8fd749100e854953a8ef3c
2018-07-11 23:47:55 +02:00
Ed Sanders f80b029444 Fix doc in GalleryDialog and add todo
Change-Id: I4e1ad8ec3d7a1c85a600bf1dafc449054c115203
2018-07-09 22:03:52 +01:00
James D. Forrester 3c6ca93b92 build: Enable and make pass no-prototype-builtins
Including a spectacular whoops in MWGalleryDialog.

Change-Id: Id9863f6dc3701cb0df6684380fa5ecac4526d37d
2018-07-06 10:58:18 -07:00
James D. Forrester ba3e5a3690 MWWelcomeDialog: Shrink the background image by 1/3 so the CTAs show
Bug: T191095
Change-Id: Id1fd76a37d02a9572cc29909409cd53e28ce0bb9
2018-07-05 20:04:57 +02:00
Bartosz Dziewoński b4456cc482 MWWelcomeDialog: Refactor splash image to allow resizing it
We relied on some white space baked into the background-image
to "reserve the space" for the text. If we tried to make the image
smnaller, the text would start overlapping it.

Remove 100px of vertical white space from the image files, adjust
the styles so that text is displayed below the image rather than
overlapping it.

Bug: T191095
Change-Id: I2f19128a2044b3505cdea93c3f587fe62553071d
2018-07-05 20:04:57 +02:00
jenkins-bot e2132eeff5 Merge "ve.ui.MWTemplatePlaceholderPage: Avoid Firefox rendering issue" 2018-07-03 18:57:11 +00:00
Bartosz Dziewoński 5827b17ad0 ve.ui.MWTemplatePlaceholderPage: Avoid Firefox rendering issue
There is something about ActionFieldLayouts with `align: 'left'` (the
default) and no label that causes Firefox to render them differently
than we expect. I am not sure if the bug is in OOUI or Firefox, but it
is easily avoided by just using `align: 'top'` instead (it looks the
same, since there is no label, and it avoids the issue).

Bug: T198274
Change-Id: Ic6077e576b504e7a0cd761c8bac24d4079ae6702
2018-07-03 20:13:28 +02:00
jenkins-bot 43d5e767e8 Merge "De-duplicate and fix updating of file link in media dialog" 2018-07-03 17:27:37 +00:00
Ed Sanders 6bf9210abe De-duplicate and fix updating of file link in media dialog
Bug: T198565
Change-Id: I7d06d3316b317fb85edb9461080f5f2e5cd439fe
2018-07-03 17:59:43 +01:00
Ed Sanders 452545fa2e Fix window target when opening feedbackUrl
'_new' should be '_blank', but '_blank' is also the
default, so just remove the argument.

Change-Id: I8f922b835b2bc14e5641e0ab29bf002b32301490
2018-07-03 17:36:35 +01:00
David Lynch 56a3aa9f01 Update link contexts with label info from core
Bug: T124305
Depends-On: Iad48fb559f3dae16cc0013791b79ec71308a1f9f
Change-Id: I341a15199bddb45e2cd8391b9b00c86e1c3a193e
2018-06-26 21:16:53 +00:00
Bartosz Dziewoński b51707d96f ve.ui.MWTemplateDialog: Prevent scrolling to top after removing a parameter
Bug: T180151
Change-Id: I063c53fa572e998f5b34fc895d02fe1a74026c6e
2018-06-21 20:45:06 +02:00
jenkins-bot a6ae8424f7 Merge "Use WindowAction to open the wikitext paste dialog" 2018-06-15 15:46:44 +00:00
jenkins-bot e8c6b90a72 Merge "MWLanguageVariantInspector: Use 'title' config option instead of 'iconTitle'" 2018-06-14 22:51:41 +00:00
Bartosz Dziewoński 4ee35de02a MWLanguageVariantInspector: Use 'title' config option instead of 'iconTitle'
This way the tooltip is shown on the entire button, rather than only
on the icon. One should only use 'iconTitle' to display a different
tooltip on the icon than on the rest of the widget.

I think this was caused by bad documentation in OOUI, which I'm fixing
in I967d9b78014b3754720e80da9c4785124fffc2ba.

Change-Id: I8cc99bcfca56b80a8c8aff609ba48eb3f9c5ed7f
2018-06-14 22:45:18 +00:00
Ed Sanders b340f526e3 Use WindowAction to open the wikitext paste dialog
This adds in missing functionality, such as deactivating
the surface selection while the dialog is open.

Change-Id: I0d8652a989504a35e5c235224b0ef924b6dcbeed
2018-06-13 13:28:15 +01:00
jenkins-bot 17d013f520 Merge "Never store ve.debounce in prototype" 2018-06-10 22:36:23 +00:00
Ed Sanders 6cc83781a3 Never store ve.debounce in prototype
This essentially creates a static debouncer, so if you have
multiple instances calling that method at the same time, only
one of them will fire.

Change-Id: I4c257b557e87f5638b459811655a14b8625de2e3
2018-06-10 16:00:37 +01:00
Bartosz Dziewoński 6840ac4dd1 ve.ui.MWSaveDialog: Remove unnecessary margin after last checkbox
Patch proposed on T196375 by Jack_who_built_the_house.

Bug: T196375
Change-Id: I30548650eab3d14e7c0de29c954ededcfa44648a
2018-06-08 09:57:01 +00:00
David Lynch d3fd979d3b Paste conversion dialog shouldn't be escapable
It doesn't have a "cancel and do nothing" route to fall back on, so pressing
escape does the non-progressive action, which is to paste-as-wikitext rather
than paste-as-plaintext. Neither of these is really an intuitive outcome.

Change-Id: I786b6fc87e3cdf3bb50898a070a15a353a242848
2018-06-04 11:16:19 -05:00
jenkins-bot 6c90442326 Merge "ce.MWWikitextSurface: ask on paste about wikitext conversion" 2018-05-24 17:21:07 +00:00
David Lynch 4d263afaa2 ce.MWWikitextSurface: ask on paste about wikitext conversion
Throw a dialog box up to ask whether to convert something with formatting to
wikitext, or downconvert it to plain text.

This logically depends on Ie9aaaa59e9dfa138d394051fe491573253df1805.

Bug: T190079
Change-Id: I6afbbe303d1506426109e75c95f6be546ec48536
Depends-On: Ie9aaaa59e9dfa138d394051fe491573253df1805
2018-05-23 08:08:22 -05:00
Ed Sanders ccb766e933 MWSaveDialog: Fix typo in no-categories branch
Bug: T195323
Change-Id: I7d22b6cad363a240660563554e4578621f7966d0
2018-05-23 11:18:54 +01:00
David Lynch 110fdf1fcb MWSaveDialog: Display of limit behavior unified with old editor
T190570 (I54d75ab6061de0de79b7a8112eb859a4c8a5e22a) changed old editor's
display of the limit to only show when there's <= 99 remaining. Bring same
behavior into this dialog.

Bug: T194458
Change-Id: I7f6fd7ee95348c39b107131a7e297d158a07c00e
2018-05-19 19:09:57 +02:00
James D. Forrester 9e52ece21f Update VE core submodule to master (1d341ca7d)
New changes:
3a6d868bf Separate (Comment/Link)InspectorTools into separate files
cb5d36e32 Localisation updates from https://translatewiki.net.
c75491b16 build: Extend 'svgmin' options and amend
ddef270d9 Genericise activeLink behaviour to any annotation
d13d44e12 Create simple comment annotation type for rebaser.
7e49a1f33 Add getters for author properties
1d341ca7d Follow-up I16942623d: Only filter inactive models if they are 'canBeActive'

Local changes:
Change .ve-ce-linkAnnotation-active > .ve-ce-linkAnnotation.ve-ce-annotation-active

Bug: T185596
Change-Id: I2a49315d01aa075373f9b5f0d8802a7e7dd4dca3
2018-05-18 17:07:28 +02:00
Ed Sanders 70cd11e32d CategoriesPage: Remove unnecessary input widget width
Change-Id: I7fa38b866d0489de612b0ed08cf0b9eb3b9b71af
2018-05-16 18:04:08 +01:00
jenkins-bot cf0fd3e673 Merge "Fix typo in API call for version number help" 2018-05-16 09:37:26 +00:00
Ed Sanders 63c698823c Fix typo in API call for version number help
Change-Id: Idcea9d74e27e33930d98d2b896ee08012e46e8f3
2018-05-16 10:23:39 +01:00
jenkins-bot 4ca3f1661d Merge "ArticleTarget: Change rendering of category preview" 2018-05-15 13:28:57 +00:00
David Lynch 5d19272aa1 ArticleTarget: Change rendering of category preview
Just generate the standard wiki skin markup for categories. Adjust linkcache to always know
whether links are hidden categories. (It previously knew *sometimes*,
depending on whether a MWCategoryWidget had interacted with that category.)

Make the save dialog preview use the same method as the bottom-of-editor preview.

Bug: T194092
Change-Id: I37fea15eaef0a5847f27ce41dd92370a4bf353b6
2018-05-13 16:40:59 -05:00
Ed Sanders 60e129062a Add missing mw-content-(dir) class to MWPreviewElement
Also allow preview elements to existing with an mw-body-content
area withouth the font size being applied twice.

Depends-On: Ibbf989dcebf2d21fd2ac481f17062f366ff29e41
Change-Id: I284bcd5dd25cdbb883427ebacb41af1bbf50b60f
2018-05-11 16:59:12 +00:00
jenkins-bot 93c1f0d9b4 Merge "Create an MWSurface and move langChange handling there" 2018-05-07 15:52:08 +00:00
jenkins-bot 95d831c2de Merge "Create getters for localised APIs (getContentApi/getLocalApi)" 2018-05-07 15:51:45 +00:00
jenkins-bot 9a79c10fc2 Merge "Remove unused overrides in internal link annotation inspector" 2018-05-07 15:41:33 +00:00
jenkins-bot 25d2eb2848 Merge "Use ve.resolveUrl in MediaContext/Dialog" 2018-05-07 15:28:52 +00:00
Ed Sanders 8bddec44e3 Create an MWSurface and move langChange handling there
Change-Id: I8a75b5f431f454b66441fc301b90e5f28636612e
2018-05-07 11:53:23 +01:00
Ed Sanders 478b0bcbb9 Create getters for localised APIs (getContentApi/getLocalApi)
Pass through the current document when available, otherwise
assume the current surface's document.

Also add a getter for getPageName, so that can vary based
on the target document.

Bug: T193856
Change-Id: Ifdc951fdc6a43b924d102e3fcd7e59e52023757b
2018-05-05 14:32:55 +01:00
Ed Sanders b54f427078 Remove unused overrides in internal link annotation inspector
Removes an unused call to mw.util.getUrl.

Change-Id: I3988311b7160af628ea4ceeafcfdc3cc0a7a3774
2018-05-05 14:32:55 +01:00
Ed Sanders 3b4923fa74 Use ve.resolveUrl in MediaContext/Dialog
Change-Id: I53e28d6cec13ac77718ba3cae425c4c43c96e174
2018-05-05 14:04:15 +01:00
Ed Sanders ebcf1e1151 Check imageModel exists in #checkChanged
Bug: T193879
Change-Id: Ic6eda7a056e5207042b575609b9da1869e3a759e
2018-05-04 14:52:03 +01:00
Ed Sanders 1bd430c9d1 Convert most uses of isForClipboard to doesModeNeedRendering
Depends-On: I0f1b90056e9d1a4fa0e188700604709297593924
Change-Id: I6fa1cde51ffc859b57ab557e3ddf8a76d92bf94f
2018-04-30 16:10:27 +00:00
Ed Sanders 8fdc1f7085 Follow-up Iea7ad832: Fix context in MWPopupTool
Bug: T193043
Change-Id: I2b035a50543093988a291ea8c8958a3a7cc9e7ba
2018-04-29 21:45:10 +01:00
Bartosz Dziewoński e1635fdc52 Update custom styles for format menu after OOUI changes
Bug: T193098
Change-Id: I00d28f16b03a31ecda1dc57050945e98e8eb37e8
2018-04-26 01:48:28 +02:00
jenkins-bot ec8be1bfa1 Merge "Add a plain text paste transfer handler for source mode" 2018-04-23 21:00:41 +00:00
David Lynch 6f8e58fa8a Add a plain text paste transfer handler for source mode
This allows plain text pasting into source mode without interfering with the
possible-conversion that should happen when it's pasted into visual mode.

Bug: T190590
Bug: T192320
Depends-On: I47a5bf321fb64d4a631ec6fd728bee269d4cdae0
Change-Id: I71db368c683a6a846569d7627f4cc73e907a61d2
2018-04-22 12:52:56 -05:00
jenkins-bot 9ecd73f771 Merge "NWE: Fix selection when applying async links" 2018-04-19 16:01:22 +00:00
Ed Sanders 53e758a427 NWE: Fix selection when applying async links
Change-Id: I31dc6f2d9fcd563bdbd8245bda6336d317aa512a
2018-04-17 16:33:23 +00:00
hunter be5289689f Add label to Options dialog > Categories input fields
Add label to indicate the function of the input field underneath the
categories label in the options dialog. The <label> element is
preferred for screen readers and users with visual disabilities.

Bug: T146966
Change-Id: Ib300ca7a1fd55d320c1a1a8c8c7fd01ab8b0b9c5
2018-04-17 06:28:32 +00:00
Ed Sanders 2496fcefb0 Fix layout of welcome dialog on smaller screens
Bug: T191095
Change-Id: Ic329fe22a6758fe58ec56dc3b5a293b83d9b38fb
2018-04-12 23:15:15 +01:00
Ed Sanders 3682ab070d mw.Target: Remove .protectedClasses, only used in ArticleTarget
Also fix documentation

Change-Id: I3fa93dd95c3ef47f649d3f92a38e14750a411333
2018-04-12 15:38:23 +00:00
jenkins-bot b7abb924c2 Merge "Abstract API calls to 'parsefragment'" 2018-04-09 16:13:27 +00:00
Ed Sanders 924f9ec730 Use 'imageBroken' icon for missing images' contextItem
Change-Id: I3ba8f34a8ff03c949c18df102e7334449abb6e27
2018-04-06 15:32:55 +01:00
Ed Sanders 16211cdc09 Abstract API calls to 'parsefragment'
Change-Id: Id0be3207219a6d93cebff2b6b5061cd24898d5cb
2018-04-06 13:49:16 +01:00
David Lynch c4c5582121 MWTransclusionDialog: remove extra padding from framesets
Bug: T191234
Change-Id: I6cfec45607f2dd428347879c134dbe286397f8b6
2018-04-05 11:30:05 -05:00
jenkins-bot 7b1d248ec1 Merge "ve.ui.MWMediaDialog: Use dropdown for image type selector" 2018-04-05 11:02:22 +00:00
jenkins-bot f3ba1a780f Merge "ve.ui.MWParameterPage: Pass $overlay to PopupButtonWidget" 2018-04-04 21:36:39 +00:00
jenkins-bot f5b0d655cf Merge "FeedbackTool: Add the ability to vary feedback page for source mode" 2018-04-04 21:24:09 +00:00
Bartosz Dziewoński 0cf02e0155 ve.ui.MWParameterPage: Pass $overlay to PopupButtonWidget
Also, pass $overlay to all PageLayout subclasses used in ve.ui.MWMetaDialog
and ve.ui.MWTemplateDialog/ve.ui.MWTransclusionDialog, for consistency.

Bug: T191395
Change-Id: Ib7ed2e2c04ff7930be1161bd2b981180ee59557a
2018-04-04 22:45:13 +02:00
James D. Forrester 31730cc5b3 FeedbackTool: Add the ability to vary feedback page for source mode
Wikis with a local link over-ride configured will need to do so here
for the new message `visualeditor-sourcefeedback-link`; wikis with a
remote link configured will need to update their configuration ahead
of this being deployed, setting $wgVisualEditorSourceFeedbackTitle.

Bug: T157953
Change-Id: Iea7ad8328b03f69e01d7c67ca1ddbb7ae7906288
2018-04-04 18:11:10 +00:00
Ed Sanders b5be51db7e Use cog icon for options
Bug: T191099
Change-Id: I68638dcfa2531ce01843ae3517d9245deb716769
2018-04-04 13:22:00 +01:00
jenkins-bot f04563faba Merge "Show redirect link in preview" 2018-04-03 19:01:02 +00:00
Ed Sanders 36e0f8988d Show redirect link in preview
Bug: T191128
Change-Id: I08fc03dd869e6b074a24698f9037380b26e3dd2c
2018-04-02 17:34:51 +01:00
jenkins-bot 45afe665c1 Merge "Visual diffs in source mode section edits" 2018-04-02 16:05:34 +00:00
jenkins-bot 476a590c3c Merge "Parse title in show preview using hack" 2018-03-27 20:29:35 +00:00
jenkins-bot 5b36d88eae Merge "Make edit notices popup wider (320 -> 380)" 2018-03-27 17:24:58 +00:00
Ed Sanders d3e5385944 Visual diffs in source mode section edits
Bug: T190845
Change-Id: I938352eec8b49f27784c12ddea72bbe69fdd6cb2
2018-03-27 17:53:54 +01:00
Esanders 3cd35b95e9 Make edit notices popup wider (320 -> 380)
Bug: T184379
Change-Id: Ic68f5e117bb0057bb5fa8b83834707abfbadb3b3
2018-03-27 14:16:25 +00:00
Bartosz Dziewoński b8bcba8cbe ve.ui.MWMediaDialog: Use dropdown for image type selector
The dialog is not wide enough to fit four buttons side-by-side.

Bug: T74187
Change-Id: I6a4e5692b5f1b2ca9bb78d4e6c6103036f371a52
2018-03-27 14:40:39 +02:00
jenkins-bot fe625aa5ea Merge "ve.ui.MWPopupTool: Allow labels of buttons in help menu to wrap" 2018-03-27 11:55:16 +00:00
jenkins-bot 6deaeffa95 Merge "Revert "Make edit notices popup wider (320 -> 450)"" 2018-03-27 11:30:12 +00:00
Bartosz Dziewoński 4fd4a5259b ve.ui.MWPopupTool: Allow labels of buttons in help menu to wrap
Bug: T190796
Change-Id: I7889119a60133100825d7db4a02e6d0a7c797eba
2018-03-27 12:31:24 +02:00
Bartosz Dziewoński a0dacccd83 Revert "Make edit notices popup wider (320 -> 450)"
This reverts commit d5a61eb95d.

Bug: T184379
Change-Id: I0198c6d1faf1474ea0faab7e05ec95cfb43c9206
2018-03-27 10:13:45 +00:00
Volker E e837512cc6 Replace deprecated 'comment' with 'speechBubble' icon
Bug: T183600
Change-Id: Iebebba61a099193051cffc11f41e366bdb1c19e1
2018-03-26 21:14:35 -07:00
James D. Forrester fe525e3bcc *Dialog: Don't set to small size, which is the default
Change-Id: I3b7a19acd0ee5112d104257bdc1e9ff0e9b4ff24
2018-03-26 15:02:11 -07:00
jenkins-bot dc3e192179 Merge "Make edit notices popup wider (320 -> 450)" 2018-03-26 21:31:07 +00:00
jenkins-bot 44720da389 Merge "*Dialog: Drop verbose option, ignored since v0.20.0" 2018-03-26 16:18:49 +00:00
James D. Forrester 9e01553f0b *Dialog: Drop verbose option, ignored since v0.20.0
Change-Id: If0bc7946b67aaae97886e8dbd956e9338b0e0b40
2018-03-26 08:55:03 -07:00
Ed Sanders 95fc150a4f Remove unused static overrides from dialog
Change-Id: I31f0310baa5c438b17f16749368102d8cede22db
2018-03-26 15:49:04 +01:00
jenkins-bot 966e46ac80 Merge "Fix the image sizes in ve.ui.MWInternalLinkContextItem" 2018-03-23 05:36:51 +00:00
Ed Sanders f7b0118de0 Fix layout of media info fields
Bug: T190468
Change-Id: Ic81781318a9003064e7d8f283901d70a5bae6ebc
2018-03-22 22:15:52 +00:00
jenkins-bot 511dfc41ca Merge "Make save commands only executable when article is saveable" 2018-03-22 17:03:37 +00:00
Ed Sanders 8a974f25e6 Fix the image sizes in ve.ui.MWInternalLinkContextItem
Remove the image size styles from the class
.ve-ui-mwInternalLinkContextItem-hasImage too

Bug: T97631
Follow up: I84edeec38ecfb90f5d53
Change-Id: I39937bf4ba12f7047545b187c54a1c5fae157e4a
2018-03-22 17:03:19 +00:00
Ed Sanders 3a56d42901 Make save commands only executable when article is saveable
Change-Id: Ia22fbae45201254867bf6e8920aff944ba9276b9
2018-03-22 10:44:30 -05:00
jenkins-bot bfd4a5870f Merge "Use single-line editor for image captions" 2018-03-22 01:32:09 +00:00
jenkins-bot 663b9f9a35 Merge "Remove special font-size treatment following-up UI unified in 14px base" 2018-03-21 21:07:16 +00:00
jenkins-bot e03f3e2c73 Merge "Update icons for new 20px grid" 2018-03-21 20:59:23 +00:00
jenkins-bot cf9ddabe23 Merge "Disable visual diffs on source mode section edits" 2018-03-20 23:02:33 +00:00
Ed Sanders 8bfb270168 Use single-line editor for image captions
Depends-On: I2be081c766fab41b152d03b43e7e936e3f636166
Change-Id: Ifcdc34826ad81e96c22fd68ceb637107cde24d4a
2018-03-20 22:51:27 +00:00
Volker E d44bb0bc1b Remove special font-size treatment following-up UI unified in 14px base
Removing `0.8em` VE special base `font-size` for UI as we're unifying
OOUI interfaces to `14px` equals to `0.875em` at user agent default size.

Bug: T97631
Depends-on: I693d168d2ccf2babbcfe8952af3e1c262aa97773
Change-Id: I84edeec38ecfb90f5d53199f3b26fc3f83ab0611
2018-03-20 20:03:19 +00:00
Bartosz Dziewoński d80099dad1 Update icons for new 20px grid
Set viewBox to "2 2 20 20" to trim 2px off each side of our
existing 24px icons, therefore aligning them to the new 20px
grid. All of them had been drawn with large margins, so none
of the graphic is lost.

Bug: T177432
Bug: T190151
Change-Id: I23a6daa5dc2d4a9afc50f275da5df370d2319277
2018-03-20 20:03:11 +00:00
jenkins-bot 9d004c4d35 Merge "Use OOUI 'markup' icon instead of local 'alienextension'" 2018-03-20 19:50:55 +00:00
jenkins-bot cea546b502 Merge "MediaContext: Link filename to file page" 2018-03-20 18:41:09 +00:00
jenkins-bot bb34d650c0 Merge "Improve media context item to show Image/Video/Audio instead of 'Media'" 2018-03-20 18:38:53 +00:00
Ed Sanders 10792e179f MediaContext: Link filename to file page
Change-Id: Ice3fdd40cd1f7b8ba2841ac326babc7f24a2635e
2018-03-20 17:45:50 +00:00
Ed Sanders c245dd9ca0 Improve media context item to show Image/Video/Audio instead of 'Media'
Change-Id: Ie3b7ec62483e725d3ce073095a2a958c1db930d5
2018-03-20 17:45:48 +00:00
Ed Sanders 78ba8bbe3c Use OOUI 'markup' icon instead of local 'alienextension'
Change-Id: Id15596ab0013cb2078480bdb4dde25ef8e7ae50b
2018-03-20 17:27:54 +00:00
Bartosz Dziewoński c99b4a0ad5 ve.ui.Icons: Add missing global "invert" variant
Bug: T190166
Change-Id: I28cc22d49881a25973b31e5e112130fb21cf4a37
2018-03-20 16:36:18 +01:00
jenkins-bot 39a8c9e14b Merge "Restrict width of diff feedback button mobile" 2018-03-20 02:09:11 +00:00
jenkins-bot e23dd5fb6d Merge "Make gallery dialog work with native gallery implementation" 2018-03-19 23:39:00 +00:00
jenkins-bot 5b82bb180d Merge "Fix title preview when not overridden" 2018-03-19 23:24:21 +00:00
Thalia 12cc56400b Make gallery dialog work with native gallery implementation
Updates the model and re-renders the gallery.

Bug: T150621
Bug: T149602
Bug: T149596
Change-Id: I1e93c3af02eeeff1fcdaa5549cccc61ea755ee04
2018-03-19 23:55:17 +01:00
Ed Sanders 5e1c024d33 Parse title in show preview using hack
Really Parsoid should do this for us.

Bug: T189540
Change-Id: Ie3b5d458e7e6611565e5852f351d715a48be521a
2018-03-19 21:58:33 +00:00
Ed Sanders 81f3c2df38 Fix title preview when not overridden
Change-Id: I555b057d8f20704c0676646afd03c78ad3353f23
2018-03-19 21:56:54 +00:00
jenkins-bot 48028e84b9 Merge "Allow ve.ui.MWCategoryInputWidget to use different API" 2018-03-19 21:29:58 +00:00
petarpetkovic fe8b510232 Allow ve.ui.MWCategoryInputWidget to use different API
* Provide config option to specify which API
ve.ui.MWCategoryInputWidget will use.
* To be used in Iec79e687eff8c63434054282650c97cc882f348d

Change-Id: Ib8869d4facf8b3210b309200d944fad4508d7eee
2018-03-19 16:50:27 +01:00
Ed Sanders d0eafd6b8d Restrict width of diff feedback button mobile
Change-Id: Ia4ceb73efb76d7714102619fce9cd87cf34216f9
2018-03-14 14:32:37 +00:00
Ed Sanders c6653b6a2d Show page title in preview
Bug: T189540
Change-Id: Idc203f7fcafcf944108938168b492e90091e3255
2018-03-13 10:15:16 +00:00
jenkins-bot 540cb864ca Merge "ve.ui.MWGalleryDialog: Dedupe code for saving properties of each image" 2018-03-12 12:28:10 +00:00
Ed Sanders 4fc2b32b17 Disable visual diffs on source mode section edits
Bug: T183938
Change-Id: I0d03c47e9b4c30760b7d3bd7bf90d91e79eb8569
2018-03-10 22:54:54 +00:00
Bartosz Dziewoński 3c676013f8 ve.ui.MWGalleryDialog: Dedupe code for saving properties of each image
Currently this only handles the caption, but there will be more.

Change-Id: Ia8a25de89375d0ba873f4891b053c7aceab15534
2018-03-10 17:16:16 +00:00
David Lynch 4e10d5b975 Update rel attribute checks to be aware of multiple rel values
Various checks didn't think a rel attribute could contain multiple values.
Mostly they don't, but to play it safe let's adjust the checks.

Change-Id: I29823b7c8c65ef6b2ff41ce9a801840000972e9c
Depends-On: I33a456351ab025d0c81cfb1a1577d5a2ae9df51a
2018-03-08 14:34:56 -06:00
Ed Sanders 43ea4c2b51 Fix infinite recursion in positionDiffElement
updateSize eventually calls setDimensions, which calls
positionDiffElement, so protect against infinite recursion.

Change-Id: I07992f337394712000e6e12c637c6e1442869722
2018-03-03 18:47:08 +00:00
Ed Sanders d5a61eb95d Make edit notices popup wider (320 -> 450)
Bug: T184379
Change-Id: Id2df8f8d162db3389206666fa07ea4cc0be8cdec
2018-03-02 13:29:54 +00:00
Bartosz Dziewo??ski dbfe6c0b5a ve.ui.MWSaveDialog: Allow limiting comment length by characters rather than bytes
Bug: T185948
Change-Id: I882d69beb1cd442868c8d73988f5b3a2bbb084bc
2018-02-27 22:35:08 +01:00
Bartosz Dziewoński 3d422bac2a ve.ui.MWGalleryDialog: Handle galleries with 0 items
We still don't allow inserting such galleries, but we can handle them
in existing content.

Bug: T75230
Change-Id: I5d7350f00871ac295b0ebc00a633b44570347d85
2018-02-21 22:11:41 +01:00
David Lynch bd64b58071 MWTemplateTitleInputWidget: recover gracefully if TemplateData not present
Bug: T187917
Change-Id: Ica0c853e1a7bc908651260df115d59d1939a7939
2018-02-21 11:53:56 -06:00
Ed Sanders ee5b80aeee Avoid jQuery.parseHTML
Bug: T187713
Change-Id: Ic156d6fb670fa2f79cf3c1d5fe0c6272b53b6440
2018-02-19 15:41:20 +00:00
Ed Sanders 33858c6818 MWSaveDialog: Another check to see if visual diff is still visible
Bug: T187282
Change-Id: Ia29a335bf6b1bad0eeb55b54094475c7fcc18dfe
2018-02-16 15:21:12 +00:00
Ed Sanders e0b7fbe6f8 NWE preview: Avoid skin style clash
Bug: T187075
Change-Id: I6ac6eebca3bd89ce19fb64f6e95809c4d595bc8b
2018-02-13 16:22:56 +00:00
James D. Forrester b6c18b2d49 Don't try to insertMetas at 0,0, just at 0 now (lest we crash)
Bug: T187112
Change-Id: I56e39276637ea018c1ec742d833d115ee881a5d5
2018-02-12 19:32:23 +00:00
jenkins-bot 3d0d5667bc Merge "ve.ui.MWWikitextSurface: Implement textSelection 'replaceSelection', 'encapsulateSelection'" 2018-02-08 23:58:24 +00:00
jenkins-bot b2400138a5 Merge "ve.ui.MWWikitextSurface: Make 'textSelection' API chainable methods really chainable" 2018-02-08 19:44:36 +00:00
Bartosz Dziewoński 5ce321bc60 ve.ui.MWWikitextSurface: Implement textSelection 'replaceSelection', 'encapsulateSelection'
Bug: T185917
Depends-On: I39bbbce20336a1286a07bf8032acdfb8a7e0cdb6
Depends-On: I05086ddce2ddd857ff88eba75cfdb6bf877bd924
Change-Id: I1e7ed33275d0a97f4b0b3c9756bbef2f3f3ad73c
2018-02-08 19:50:17 +01:00
Bartosz Dziewoński 5f36aac24c ve.ui.MWWikitextSurface: Make 'textSelection' API chainable methods really chainable
Change-Id: I1292021a4a8dee70cfa203a040f176996e4a13ff
2018-02-08 19:48:33 +01:00
Ed Sanders b14480f49b Assume wpTextbox1 has an API registered already
Bug: T186743
Change-Id: I19b085dfbf6229854c3d70807ffe83685ca811fe
2018-02-07 20:12:51 +00:00
jenkins-bot e613c8edc4 Merge "Load modules for preview" 2018-01-30 17:40:45 +00:00
jenkins-bot 8e1ec692d8 Merge "textSelection: Implement getCaretPosition" 2018-01-30 16:48:00 +00:00
jenkins-bot 5e2e0013ae Merge "Implement simple methods from $.textSelection API" 2018-01-30 16:47:19 +00:00
Ed Sanders 9e16e1cbd4 textSelection: Implement getCaretPosition
Bug: T185992
Depends-On: Id60f4b8aa177564f5252508ce6cff2424eb03fc8
Change-Id: I1a1a953dfbb299a15ba9d4d3e624e6779e72d11c
2018-01-30 10:54:02 +00:00
Ed Sanders aeb4f2f2b7 Implement simple methods from $.textSelection API
This should make it easier for some gadgets to work
with NWE.

Bug: T185992
Change-Id: Ic60440f345b8226fb5acaeb966e25eb003ad7866
2018-01-30 10:53:49 +00:00
Volker E e64ede5b49 Remove unnecessary and low-contrast opacity
Change-Id: I4853a77679687d23059c118914df42a1d3c2785c
2018-01-29 23:51:08 -08:00
Ed Sanders 9770c80615 Load modules for preview
Bug: T147702
Change-Id: I94f6bdf122d4e2c9fba3103f36c438980ce8228d
2018-01-29 22:35:00 +00:00
jenkins-bot d7d026425c Merge "Make visual diffs the default in visual mode" 2018-01-27 00:21:24 +00:00
David Lynch d97b734352 MWWikitextStringTransferHandler: Perform Parsoid cleanup on result
Parsoid markup delivered as a result of a paste was being handled differently.

Bug: T183173
Change-Id: Ic563d2c5cd1f663f35860892b369fb7ba34b9c55
2018-01-22 14:43:19 -08:00
David Chan c7b76329ad Use ve.dm.MetaList without explicitly requiring metadata index
For future compatibility with Ib5174b0dcba1c24f44d889e08140bee31a064011 .

Change-Id: I15f252ce5d36bc0c38c5f5035e5176bf5e6d96e5
2018-01-21 18:33:28 -08:00
David Lynch a52dc16244 Update TitleInput's getTitle to getMWTitle
cb92c72c63274b332dc81edf473b1b3979ab4bdf in MW core changed this.

Bug: T185231
Change-Id: I9084a11bd40e46bddbcd1922ff549703bc90f60f
2018-01-18 11:39:23 -06:00
jenkins-bot d5bf4d41de Merge "Remember preferred diff viewer" 2018-01-18 15:37:35 +00:00
jenkins-bot 31e7006610 Merge "getSelectedItem() -> findSelectedItem()" 2018-01-17 17:29:36 +00:00
Ed Sanders a1e2cb237c Resize link context item after getting description
Descriptions can run to more than two lines.

Bug: T183650
Change-Id: I3d0a5787cab19abc4851340b08fe4a109e7aec31
2018-01-17 16:06:28 +00:00
Ed Sanders 0169701257 getSelectedItem() -> findSelectedItem()
Change-Id: Idf90335d06800b690063c7b2a781e822f0ee7ba9
2018-01-17 13:39:13 +00:00
Ed Sanders e70fe7c1a1 Make visual diffs the default in visual mode
Bug: T178248
Change-Id: I9fe22862d4415df034a0054f934c9ebd1d731a5d
2018-01-17 13:31:07 +00:00
Ed Sanders 7661081ab9 Remember preferred diff viewer
Separate the preference by surface mode, so you can
use a different preference for NWE.

Bug: T178691
Change-Id: Ib8494a4562ce766a7c8ef7ec1447d06f5d0f17c5
2018-01-17 13:31:07 +00:00
jenkins-bot 2ea64bdd27 Merge "Change save dialog accesskey to be entirely off the trigger" 2018-01-10 21:30:51 +00:00
jenkins-bot 9768750cd3 Merge "Use findItemFromData instead getItemFromData" 2018-01-10 19:54:30 +00:00
David Lynch 64944c119a Use mw.storage instead of localStorage
mw.storage catches errors, so we won't crash horribly when the user has
localStorage disabled / full.

Bug: T181822
Change-Id: I212994eb535b9a8fb5f6c09deaa10b16c3d7f10e
2018-01-10 11:44:24 -06:00
David Lynch a89c79dc79 Change save dialog accesskey to be entirely off the trigger
Accesskeys in this situation are unreliable cross-browser. Firefox won't
trigger the accesskey inside the dialog. We can manually simulate it, via the
existing trigger.

Bug: T121183
Change-Id: Ib919d8b9fcd9324a517037bcc6ef93a26d1488b9
2018-01-08 11:52:06 -06:00
jenkins-bot 683ac88fcc Merge "doc: Bump copyright year" 2018-01-03 19:20:07 +00:00
James D. Forrester 0a7a845a42 doc: Bump copyright year
Change-Id: I0b299c840ede1a1b8552cecfc70c5760ab036181
2018-01-03 17:45:07 +00:00
jenkins-bot fad1466d84 Merge "Fix editfont size in source mode" 2018-01-03 01:12:25 +00:00
Ed Sanders 459ce75cb2 Fix editfont size in source mode
Bug: T182320
Change-Id: I777a1a80cb9887bc473aecb5d7b25fd6454a3d60
2018-01-02 19:20:18 +00:00
Bartosz Dziewoński 578c55b7c1 ve.ui.MWSettingsPage: Fix doc comment
Change-Id: Iff4e8854124340a30081009221cde5b2831c81f3
2017-12-30 03:26:13 +00:00
Prateek Saxena ecd663c4a0 Use findItemFromData instead getItemFromData
Depends-on: Ia2110f71d1642f61451cb8acc7e8a930d0feb31f
Bug: T76630
Change-Id: I379da96a42c440c7d2d5dc2f3de2773c03546c04
2017-12-28 11:53:29 +05:30
Ed Sanders 8a356b19d7 Enable spellchecking on media caption inputs
Bug: T182393
Change-Id: I23d3f1b37225f9e5a9a9651b6e7b590d38dc99b3
2017-12-12 16:42:55 +00:00
David Lynch 7777f69e7b Use rel="noopener" on links targeted at new windows
Bug: T180932
Change-Id: I93bda6aaebf97727a187774cccbeba4f27fcddd5
2017-11-30 13:15:38 -06:00
David Lynch efbfcd8b35 ui.MWSaveDialog: consistent handling of preview category links
Category links weren't being checked for redlink status, and weren't opening
in a new window.

Bug: T179913
Change-Id: Ic665583128bf51710178c5674cd35c273f5f207e
2017-11-29 11:24:32 -06:00
Ed Sanders 77773df985 Create MW tables with captions by default
Bug: T181173
Change-Id: Ib17331e0e8478ba67c1ecbbee4a284d9993cb552
Depends-On: Ieb668d282f7afa9332cead94c95f19f652102af1
2017-11-27 16:37:24 +00:00
Ed Sanders 57bf86b69e Add mw-parser-output to preview elements
Bug: T180214
Change-Id: I74700061c89ab4004229e3b03353067e92031774
2017-11-10 15:34:51 +00:00
Volker E fdf30c1793 Unify SVG markup
Align SVG markup across Foundation products by:
- unifying XML declaration,
- removing unnecessary `standalone="no"` attribute as it's default,
- removing all SVG editor metadata
- removing all `g` group elements except where necessary for transforms,
- putting attributes on `path`,
- removing unnecessary ids and
- unifying whitespace.

Saving up to 23% file size before gzipping.

Bug: T178867
Change-Id: If0339073a12f24df1a0f8dcc110c35e0ee2d38a7
2017-11-06 10:43:56 -08:00
Ed Sanders 3fff0a88d7 Fire wikipage.content hook on edit notices
Bug: T179315
Change-Id: Ib9a19acbb2459c5b94fc72610f86a48feb80a380
2017-10-30 22:21:50 +00:00
David Lynch ab1e5d58d4 MWInternalLinkContextItem: increase specificity to override OOUI changes
OOUI 8e31b2f273 increased changed various icon CSS rules, and increased their
specificity. Increase ours to match. This restores the correct size/ratio of
the images in the link context item.

Bug: T178933
Change-Id: I4f1a6dde363cf99f7665dc83f4b0fa6b1dd3c29e
2017-10-24 16:09:38 -05:00
Ed Sanders b752a0620b Increase selector specificity to fix layout regression
Removes negative margin from first item in help popup.

Change-Id: I87ecca9f886dd4061a2afa781ca997ef751907ef
2017-10-19 15:21:12 +01:00
Bartosz Dziewoński 99cdc08f53 ve.ui.MWMediaInfoFieldWidget: Fix positioning of icons
OOjs UI's styles now include 'top: 0' for icons, which messes us up here.

Bug: T178415
Change-Id: Ia3234848f69fd67d0b3e35c817de1d9847d46143
2017-10-17 17:55:53 +00:00
Ed Sanders 013d26f0b0 MWParameterPage: Use MultilineTextInputWidget instead of config
Change-Id: Icccd6460452774ae0ff21ce9df36dfe428d935d2
2017-10-12 18:13:06 +01:00
Ed Sanders 581847acb3 Show visual diffs in wikitext mode
Bug: T170371
Change-Id: I8fd9ed4f804444ec486c4df72125cdeb04da0d5f
2017-10-11 20:31:39 +01:00
jenkins-bot 28d4ed974f Merge "Remove reference to editfont-default" 2017-10-03 18:48:21 +00:00
Ed Sanders cd097bed3d Allow MediaWiki extensions to use self closing tags
Parsoid now supports this by setting body to null.

Change-Id: I24d856f0cffeacb00cb2b757e34315bc02b595d0
2017-10-02 10:52:48 -07:00
Ed Sanders ddc056a40a MWExtensionWindow: Always send a string to setValueAndWhitespace
Bug: T177180
Change-Id: I3a32e1b22e82bc0c182d26a952e7592aafd4b5e4
2017-10-02 16:26:16 +01:00
Ed Sanders 852e1ababe MWAlienExtensionNode: Listen to attribute changes
Also:
* Disconnect change event on this.input, which doesn't
  get destroyed on teardown
* Add padding between attributes and this.input
* Assume the alien extensions can have a rendering when
  their body is empty.

Bug: T177181
Bug: T177183
Change-Id: I2e59f8195b255f33f91901213c92ea14793635b4
2017-10-02 16:22:41 +01:00
jenkins-bot ff7c57489a Merge "Set padded=false for link inspector" 2017-09-29 16:42:29 +00:00
Ed Sanders 582a3e62fb Remove upstreamed link inspector page icons
Change-Id: I997b299d9a61ec9307025a7f4d106f185283eb40
Depends-On: I297648d14b4a2540a40f3a0b7d22a7905ef7c035
2017-09-29 16:27:50 +00:00
Ed Sanders ef46e45b43 Set padded=false for link inspector
Logically depends on I615b485a272.

Bug: T177080
Change-Id: Ica54238d891fa41eefb0b9216eb4f2190818a502
2017-09-29 16:14:29 +01:00
Volker E 4067b05832 Unify monospace font family stack
Bug: T176636
Change-Id: I9ad1a92cef7875371e232c8e4babc842ba711e8c
2017-09-28 00:24:53 +02:00
James D. Forrester 2c70792c4f Replace constructive with progressive UI flag
Change-Id: Iae36e978978ed6642f44606a934c540cf5f8537f
2017-09-26 15:14:32 -04:00
Ed Sanders 38d716f895 Follow-up Iebd1def1: Revert MWSignatureTool case
The tool checks the page name before the target is initialized.

Change-Id: I02ec528a11cc01b026fb95617388d47323ad96ee
2017-09-26 19:59:56 +01:00
Ed Sanders 1b8f8d8908 Replace wg(Relevant)PageName with target#pageName
The default value of target#pageName is wgRelevantPageName
but other targets my override this, or change it dynamically
(e.g. ContentTranslation).

Also remove duplicate setter of pageName in mw.ArticleTarget,
already set in mw.Target.

Change-Id: Iebd1def1d4142978a673afec584a0b663644d176
2017-09-26 13:22:00 +01:00
jenkins-bot f17b099984 Merge "Use findFirstSelectableitem instead of getFirstSelectableItem" 2017-09-21 18:13:09 +00:00
jenkins-bot e1ae0a91ec Merge "Remove nbsp from Visualeditor-mwlanguagevariantcontextitem-rule-code-label" 2017-09-20 16:20:40 +00:00
C. Scott Ananian 853ec0bc9c Inspectors for editing LanguageConverter markup
Basic inspectors for editing.  Changing from block to inline, or
adding "hidden" or "describe" flags not supported.

The UI layout for two-way and one-way rules could certainly be improved.

Bug: T49411
Change-Id: I5ce29e4bf47abf509afde0a57f64b5d1189f5185
2017-09-15 09:24:33 -07:00
C. Scott Ananian 26df4dca33 Doc update: use the full class name so JSDuck hyperlinks it correctly
Change-Id: I2c6f6a6c5b497767d7f7731c86cc145ed60b1deb
2017-09-14 11:07:07 -04:00
jenkins-bot 1809344c8a Merge "URL decode file names in gallery, as in PHP parser" 2017-09-13 18:00:56 +00:00
Ed Sanders a6ac6d0cec Fix typos in gallery attribute names
The MW attributes are 'style' and 'class'. The plural
forms are used internally only to avoid JS keywords.

Change-Id: I1b7d14872aab4b6b3882d00165924fd1639e1744
2017-09-13 14:06:44 +01:00
Ed Sanders 280696ad3f URL decode file names in gallery, as in PHP parser
Bug: T175816
Change-Id: I3ec9c1f6db57798cdc1b5a787dd0bd9b4d3beef1
2017-09-13 14:03:20 +01:00
jenkins-bot 508fdf1543 Merge "Don't require a selection to run any of the save actions" 2017-09-11 15:10:23 +00:00
jenkins-bot 822db7eacf Merge "Add feedback link for visual diff inside save dialog" 2017-09-11 12:01:39 +00:00
Ed Sanders 13ef05b489 Don't require a selection to run any of the save actions
Change-Id: I3a8f7e1e9e3714f226ac240a429a62d011112285
2017-09-10 14:53:14 +01:00
David Lynch 569f917edc MWExtensionWindow: clean up originalMwData on teardown
Not doing this makes adding a new extension node with the exact same content
as a previously-viewed one have the Done button disabled.

Bug: T172586
Change-Id: I39105144e17135044ef644b5464b0fbfdfc019d5
2017-09-07 10:40:36 -05:00
Bartosz Dziewoński 92cea19890 Use .length instead of .size() for jQuery objects
.size() is deprecated.

Change-Id: Ib28b7fede117de474efea705adf5dc2cdf8cb101
2017-09-06 14:52:40 +02:00
Prateek Saxena 1d6b87243e Use findFirstSelectableitem instead of getFirstSelectableItem
Depends-on: Ic12be404eba490e5ce748f0d754a807e12f6ba76
Bug: T76630
Change-Id: I7daccf8620ec43a56183fd455048a1f2c5f71f26
2017-09-06 15:42:42 +10:00
Thalia a3902ebff8 Add feedback link for visual diff inside save dialog
Bug: T170665
Change-Id: I0b09b1089c834a013ad5fee4ecdf75b483b56323
2017-09-05 13:35:37 +01:00
Prateek Saxena 2b923c0346 MWTemplateDialog: BookletLayout: Use findClosestPage instead of getClosestPage
Bug: T76630
Depends-on: I068dad8c79c4bda6ea37ab6a1eb6ba72ab6f7dc0
Change-Id: Ib4e380aa6cd0cacbadd42bdf447ddee6443f22ef
2017-09-05 12:13:41 +10:00
jenkins-bot af756c4c20 Merge "EducationPopup: Add cursor:pointer" 2017-08-30 17:59:26 +00:00
Ed Sanders 24747966b6 EducationPopup: Add cursor:pointer
We still expect the user to click on the tool, and
the actions still works (albeit delayed), so we
should use cursor:pointer.

Change-Id: I6d2b0140f5fd918809f05acc6e405ef430c518fd
2017-08-30 17:48:27 +00:00
jenkins-bot a24be49c01 Merge "ve.ui.MWEducationPopupTool: Position blue dots with CSS only" 2017-08-30 17:42:38 +00:00
jenkins-bot 1a40fd2b71 Merge "ve.ui.MWLanguageVariantNodeContextItem: Fix condition for empty table" 2017-08-30 15:48:07 +00:00
jenkins-bot 61ae9df214 Merge "MWParameterPage: Vertically align actions with label" 2017-08-30 15:42:53 +00:00
Egbe Eugene 2fc6423070 Remove nbsp from Visualeditor-mwlanguagevariantcontextitem-rule-code-label
Since "nbsp" is hard to translate, it is removed from the current
text of visualeditor-mwlanguagevariantcontextitem-rule-code-label,
which was "Language&nbsp;code" - now changed to "Language code".
Instead the table headings (where this message is used) are defined
as non-breaking in CSS.

Bug: T173181
Change-Id: I9794fa010ad908fe772fa6858c25acc6beb973d5
2017-08-29 21:58:33 +02:00
Bartosz Dziewoński bff16fb352 ve.ui.MWLanguageVariantNodeContextItem: Fix condition for empty table
For magical HTML reasons, a `<tbody>` node is automatically inserted
inside the `<table>` node. Therefore the table always had exactly one
direct child, this check always failed and table was never shown.
Instead, count the rows.

Change-Id: Ia8a5387c3f605689ab1053c923952ec955b83253
2017-08-29 21:57:48 +02:00
David Lynch 5d4ff082e6 MWLinkAnnotationInspector: check input validity when switching modes
Focusing a TextInputWidget normally unsets validity. However, because we're
kind of pretending this is the same input, just in a different mode, it
doesn't make sense to the user that the focus behavior occurs. So, make it
recheck validity after we switch.

Bug: T172159
Change-Id: I1d9d6670d72483c7510fd5ed3c539b43af8432bf
2017-08-29 11:28:29 -05:00
Bartosz Dziewoński 0a378318bf ve.ui.MWEducationPopupTool: Position blue dots with CSS only
We can place them in bottom center of the toolbar buttons with
just CSS, no need to manually calculate the position (which
doesn't give the correct results if the toolbar is not visible).

Also add z-index for correct rendering inside TargetWidget,
not overlapped by the toolbar border (e.g. in the media dialog).

Bug: T174120
Change-Id: I556ddfcf252669107cf21810fbed7c9a3751e906
2017-08-29 18:21:44 +02:00
Ed Sanders c8e856bfb2 MWParameterPage: Vertically align actions with label
Also make label consistent height, with or without an
indicator using line-height, and move closer to input.

Change-Id: I1b6e6e2f3caa4c949583cafa9448aae6ebc1e0a1
2017-08-29 14:45:21 +01:00
Ed Sanders 550408f863 Increase width of param actions container
Bug: T174202
Change-Id: I61a175593b087219b22c5be91d00054b1c15e1dc
2017-08-29 14:28:26 +01:00
Ed Sanders 63607c4cff Remove reference to editfont-default
Bug: T170223
Depends-On: I1ace59c980740fc785ccbd500e19cc8b71d46a5b
Change-Id: I2ac04df04b6652b47490dff5202683c041178a2c
2017-08-25 18:44:53 +01:00