Commit graph

388 commits

Author SHA1 Message Date
Bartosz Dziewoński 5b7c93f0d5 ve.ce.MWBlockImageNode: Remove unnecessary #setupSlugs override
MWBlockImageNode already can't have any slugs:
* It can't have inline slugs, because it can't directly contain
  content (`this.canHaveChildrenNotContent()` is true)
* It can't have block slugs, because it can't contain paragraphs
  (`this.isAllowedChildNodeType( 'paragraph' )` is false).

(The only thing it can contain is a mwImageCaption.)

Change-Id: Ice6505da2356f004ef048ed0b1a9e03d08af02d1
2018-03-01 01:08:30 +01:00
jenkins-bot 6155cd4434 Merge "Remove autoGenerated hack" 2018-02-28 18:41:29 +00:00
Jforrester 2e87e03a29 Merge "ve.ce.MWGalleryNode: Ensure we always have a focusable element" 2018-02-22 00:33:23 +00:00
Bartosz Dziewoński 180eb91f3f Increase selector specificity for .ve-ce-focusableNode-invisibleIcon
Otherwise our width/height rules are overridden by OOUI styles.

Change-Id: I2bbf81231615e6fcfd95573f5f590b5101e66bdf
2018-02-21 22:30:45 +01:00
Bartosz Dziewoński a5e2f60d7e ve.ce.MWGalleryNode: Ensure we always have a focusable element
For galleries with 0 items, this would previously return an empty
jQuery collection, which caused funny rendering issues later.

Bug: T75230
Change-Id: Ia68e4f1b74b5ec494fa3d86f0b792f69eadb02fb
2018-02-21 22:22:49 +01:00
Ed Sanders 35311ad66d NWE: Use internal paste in compatible browsers
Bug: T185730
Change-Id: I9410707e6e491fe1cbe0b367fccb94a29a1b3145
2018-01-25 17:40:26 -08:00
Arlo Breault 25e3662c00 Remove autoGenerated hack
Reverts some of 471e40e

Depends-On: I2b5c7ff552b3322be74f79a81936c41d58fecabc
Change-Id: Ibfcd4ced6c58c1cd0d362af3bdb43ce4e6879941
2018-01-12 11:52:42 -05:00
James D. Forrester 0a7a845a42 doc: Bump copyright year
Change-Id: I0b299c840ede1a1b8552cecfc70c5760ab036181
2018-01-03 17:45:07 +00:00
C. Scott Ananian b85caca493 Strip legacy section IDs from inside headings
We emit <span id="..." typeof="mw:FallbackId"></span> inside headings
when necessary to provide backward compatibility with pre-HTML5
section ids.  These are mostly harmless inside VE --- they become hidden
alienated nodes, which are then safely ignored by Parsoid during html2wt
even if they manage to migrate outside of a heading --- but it's a
little safer to strip them.

Change-Id: I07d0fcf54427ab02d4930cff183d3e5579a99306
2017-12-12 12:15:05 -05:00
Ed Sanders 28ed1a6b97 MWTable: Cleanup events and prevent fire after teardown
Bug: T181767
Change-Id: I9b86d810269f3e3e15ba4736d264dbf48c9a0fe3
2017-12-03 14:46:47 +00:00
Ed Sanders 471e40e8bb Fix template rendering
* Look inside first child for autoGenerated (as reflists can be wrapped)
* Unwrap Parsoid sections
* Discard leading and trailing whitespace

Bug: T179618
Change-Id: Ib9ead28173360f0f1d5a4dc66c33a75d70ef34b3
2017-11-27 15:02:31 +00:00
jenkins-bot 908205d4ac Merge "ce.MWWikitextSurface#onCopy: Do nothing if selection is empty" 2017-11-07 16:18:21 +00:00
Ed Sanders 1cf2bf4a67 ce.MWWikitextSurface#onCopy: Do nothing if selection is empty
Bug: T179920
Change-Id: I3400f8277a4de6bac216ecbc0ba0d46670e03d11
2017-11-07 16:09:33 +00:00
Ed Sanders b85df2fb8e Fix context menu placement on galleries
Change-Id: I8d64f805ac3f1ef311bcf1e0e745263b4edbc4c7
2017-11-04 11:25:41 +00:00
C. Scott Ananian b56e7eec4d Efficiency improvement for MWLanguageVariantNode#hasRendering
Override ve.ce.FocusableNode#hasRendering with a model-based test to
improve efficiency and avoid some unnecessary DOM measurements.

Change-Id: Ice7aebcc2f30dc73ef049a6ed0d4a0cffe86d8e2
2017-10-13 15:11:47 -04: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 dc500697e1 Follow-up Ia08dbb44: $attachable -> $bounding
Change-Id: I88101426998c7f11a7dfd3b971a1274e5aad638a
2017-09-28 17:36:37 +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
Ed Sanders 842d0bb8ed Set bounding element to full frame for MW images
Logically depends on Iea800132.

Bug: T176646
Change-Id: Ia08dbb4400400990e1e518bc47afd5d60795c736
2017-09-25 17:17:27 +00:00
Ed Sanders 14f99e3757 Wait for tree to finish building before updating caption
Bug: T176265
Change-Id: Ib73943beedc6a0166699b33b4d1148d8ba32ad20
2017-09-20 16:00:41 +01:00
jenkins-bot 6f12d066d1 Merge "Rename LanguageConverter markup fields" 2017-08-11 14:28:11 +00:00
C. Scott Ananian 4ff740fe21 Rename LanguageConverter markup fields
Avoid confusion by using `twoway` instead of `bidir`, which could be
confused with the Unicode bidirectional layout algorithm.

Depends-On: Ib59dff22e64f235e30778a5a5b3e525e4fc7fdd3
Change-Id: I7efb35245d48125b167dc0f0ef8f12aa0fff94e5
2017-08-10 10:59:57 -04:00
jenkins-bot afd3bb5a1d Merge "Remove code for magnify icon from figcaption node" 2017-08-09 16:35:54 +00:00
C. Scott Ananian 9ee713d480 Display LanguageConverter markup in VisualEditor
Implement special node types for language variant markup, so that they
display appropriately based on the currently-selected variant.

(Parsoid uses empty elements to represent this markup, so without this
patch anything in -{ ... }- is alienated and disappears.)

A follow-up patch will implement context items and inspectors to
allow editing these nodes.  This patch is basic "read-only" support.

Depends on I4fcdebc2290ec35ba188f4c2e69d578791fbcd67 in Parsoid to
generate the appropriate markup, but this patch is safe to merge
independently.

Bug: T49411
Change-Id: Ie11e9301d2513bfe4a36036481cee9a047f46d37
2017-07-25 15:26:41 +00:00
Ed Sanders aeca5a8253 Remove code for magnify icon from figcaption node
This icon is now added by Parsoid content CSS.

Bug: T160960
Depends-On: Id66f09c54103854ccbaa54a03e7c62890b67cba9
Change-Id: I8d76d759641b091c1821ff658b1201ca625fd146
2017-07-25 14:48:39 +01:00
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
David Lynch cfe1d6c0c9 TextInputWidgets: update for deprecated multiline behavior
Remove config option `multiline` and change to MultilineTextInputWidget as
appropriate.

Bug: T169272
Change-Id: I45565f01de76a88d64d7b0691d1e7279354f375d
2017-07-03 22:09:58 +01: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
David Lynch d5ac18a466 LinkCache: don't treat a link with a fragment as a selflink
This matches the rendered output for the page.

Bug: T162669
Change-Id: I1ea0ab37a2751c0b4669da8a23adf0ce271facea
2017-04-11 12:19:01 -05: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
jenkins-bot 80618cc629 Merge "dm.MWInternalLinkAnnotation: Fix href normalization for special characters" 2016-09-22 16:19:12 +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 d8fb7b84d3 Only unregister WT string handler in WT handler factory
Bug: T144653
Change-Id: I91528b56ac3905a05e8da51455055537958e026e
2016-09-21 13:08:10 -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
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
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
jenkins-bot d2c995594a Merge "Remove remaining references to csslint" 2016-05-17 12:41:48 +00:00
Ed Sanders 8d749518ec stylelint: Comment uses of 'unsupported' browser CSS features
Change-Id: Ia88575d3fe71c22551cc601f03d8f4dea6d7fe16
2016-05-17 12:28:07 +00:00
Ed Sanders df49e5deb9 Remove remaining references to csslint
Change-Id: I1b5177bf746985a199bcc1ec713f886164c74760
2016-05-17 13:27:47 +01:00
Ed Sanders 99d3320573 build: Replace csslint with stylelint
For now just use the rules file in lib/ve, but eventually
this will be a preset.

Change-Id: I7fd79d3e1dce37aef066d416cd969e5fff1e962f
Depends-On: I17e0d23ddfedf64985495ab35d113ea08c03b1df
2016-05-16 22:30:49 +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
jenkins-bot 1b455ac201 Merge "Call afterRender whether or not images emit 'load'" 2015-09-30 21:00:13 +00:00
Thalia 53f4aa64d9 Call afterRender whether or not images emit 'load'
MWExtensionNodes currently don't call afterRender if the image
is already loaded, which can happen if we decide not to rerender
after an update (e.g. when the response is an error).

Change-Id: Ic9c11e446a7cc789bb20680466709ff2ad5cb22e
2015-09-30 21:47:40 +01:00
Ed Sanders 074f7bcefe Follow-up If556afa10: Fix typo: nodeType -> nodeName
Change-Id: I19915647981787f7bbf2c86fc7bd02308d5da218
2015-09-29 17:35:23 +01:00
Roan Kattouw 0d4b30f927 MWInlineExtensionNode: Don't assume responses are always <p>-wrapper
For the Score extension they aren't, and this causes JS errors in production.

Change-Id: If556afa1046f460d7fdd29cb1c50ac93dad88fde
2015-09-28 19:36:48 -07:00
David Chan 5ce6faf020 Zero-width space to avoid empty annotation cursoring bug
Add zero-width space to make span-like tags non-empty, so that the browser won't
merge their cursoring positions with the following character.

ve.ce.MWNumberedExternalLinkNode:
* Insert U+200B ZERO WIDTH SPACE inside span (before 'a' tag).

Bug: T96307
Change-Id: Ib07f732043eae4640e3dcfdc06015bcf8897c7b4
2015-09-22 23:45:14 +08:00
Ed Sanders 2007800ce4 MW*LinkAnnotation: Fix class names
Link annotations now use $anchor instead of $element for the main <a> tag.

Change-Id: I038ecf97133a71fe86bb0d269a64bbe0ba46bdc2
2015-09-16 19:28:18 +01:00
Ed Sanders b9183540ef Remove explicit setting of ce=false on FocusableNodes
FocusableNode already sets ce=false so this is redundant.

Change-Id: I4432dd0a5e5dff3f8e909f2d7c1912f3d69e1b70
2015-09-01 18:51:54 +00:00
jenkins-bot 8502d3ea05 Merge "Specialized inspector for ISBN magic links" 2015-09-01 18:34:23 +00: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
Ed Sanders 519e029298 Rerender extension node immediately if no images exist
Bonus: Filter out images which already have width/height defined

Bug: T110314
Change-Id: I9fbd5050bb5d10c9c24a2b761f6248da8179bf72
2015-09-01 09:50:58 +00:00
jenkins-bot ce6d4eb8c5 Merge "ve.ce.MWTransclusionNode: Pass number of templates to context" 2015-08-24 21:47:08 +00:00
Alex Monk b5dd86685b ve.ce.MWTransclusionNode: Pass number of templates to context
Fixing <visualeditor-dialog-transclusion-contextitem-description>.

Bug: T109564
Change-Id: Icdf762b3761227c3fcedefc947ffc512520cff76
2015-08-24 14:41:07 -07:00
James D. Forrester 00d3226be1 build: Enable jscs jsDoc rule 'checkParamNames' and make pass
Change-Id: Ifcd3f67524c32148ff3591263d6374b31ee57d3b
2015-08-19 11:33:59 -07:00
James D. Forrester 85f91f394e build: Enable jscs jsDoc rule 'requireNewlineAfterDescription' and make pass
Change-Id: I7c0fabc93834d19198caea8f5dd1834e9e473d0a
2015-08-19 11:21:01 -07: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 f5c6f61163 build: Enable jscs rule 'requireSpacesInsideBrackets' and make pass
Change-Id: I846d36c15e1b1f810d2ef7fd422f8412790bcb0f
2015-08-19 10:33:02 -07:00