Commit graph

160 commits

Author SHA1 Message Date
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
Thalia 34f6e11a19 Call updatePreview when closing the LiveExtensionInspector
Call updatePreview in insertOrUpdate node, when closing the
inspector. If edits have only been made to attributes that
don't affect the rendering, updatePreview will not have been
called, so the model won't have changed. Therefore
updatePreview should be called every time the inspector is
closed to make sure such edits are applied.

Bug: T113078
Change-Id: I48fb291487f76fc515f122646d205366a60dca62
2015-10-01 15:58:20 +01:00
Ed Sanders f814ea719b MWLinkAnnotationInspector: Use TitleSearchWidget instead of TitleInputWidget
Depends on I335bd912d in MediaWiki core.

Bug: T101169
Change-Id: I2932c9df5444d1363af5af9b438bb905ed298148
2015-09-27 14:03:52 +01:00
Ed Sanders a04d2ff52b MWLinkAnnotationInspector: Update actions when changing tabs
Change-Id: I825531683eeb8b7e21b741f1dc5d338abc9d347a
2015-09-27 14:03:29 +01:00
Ed Sanders 6ed5877c69 Update VE core submodule to master (27fc244)
New changes:
18e46b6 [BREAKING CHANGE] LinkAnnotationWidget: Abstract .text property to getTextInputWidget

Local channges:
* MWLinkAnnotationInspector: Use new getTextInputWidget method

Change-Id: Ia33797d612be7b4521e7212047a38480ee2520df
2015-09-26 12:27:56 +01:00
Ed Sanders 8815d1397f Abstract mwExtension behaviour into MWExtensionWindow
Allows us to create an MWExtensionDialog base class that shares
the logic.

Change-Id: I53c8f1713a3513d2635cfd736ec8fc3f9616d864
2015-09-05 18:18:24 +01:00
Alex Monk 7c2f6e1f5f Don't break when you cancel the link inspector
Bug: T111241
Change-Id: Iff96aa4d97fe64a2472a58b3bf782085313899c6
2015-09-02 21:30:51 +01:00
Alex Monk a02d8573b4 Fix cancelling of extension inspectors
* Don't insert/update/remove nodes on cancel in MWExtensionInspector
* Don't forget to popStaging on cancel in MWLiveExtensionInspector

Bug: T110992
Change-Id: I1e30206595e304eb502c7e745bf5e00d145d12d7
2015-09-02 02:32:11 +01:00
C. Scott Ananian 7cc23367f6 Specialized inspector for ISBN magic links
Implement a special node type, context item, and inspector for
ISBN/PMID/RFC magic links.  Add buttons to the link inspectors
to convert back and forth between "simple" links, and magic links.

Depends on I5d000d8b63dafdfe0a2753069d3f0ac5b03b8829 in Parsoid
for clean round-tripping of localized ISBN magic links.

Bug: T63558
Change-Id: Id5b7a2ae3c80b0e5eed598f0bd024d3e94f7e9aa
2015-09-01 14:25:59 -04:00
jenkins-bot a2060f57c1 Merge "MWLinkNodeInspector: Remove 'Open' button" 2015-08-21 19:30:40 +00:00
James D. Forrester 55f78fcbf6 MWLinkNodeInspector: Remove 'Open' button
You can now do this from the context menu. No need to have extra buttons, and
this makes it consistent with the MWInternal/MWExternal link inspector.

Bug: T109646
Change-Id: Ifd4b3645c66ba2f32ccee7e2848967cf5e7ec82e
2015-08-19 15:58:13 -07:00
C. Scott Ananian 2852f6368f Builder for ve.dm.MWInternalLinkAnnotation
Add ve.dm.MWInternalLinkAnnotation.static.newFromTitle to build an
appropriate internal link annotation from a mw.Title.  Tweaked some
method signatures to avoid repeated reparsing of the title text.

Also refactor ve.dm.MWInternalLinkAnnotation.static.getTargetDataFromHref
to explicitly return a boolean indicating whether the result was determined
to be an internal link.

Bug: T64816
Change-Id: I74385d7b3ede1794398dabb749185f4080509b99
2015-08-19 16:57:06 -04:00
James D. Forrester 945242a55a build: Enable jscs jsDoc rule 'checkAnnotations' and make pass
Change-Id: I76abb1eb1f3e1a2e8a4c03f577a080f4889b3a6d
2015-08-19 11:09:34 -07:00
James D. Forrester 19df1d4c8a build: Enable jscs rule 'requireVarDeclFirst' and make pass
Change-Id: Ia2f765d12bde001c329c2ff4c080a36b71de9803
2015-08-19 11:05:01 -07:00
James D. Forrester f5c6f61163 build: Enable jscs rule 'requireSpacesInsideBrackets' and make pass
Change-Id: I846d36c15e1b1f810d2ef7fd422f8412790bcb0f
2015-08-19 10:33:02 -07:00
Vikas S Yaligar d42e10cacb [BrowserTest] Added screenshots scenarios for links and categories
Also minor cleanup of rspec old "should" syntax, changed all occurences to
"expect" syntax.

Change-Id: I0c2dfc18d06812ed9da2f6c0056c95b7755e5afd
2015-07-18 15:39:28 +00:00
Alex Monk b8c39de8ef Bypass ve.ui.MWInternalLinkAnnotationWidget.prototype.getHref when determining text
Bug: T104838
Change-Id: I0f754c949e494744adab5f191b5e8acce0c5d0fe
2015-07-09 02:03:04 +01:00
Alex Monk a5281d01c7 Populate the internal target lookup menu when the user opens the link inspector
Instead of only having it be populated upon setup.

Bug: T97723
Change-Id: I5ead32625efa79289b38955546a5843adef13101
2015-07-02 20:37:13 +00:00
Roan Kattouw 6aac8eed78 Follow-up 8112c3ba30: fix JS error on link inspector teardown
LinkAnnotationInspector in VE core calls
this.setAnnotation( null ); on teardown, which causes
MWLinkAnnotationInspector#onInternalLinkChange to be invoked
with a null fragment.

Bug: T103176
Bug: T104231
Change-Id: Ibb50ba1696609bebdfc2857ea292ee30b6b5126a
2015-06-29 23:53:49 +00:00
Matthew Flaschen 8112c3ba30 MWLinkAnnotationInspector: Get HtmlDocument in a different way
Get the HtmlDocument in a different way that doesn't involve
ve.init.target.

For page (non-Flow) MW VE, I checked that it yields the same result.

Bug: T103176
Change-Id: I54bdf4f29f6acf4359be45b5b2ddfd23b5835c34
2015-06-25 11:08:54 -07:00
Ed Sanders 5ac580e18b Empty all inputs on link inspector teardown
The parent class only nullifies the active input, but for completeness
we should nullify both.

Change-Id: I3017ef0ca61753fefde1c23b43178d46c6308e9f
2015-06-05 16:17:29 +01:00
Ed Sanders 325c9cb521 Move cursor to end when changing link mode
Allows you to keep typing after 'http://' in Firefox

Bug: T98895
Change-Id: I785863e9a3bd3c0d548bee13ae2810eccc739a8f
2015-06-04 18:23:34 +01:00
Ed Sanders d3718edb4d Add in required calls to updateActions
Change-Id: I8c584d7bd48c957b5b07ff1bf6b52748165c18dc
2015-06-02 22:57:12 +01:00
Ed Sanders e8149e2588 Always preserve input when switch between internal/external links
Although an internal link is unlikely to be a valid external link, this
prevents an annoying experience when the user switches to external and
then back to internal while exploring features.

Change-Id: I178cf3f641db683f5dd0a49c246c204ded89760c
2015-06-02 22:03:08 +01:00