Commit graph

261 commits

Author SHA1 Message Date
David Lynch 0e973e2539 ce.MWTransclusionNode: make sure model exists before getting its document
Bug: T168932
Change-Id: I8d458888ed0b80205ce17b41f3506410c550630f
2017-07-24 11:31:19 -05:00
Ed Sanders 3180445ce9 Edit image captions in place
Bug: T149753
Depends-On: I6967c9c2b99449e1a4ac003db8213586eda7fbbd
Change-Id: I9baaa8634e9f364e78b3e881113ed8fa917bc76f
2017-07-19 13:01:02 +01:00
jenkins-bot 1333373c3e Merge "Drop local 'template' icon, use 'puzzle' from upstream" 2017-07-17 15:09:28 +00:00
David Lynch 0e8ef6c307 ce.MWTransclusionNode: make sure model exists before getting its document
Bug: T168932
Change-Id: Idf18839b1f1fae6eb29621f1950d2b52c99e3433
2017-07-13 11:33:38 -05:00
James D. Forrester 528942c2e1 Drop local 'template' icon, use 'puzzle' from upstream
Now that our template icon has been upstreamed thereto.

Bug: T111041
Change-Id: If101018de284dcc1be086d92427de0d88adb0e02
2017-07-06 09:52:56 -07:00
Ed Sanders c4f93b1411 Ensure MWInlineImages get the ve-ce-leafNode class
Without this class, offset calculations fail and model/view
sync can be lost.

Bug: T167009
Change-Id: Ie7b6551ac5a532949c14122b9ee7584a794af0f2
2017-06-26 12:43:23 +00:00
Bartosz Dziewoński 624211a60f Use Parsoid data for template names rather than detect from wikitext
We were incorrectly handling transclusions with trailing
newlines after the template name.

This also improves handling of non-template transclusions,
e.g. parser functions like `{{int:mainpage}}`, which are
no longer mangled as if they were page names.

ve.dm.MWTransclusionNode#isSingleTemplate will now match
a template even if it's name is itself template-generated.

Logic for turning Parsoid's hrefs into page names stolen
from ve.dm.MWImageNode.prototype.getFilename.

Bug: T167613
Change-Id: Ibecf71338eb37bb3da81a7372e4ed41140a9af57
2017-06-14 23:15:18 +00:00
Ed Sanders 8fb56b8d75 Give extensions a fallback icon when invisible
Bug: T166526
Change-Id: I5eafbef3b751a83cef353c8a9f09d90820fa9409
2017-06-07 22:29:19 +01:00
Ed Sanders a5e44034fb Guard against mwdata.body being null
Bug: T166754
Change-Id: I3b887a3a6ee81ca3fd0b242fadc8b833b9031b50
2017-06-01 14:01:23 +01:00
David Lynch 0eb6b94b4c MWTransclusionNode: Implement MWTransclusionTableCell
Back in de98382a55, references to MWTransclusionTableCell were introduced,
but weren't followed through on. So, actually add it. Have cellable
Transclusions use it as their type.

Bug: T144122
Depends-On: I054f12f4218102a12d7a9ea843f9c61e8825c52c
Change-Id: I367f878bfd1c58e20b62368cb78120604b48d791
2017-05-15 12:09:11 -05:00
Ed Sanders ede81b493e MWSignatureNode/Tool: Avoid global variables
Change-Id: I0596b33e797830f3718f4edbe34075fdaced0831
2017-04-29 12:37:28 +01:00
Ed Sanders 7c0fc8d3b9 Fix minor lint errors and typos
* Commas that should be semicolons
* Unnecessary 'call's

Change-Id: I11a80702b5396a36e3deecc6e706a397cc354bd8
2017-04-29 12:36:17 +01:00
Ed Sanders 0c2bb3da9c Add basic support for Parsoid HTML5 video/audio
Change-Id: I30b787261c57e912e571170d8aa2d04726b6aa3a
2017-04-28 14:08:18 +01:00
Ed Sanders f20b9b0aa0 doc: Tag mixin inheritance hacks with bug
Also mixin dm.MWResiazble to dm.MWImage (already done
in CE).

Bug: T92540
Change-Id: I32215873993a7e9a7f775ce3f39e2d378e0f31cd
2017-04-13 11:00:17 -07:00
James D. Forrester 8463524e18 MWSaveDialog: Run links through a render function for preview & visual diff
Provide a utility funcition in ve.init.mw.LinkCache to do this.

Also use this in ve.ce.MWTransclusionNode/ve.ui.MWPreviewElement, and
introduce to ve.ce.MWExtenionNode

Bug: T73900
Bug: T153535
Change-Id: Ieb9a0274b8c5ae1932c431546f09d18000fa6dd9
2017-03-31 10:51:35 +01:00
jenkins-bot 628852c3bc Merge "ImageCaptionNode: correct documentation typo" 2017-03-22 21:42:48 +00:00
Thalia 1f2655ce1a ImageCaptionNode: correct documentation typo
Change-Id: Ic6e66e82662ec2fbf673062a0b3bc1087c54c4c7
2017-03-22 21:10:47 +00:00
Ed Sanders 9526bcf6a1 Connect onModelUpdate to the right view node
Pretty sure this event does nothing for block images, but
if we are going to bind, bind the the ce caption node, not
the ce image node.

Change-Id: I02b5500f381e932efba87d61ccdf668cda377757
2017-03-22 20:33:55 +00:00
Bartosz Dziewoński 49f603c703 Update <pre> support for Parsoid changes
After 79ccfb9372cb57afa569036ef39ead13abfba673, MediaWiki's `<pre>`
tags get rendered as `<pre typeof="mw:Extension/pre">` in Parsoid HTML.
MediaWiki's indent-pre syntax (block indented by a single space) is
still rendered as `<pre>` in Parsoid HTML, however.

Indent-pre is still handled by MWPreformattedNode (no changes).
Introducing MWPreNode, which will handle `<pre>` extension tags,
and MWPreDialog to change its contents (and allow converting
to MWPreformattedNode).

Pieces copied from MWGalleryNode, MWLinkNodeInspector, CommentInspector.

Possible future improvements:
* Add a specific icon for MWPreContextItem
* Avoid API roundtrips for rendering (but rendering wikitext <pre>
  is not as simple as it looks)
* Consider a way to insert these other than '<pre' sequence

Bug: T159900
Change-Id: I5bc4ea6e5d893736f65ef0dd43b08c18cb1a1e85
2017-03-14 14:08:50 -07:00
Ed Sanders 91822ddbd5 Comment Parsoid hacks as such
Change-Id: I23fcc49031e3b34e5b83d7acea56845b325f3026
2017-03-03 22:41:36 +00:00
Bartosz Dziewoński 7beaf0ab9c ve.ce.MWTableNode: Provide preview of sortable table styling
Algorithm for deciding which cells handle sorting is exactly
the same as in the real jQuery Tablesorter.

Depends on changes in VE core:
* I50426e173c68af7df49e47fe3bec0465a9a55c26
* Iabb372dfe7bf5feef314315ac74a788c6c58dc20

Bug: T139072
Change-Id: I4446be2ad459b05590754da9bb6c3dd8f796be42
2017-02-13 21:36:43 +00:00
Thalia 8c4b8e55e5 Correct comment in MWBlockImageNode
Change-Id: I99058f97ac74b57c648be51cdb267d24a197b16a
2017-01-14 18:38:20 -08:00
James D. Forrester 122f49b2dd build: Bump file copyright notices for 2017
Change-Id: I3c20809e71cc0da58123e1b5f29c4f3aac945496
2017-01-03 08:58:33 -08:00
James D. Forrester f24e34de3c build: Bump eslint-config-wikimedia to v0.3.0 and make pass
Change-Id: I7449c11aa63c50fda667265c32021439cc53471f
2016-11-15 15:05:05 -08:00
Ed Sanders 7a0eb09e32 Cleanup elements passed to MWImageNode mixin
Change-Id: Idc736bca6ec7f9cae18d065303364ff5b7828a3b
2016-11-06 15:38:48 +00: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
James D. Forrester 36befda61c build: Replace jscs and jshint with eslint
It's new, it's fresh, it's amazing, it's here.

Change-Id: I5dc784411f704685ed5cc763a2b2b1c5d3e5a610
2016-10-28 18:33:15 +00:00
Roan Kattouw f2c715aaa0 ce.MWTransclusionNode: Clean up href normalization
This became a special case when decodeURIComponentIntoArticleTitle()
was introduced, presumably because we skipped underscore transformation
out of laziness here. It doesn't matter whether we do underscore normalization
because we do title normalization right after, so make this code
less exceptional by using the fully decoded title.

Change-Id: I036cc7f1e08895d36224c94b8edc3ad700af1947
2016-09-29 00:16:15 +00:00
Roan Kattouw bb45d984ca dm.MWInternalLinkAnnotation: Fix href normalization for special characters
<a href="Foo%3F"> would dirty-diff to <a href="Foo?"> and also render
as such, pointing to the wrong page.

We also called decodeURIComponent() on the href twice, which can't
have been good.

Move URI decoding and underscore normalization into
getTargetDataFromHref(), and add rawTitle for callers that need it.
Put rawTitle in the origTitle attribute, so that equivalence
comparisons (decode(origTitle) === title) work as intended.

Bug: T145978
Change-Id: I29331a4ab0f8f7ef059c109f6813fa670a2c7390
2016-09-22 09:10:41 -07:00
Ed Sanders 62bdaac13b Use super property to call parent methods
Change-Id: I76982b844cf2871d7583463def4393e5bdc33aa2
2016-08-23 11:56:47 -07:00
Ed Sanders 370ac2808a Restore parent method call in ce.MWHeadingNode#onUpdate
Bug: T143604
Change-Id: Ia4f01d4b901404660fbb1f9755feea36b076b71c
2016-08-22 21:28:48 +00:00
jenkins-bot cf4c2d41b3 Merge "Rewrite TOCWidget based on Linker::generateTOC" 2016-08-05 22:18:22 +00:00
Ed Sanders bb7b38575f Rewrite TOCWidget based on Linker::generateTOC
Use the new node cache to find headings.

Change-Id: I5eb75c5db5ca466fd6f16a57c693c2a4458cff7c
2016-08-05 14:11:15 -07:00
Ed Sanders 4ae7bc6a31 Show name of template for invisible templates
Soft dependency on Id842389d in core.

Bug: T141861
Change-Id: I24f100dde387549a735ebd93e1c9a21f59f52170
2016-08-03 18:52:20 +00:00
Ed Sanders 066f82f4b1 Check surface exists when triggering toc rebuild
Bug: T139205
Change-Id: I9cc01c3dc2e9bcd822d5498b2a95d01cc4e82953
2016-07-06 17:12:51 +01:00
David Chan 367bc2437f New decodeURIComponentIntoArticleTitle method
This replaces ve.safeDecodeURIComponent(...).replace( /_/g, ' ' ) . This action
is really specific to the quirks of mediawiki title processing.

Change-Id: Ia9e525c9340e6de9e485355899996c97867ccb48
2016-06-14 23:31:23 +01:00
Ed Sanders 236e3d1241 [BREAKING CHANGE] Evalute block/inline state when inserting a transclusion node
Make some of the methods we currently use to render the node
static so we can re-use them before inserting. We do the evaluation
without inserting the node so as not to dirty the document and
transcation history.

In the unlikely case the request fails, just fallback to inline.

This only handles insertions for now as type changes on edit will be
very rare.

This changes the signature of insertTransclusionNode, which is used
in Cite and Citoid extensions.

Bug: T51784
Change-Id: Ibc2fc66e6866084b0a4deeb082c8a1ca412febb2
2016-05-16 09:19:13 +01:00
Tpt 8ccbb58ca6 MWExtensionNode#generateContents: Fix renderEmpty logic
This static attribute is not used anywhere so it should be safe

Change-Id: I633c521859b59614835344a4644560ac933c6028
2016-04-02 07:58:33 +00:00
Ed Sanders 681250dd5e Filter out auto-generated reference lists
Bug: T101553
Bug: T127664
Change-Id: Idc8c6f30ccdd5eaf76a3f7c1b923d8656ca36413
Depends-On: I24250845e97acb4b7de9c495cb46dbd28fc8817e
2016-03-28 17:23:42 +00:00
Ed Sanders bbf86a6768 Use iconWhenInvisible for alien extension nodes
Change-Id: I0bc9bfd040685855402f705f46973e36c42dc0db
2016-03-07 18:15:45 +00:00
Ed Sanders 62d16e5a8a Update VE core submodule to master (ac24b50)
New changes:
0b7e689 FindAndReplaceDialog: don't use tabindex
17b10a5 Localisation updates from https://translatewiki.net.
a4133e4 [BREAKING CHANGE] Make whitespaceHtmlCharacters a real static property

Local changes:
* MWEntityNode: Fix lookup of whitespaceHtmlCharacters

  Property is now in 'static', and use registry to look up
  TextNode by symbolic name.

Change-Id: Ied8c0c6feb69141c7c53fc4cc790774dee2cb63c
Depends-On: I7537b46a9fd58dfb2bd18dc4ed469aa221b96e86
2016-03-03 08:13:33 -08:00
James D. Forrester 1e0486a679 Remove all Extension:Cite code, now moved there
Depends-on: I39936ed83d5a60471a0a75da753f498e80aef234
Depends-on: Ifd853bf9f901065798bd0063aeaa786a3761aa71
Depends-on: I32c93c5118eafe5f071252290c58d3de8dacc81a
Change-Id: Iba0f25b3ebe4e5e63377da57afb760d6980f9907
2016-02-05 21:36:56 +00:00
Ed Sanders 5864a62134 Default extensions to not use the 'invisible icon'
Bug: T125767
Change-Id: I58c58080382974a887ebc52c1ac80cb5970db8c7
2016-02-04 19:38:16 +00:00
Ed Sanders 98bc5daba1 Use new iconWhenInvisible feature in Transclusion/Extenion nodes
Change-Id: Iba55676c06a1cd625187c38c1ae0c9c20b065827
Depends-On: I127bb5d34850cdc545ea3c05d0fc41a8ae1c6dea
2016-02-02 18:07:13 +00:00
Ed Sanders ba0b084813 MWTableNode: Mixin ve.ce.ClassAttributeNode
The DM side already had the mixin, the CE side was still using custom
logic that has since been moved to ce.ClassAttributeNode.

This fixes the issue of tables not getting the wikitable class in VE
as it was only applied on attribute change previously, which never happened.

Change-Id: I197347762fc9228034f7664484539e5888722bcf
2016-01-25 16:35:49 +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 ae26eefb05 Fix typos
Add some common ones to typos.json

Change-Id: I3830be4949ab6a5fd998d6937ed83e9f18091c2b
2015-12-09 16:47:13 +00:00
Bartosz Dziewoński 9be5c85db4 Provide a tool to insert a signature in namespaces that need it
VisualEditor is usually not enabled in talk namespaces... but
sometimes it is. And when users see the button to edit with VE,
they're going to click it and expect to be able to sign their posts.

This tool is only loaded on talk pages and pages in additional
namespaces defined in $wgExtraSignatureNamespaces.

Code adapted with small tweaks from my own gadget
<https://meta.wikimedia.org/wiki/User:Matma_Rex/visualeditor-signature.js?oldid=13461327>,
which is already available under the MIT license.

Changes include:
* The tool is now always visible if the wiki allows signatures in any
  VE namespaces, but disabled when not allowed in the current namespace.
* Register '~~~~' sequence to insert the signature.
* Code style tweaks for stricter lint checks in this repository.
* Documentation corrections.

Swedish translation provided by André Costa (already credited
as a translator as Lokal_Profil).

Depends on changes in VisualEditor core:
* I89fe53890ab59d12260ea6b41de802c38c24e8b9
* I14cd7efac521687ea38580341ae08ddc522edeeb

Bug: T53154
Change-Id: I6be5fb2118cf3eef5098d4c5320228aa81411ccb
2015-11-16 18:06:32 +01:00
Ed Sanders d63dce138d MWExtensionNode: Fix selector to find dimension-less images
Change-Id: Idf219636f9b2b58e30b1a155c052ada4c60e6ec9
2015-10-02 14:18:13 +01:00
Ed Sanders 50de745afd MWExtensionNode: Copy mw data before modifying
Otherwise we are directly modifying model.element.attributes
which is very bad.

Change-Id: Icf066a5848b9c67c2c4b3fcafd72d0142996e48d
2015-10-01 13:34:01 +01:00