Commit graph

183 commits

Author SHA1 Message Date
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 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
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 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 1bd430c9d1 Convert most uses of isForClipboard to doesModeNeedRendering
Depends-On: I0f1b90056e9d1a4fa0e188700604709297593924
Change-Id: I6fa1cde51ffc859b57ab557e3ddf8a76d92bf94f
2018-04-30 16:10:27 +00:00
Ed Sanders 53e758a427 NWE: Fix selection when applying async links
Change-Id: I31dc6f2d9fcd563bdbd8245bda6336d317aa512a
2018-04-17 16:33:23 +00:00
James D. Forrester 0a7a845a42 doc: Bump copyright year
Change-Id: I0b299c840ede1a1b8552cecfc70c5760ab036181
2018-01-03 17:45:07 +00: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
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
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
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
David Chan c87abccdf9 MWLinkAction: Don't annotate close tags
Change-Id: I273838eba4cb259cf053ce88378da10b0e241155
2017-08-13 11:33:43 -04:00
Ed Sanders a90f8f5ea1 Copy over missing steps from MWLinkAnnotationInspector to Wikitext version
Bug: T171892
Bug: T171895
Change-Id: Id14eed79b9a2395b3b722828e62b05d3d8d44327
2017-07-31 18:44:12 +01:00
Ed Sanders 835a775a49 build: Upgrade grunt-eslint from 19.0.0 to 20.0.0
Mostly indent and regex fixes.

Change-Id: Iaf9d02363c78cb71deec5c4cab53a05b67f60600
2017-07-18 12:55:33 +01:00
Volker E f695877de7 Rename deprecated Card to current TabPanel
Renaming CardLayout to TabPanelLayout and all connected code instances.
Follow-up to Icfe1652cc038dc131b6b855ce9b45040b8ee5178

Bug: T164903
Change-Id: I9ce4e31e390522d469e126fb3a4b05787cef7fef
2017-05-10 11:46:49 -07:00
David Lynch 60866eade2 Override ui.CommentInspector so that copying from it sets text/x-wiki
Bug: T154837
Change-Id: I3413c955aa23d34683e1a028a581b1ea34d55d49
2017-01-27 01:13:41 -06:00
Thalia 43c2865f90 Update actions on live inspectors and preview dialogs
Make inspectors inheriting from MWLiveExtensionInspector
and dialogs inheriting from MWExtensionPreviewDialog
update their 'done' action every time updatePreview is
called. Since both mix in ExtensionWindow, two new methods,
updateActions and isModified are added there.

This should make it more difficult to insert an empty node
accidentally or create a transaction just by opening and
closing an inspector or dialog.

For more complicated dialogs, or inspectors or dialogs
that don't live-update, this behaviour will have to be
implemented separately.

Bug: T155330
Change-Id: Iacafa01fcd419faaec9b112c96be86693a57d561
2017-01-21 18:29:18 +00:00
James D. Forrester 122f49b2dd build: Bump file copyright notices for 2017
Change-Id: I3c20809e71cc0da58123e1b5f29c4f3aac945496
2017-01-03 08:58:33 -08:00
Ed Sanders 323050467f Change wikitext link inspector name to avoid conflict
This was causing the VE link inspector to fail badly if
NWE was enabled.

Bug: T153668
Change-Id: Ie665715a5f5401e59fc6468b81a4122ca5ebd5a3
2016-12-19 12:03:58 +00:00
Ed Sanders a504aba7c5 MWWikitextLinkAnnotationInspector: Select links after creation
Change-Id: If23d90dc695546e7dddb3c04637e54df47c6f528
2016-12-12 20:09:52 +00:00
Ed Sanders 9b5adb8688 Remove WikitextWindowAction, inherits from core
Depends-On: I2b14cc93bf3c855e157f0b26567337f74992fb96
Change-Id: I3e479c1441f548f62ff8a2f6e7b2ad450262921f
2016-12-02 11:50:43 -08:00
James D. Forrester a835f4f9d5 Use canonical ve.dm.TransactionBuilder.static.newFrom* methods
Change-Id: I082048a677baa2699d94e21548373952d52db61b
2016-12-01 10:43:10 -08:00
Ed Sanders e655880d14 eslint: Remove unused exception and fix documentation errors
Don't enable valid-jsdoc yet though, due to @chainable bug.

Change-Id: I4d2a6de19c72c6e4c20733446616d8046419d431
2016-10-28 12:02:36 -07:00
David Lynch d28819f795 ui.MWLinkAnnotationInspector: skip internal link checking if the value has changed
If the value has changed since the event was fired, we're operating on old
data, *and* another event will have been fired for that change anyway. So
abort this check.

Bug: T146306
Change-Id: Ia6682ec0218fd3fbc573582753d815a56963eb71
2016-09-22 11:23:48 -05:00
jenkins-bot b656f3d5f1 Merge "Use super property to call parent methods" 2016-09-01 17:04:39 +00:00
Ed Sanders 62bdaac13b Use super property to call parent methods
Change-Id: I76982b844cf2871d7583463def4393e5bdc33aa2
2016-08-23 11:56:47 -07:00
Ed Sanders 1d6746e89d Fix insertion annotation for wikitext link inspector
Change-Id: Ib769e371743438b530f150fcb8104292288c35f9
2016-08-22 10:59:55 -07:00
Ed Sanders c452e134cc Wikitext surface alpha feature
Edit wikitext with the VE interace.

Bug: T104479
Bug: T142138
Change-Id: Ic95b47e0dd378578555c4a2342ca9c87064ed1d5
2016-08-12 18:37:29 +00:00
David Lynch 53ad07ed72 MWLinkAnnotationInspector: change where auto switch to external occurs
OnInternalLinkChange happened post-validation, and received an already title-
normalized version of the href. Thus `file://` would become `:File://`. As
such, hook up to the raw internal link input change event, and judge what the
user actually entered.

Bug: T138956
Change-Id: I0f9f3de3b7bf6e5430e55fa69626522b0c74296a
2016-07-28 11:00:36 -05:00
David Lynch a95e6cab08 MWLinkAnnotationInspector: switch to external tab on any schema
Currently the switch only happens if it's a valid schema. Instead, switch if
any schema at all is detected, so we can tell the user it's invalid. If they
really meant to link to an internal wiki-page that just happens to start with
a "schema://", they can switch back to the internal tab to force it.

Bug: T138956
Change-Id: Icfd74157fd8439920668a417661265ddd52c9a21
2016-07-27 17:10:52 -05:00
David Lynch ef7652fdfc Move internal-link detection into the InternalLinkAnnotationWidget
If internal link detection is in the LinkAnnotationInspector, it falls down
when a valid URL which isn't also a valid page title (e.g. percent-encoded
titles) is pasted into the input. This is fixed by moving the detection to the
input's change handler before any validation can occur.

Bug: T119431
Change-Id: I1eb2040dd918fdcc22c28594b5cbad835cf384a8
2016-07-15 13:51:35 -05:00
Thalia 6fdbe9fd7e Make dialog for editing galleries
Make new graphical interface for editing existing
galleries and adding new galleries.

NB The dialog does not yet support rich text in the
image captions, nor does it provide separate fields for
e.g. link, alt text, etc. These are dependent on parsing
the text within the tag, which is yet to be implemented
by Parsoid. For now, these attributes should be
specified in wikitext in the image-specific caption
field.

Bug: T45037
Change-Id: I2b4082e991268241a15b9bbd6d85c94cdc2185f2
2016-06-07 13:53:02 +01:00
jenkins-bot a9e40b09cd Merge "Move cursor to end when switching to external" 2016-04-26 15:05:44 +00:00
Ed Sanders eb839a89a0 Move cursor to end when switching to external
Bug: T133677
Change-Id: I2694b6ddd476798b29d2aeb9d3eb4f162da49f7c
2016-04-26 14:00:48 +01:00
David Lynch 8bb1399c97 Select the label properly when converting LinkNode to LinkAnnotation
We were selecting outside the annotation, when converting a LinkNode to a
LinkAnnotation. This meant that typing would overwrite the annotation as well
as the label. Speculatively, this is probably a side-effect of recent changes
to how nails and cursor offsets interact.

Bug: T121448
Change-Id: Ib2274bc5857294c5b691b3c3567b135d68bfa596
Depends-On: I3954c7f8f8e5870b13a8f6c4f0e86fb3b20b3cd3
2016-04-25 11:56:39 -05:00
Ed Sanders c516d897d2 Remove icon properties from windows
Windows stopped supporting icons a while ago.

Change-Id: I8a63152282a5968dcd17675330e31bd1ebe4b68b
2016-03-29 12:33:42 +01:00
David Lynch d33f5969ad MWLinkAnnotationInspector: select entire link when switching tabs
Bug: T129650
Change-Id: I4ca445f2c43438c36ece23245660b63f2a48b722
2016-03-28 11:38:45 -05:00
Ed Sanders d5e594b9f6 Link inspector: Remove premature call to onLinkTypeIndexSet
This causes the inspector to take focus early (line 291) on
first load, and is not necessary as this method fires when
needed anyway.

Bug: T129228
Change-Id: Ia69f76b68e89daf5cb01449c40e71de4ec32d400
2016-03-08 16:54:09 +00:00
James D. Forrester ada58df361 build: Bump file copyright notices for 2016
Change-Id: I3c618c196e504a80ca297a4132a17f1977a24fb7
2016-01-03 14:57:25 -08:00
Ed Sanders a917871505 GalleryInspector: Use namespace id constant
Change-Id: Ia51634e84cf984d8ed4ecdab87590111bf12478f
2015-12-07 18:49:53 +00:00
David Lynch 50759e2064 When adding a label to a numbered link, force the selection
Otherwise the selection will/won't contain the opening node of the
link, depending on where in the paragraph it is. This makes the
experience of starting to type unpredictable to the user. By forcing
it to always have the contents of the node selected, typing always
just updates the label.

Bug: T114643
Depends-On: I7c46a917d9752145174919f41066b4841b203218
Change-Id: Ic1c573c2c28ced49f685ec6082506cb20d5163cd
2015-11-20 18:36:44 -06:00
Ed Sanders e1d14099e0 Image/gallery icons: Rename and use new upstream versions
Depends on oojs-ui > 0.13.2.

Change-Id: Iee4cc52b998626e829fd92346d5ee1295c08f26f
2015-11-18 01:49:31 +00:00
C. Scott Ananian 236fad19b6 Ensure magic link nodes inherit the annotations of their text
If you create an autolink in the middle of bolded text, the magic link
should also be bolded.  Similarly, if you convert a bolded simple link
to a magic link, the magic link should stay bolded.

Change-Id: I38c7f3c0c275851049088a37f3b37d815ed38e4e
2015-11-13 13:48:18 -08:00
Thalia 7731508134 Make new error element
Bug: T114754
Change-Id: I5839ba62fe4b4708ff51dc549c5294189d7f8843
2015-10-29 22:32:42 +00:00
Ed Sanders a6c4c3b3e1 Follow-up Id473b45: Call getResults on input widget
Bug: T115448
Change-Id: I8bfbb3092aa49750930c6437b0526a8b900722f1
2015-10-14 11:34:36 +00:00
Ed Sanders f1f75bf511 MWLinkAnnotationInspector: Close inspector when a search result is clicked
Change-Id: Id473b45a222d53f6bca0168dad4adf536ccdf97a
2015-10-10 15:49:45 +01:00
Ed Sanders fff96cdc8f MWLinkAnnotationInspector: Use IndexLayout for internal/external
As originally intended, but avoided because of since-fixed CSS issues.

Change-Id: I60186c8f8a13eb9a7708716329dc959e1913665d
2015-10-10 13:02:16 +01:00
jenkins-bot cd29e0376d Merge "Add error element to MWLiveExtensionInspector" 2015-10-05 22:53:20 +00:00
Ed Sanders 3f2a885e3e Ensure full error message is shown when inspector is closed
Applying staging doesn't emit an update event on the node, so
forcefully emit one with 'staged' equal to false, so the full
error is rendered (if present).

Logically depends on I8ebb26d4bc in core.

Bug: T114480
Change-Id: I7ba54b67982fc5b10839426cdc216e14c0e33c01
2015-10-05 17:15:40 +00:00
Thalia 9307fa7095 Add error element to MWLiveExtensionInspector
As part of the plan to render extension errors in the
inspector instead of the view, append an element to
contain the error. More specifically, the element is
a div that contains a LabelWidget (in which the error
message is displayed) and a ButtonWidget (to expand
and collapse the error).

Initially the error element is hidden, but if Parsoid
returns an error, the element will be shown. If the
error is longer than 1 line, it is truncated but can
be expanded. On closing the inspector, any remaining
error is collapsed and hidden.

Depends on I6002d9870d2b to work

Bug: T113172
Change-Id: Ie84130d4ac0da9a738bf98ad0a3677d47566d585
2015-10-05 00:22:22 +01:00