Commit graph

294 commits

Author SHA1 Message Date
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
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 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
C. Scott Ananian a6775796fe Detect paste of wikitext and convert it
This invokes Parsoid to convert likely wikitext pastes.

This addresses about 20% of the <nowiki> insertion quantified at
https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:%C3%89diteurVisuel/Avis/Nowiki
for 2015-04-08 which were due to inadvertent pastes of wikitext.

For a better user experience, suppress Parsoid's P-wrapping if the
output consists of a single top-level P element.  This ensures that
pasting '[[Foo]]' won't add an unexpected newline before the paste.

Bug: T54204
Bug: T109449
Change-Id: I26a4cd8dc5b7e7caf16ca081dbe7baf6a7db8e5c
2015-08-18 15:16:06 +00:00
Ed Sanders de98382a55 Make transclusions which are td/th elements behave as table cells
Depends on Ic94242c0 in core.

Bug: T85648
Change-Id: I0f65fca37fe94486d0a736d763270b3dc5503649
2015-08-04 17:52:13 +00:00
Ed Sanders 97e0cd28a5 Make missingref references uneditable, not uninspectable
Depends on I1ba8978dd in core.

Bonus: remove not-allowed-cursor & highlight title (which was
broken) now that we can display this information properly.

Bug: T106810
Change-Id: I1800490ba1b8e10ff54b26372a8a78661c1c7d68
2015-07-24 12:03:05 -07:00
James D. Forrester 57f8fc5368 build: Drop last jscs over-ride and make pass
Change-Id: I4ff60af79cfc6e09e284d51f9b7ac2afa900f0f5
2015-07-22 15:13:09 -07:00
Marc Ordinas i Llopis 7a33613d23 Use Parsoid's new Cite HTML and CSS
Starting with I21fbbd3247bf7801e5ef9bd5312f95777f4dd6ef, Parsoid
will emit a new HTML for its Cite extension, which enables CSS
styling. In I487095df8a7c4241a14f7b4480360f6774130bec the new
module 'ext.cite.style' is added to the Cite extension to style
this new HTML format.

This patch
* Loads the ext.cite.style module if the Cite extension is
  present.
* Uses the new HTML format for the internal structure of
  reference and reference list nodes, so they are correctly
  styled.

Backwards compatibility: Only new HTML is used internally in VE,
so as long as ext.cite.style can be loaded the new styles will be
used. It does not depend on which format Parsoid returns, so this
patch only depends on the Cite extension patch, not on the Parsoid
one.

Note: The only way I've found of adding a ext.cite.style dependency
only if Cite is present is to register the whole
ext.visualEditor.mwreference module in the
onResourceLoaderRegisterModules hook. Maybe someone can point to
a better way?

Bug: T86782
Change-Id: Ibf333a502d64d2ed6e029221458b7c606554e414
2015-07-06 14:23:18 -07:00
C. Scott Ananian 85b86fb45d Stop using deprecated aliases for OO.ui.mixin.*
These classes were renamed in OOUI v0.11.4.

Change-Id: Ie932eb3bf5e65866ae4ba3bf2317facb1e740d3b
2015-06-10 20:25:04 +00:00
Ed Sanders 160a673e7c Omit extension attributes with an undefined value
Change-Id: I0abad51eb392644159d1845ef3a35986dc5cb79b
2015-06-08 16:03:47 +01:00
suchetag dc2247460c Representation for the red-linked inline images in VE
The red-linked inline images in VE are now identifited as red links and image errors.
They can be changed and thereby be modified just as any other inline image on the editor.

Change-Id: Idb6f6f2da14379fd7db6ca19613dad32fe40023d
2015-05-25 15:18:15 +01:00
suchetag de12c761a3 Representation of red-linked images in VE
The red-linked images in VE are now identifited as red links and image errors.
They can be changed and thereby be modified just as any other image on the editor.

Bug: T52788
Change-Id: I9cbb992c34d71b7073157fe276fee04e901845b1
2015-05-16 17:15:51 +01:00
Ed Sanders 9811bc4fd9 Don't show placeholder references in lists
Allow references to be created as placeholders and exclude
them from ReferenceListNodes and the ReferenceSearchWidget.

Bonus: Fix reference numbering when items are skipped (in
list nodes and search widget).

Change-Id: I8dc5146c21f309e89ff4ddd939f7c65a0c358378
2015-05-06 19:15:20 +01:00
Bartosz Dziewoński 7421d9673c ve.ce.MWEntityNode: Show whitespace characters, like in ve.ce.TextNode
So &#9; used in page source will render the same as literal tab, etc.

(I have a hidden motivation vaguely related to T96666, but this is
probably a good idea anyway.)

Change-Id: I3d462dd4ece94a71645786fab8771788b991456a
2015-04-21 16:25:08 +02:00
Bartosz Dziewoński f64c554732 Remove ancient bad copy-paste documentation
Originally added in 1d94af144a.

Change-Id: Ia6a92bf5fa940ea54af61b333870dd7d0a65a92b
2015-04-21 16:05:44 +02:00
Roan Kattouw 95bffa22a0 Stop using this.$
Has been a backwards-compatibility alias since OOjs UI 0.7.0.

Change-Id: I17d7c03e9d1b9fa991d88444d22abfd403269ee0
2015-04-14 02:54:01 +01:00
Ed Sanders fdcd42f73a Split AlienExtensionNode into inline and block
MWExtensionNode:
* Inherit from LeafNode at the top level. Inline and block only
  differ in CE where inline has isContent set.

MWAlienExtensionNode:
* Inhert from MW(Inline|Block)ExtensionNode respectively. Both
  mixin MWAlienExtensionNode.

Bonus:
* Bring in paragraph unwrapping on inline nodes from MWMathNode

Bug: T93712
Change-Id: Ib04234f740cf1f27c861d8b3cfeea5e323b94678
2015-04-09 16:32:02 +01:00
Ritsyy d67543745f Adding minimum width and height to MWAlienExtensionNodes
Bug: T92868
Change-Id: I9387f17e0ff1cf88283f290488ce900418ef3150
2015-04-08 18:08:00 +01:00
Roan Kattouw f3b7ccdefb Use ve.safeDecodeURIComponent()
Depends on Iacc50230a in VE core.

Change-Id: I7fc505c261726f8d83c86a9cc352a0bf9fcb455a
2015-03-31 22:08:46 +00:00
Ed Sanders f86b8aef74 Use new isVisible method
Also make sure only one icon is appended in the case where
$element consists of multiple siblings.

Depends on I7b4d9a54c in core.

Change-Id: I5a7985b7a2c709f079afcdfd5108d73cc7bfc688
2015-03-30 11:28:54 -07:00
Ed Sanders a1bc7aeac1 Move template icon code to setup event
We must wait until setup before we can measure this.$element.

Change-Id: If657b29e30e44af750516c20d318707293066910
2015-03-26 18:12:46 +00:00
jenkins-bot 557e0e28ad Remove use of ve.indexOf and ve.getObjectKeys
Change-Id: Icbaa729209605fca8018e4bcbbe29c9ded64e7f2
2015-03-10 17:28:00 +01:00
jenkins-bot fdfc7c6386 Merge "Remove useless ve-ce-mw*Node classes from GCN subclasses" 2015-03-10 12:50:42 +00:00
Moriel Schottlender 4fc02cea6a Use a detached icon in transclusion node
In the case the node is empty and we need an icon, use a separate
icon element that is detached and reattached as needed.

Change-Id: I5bcbe531cb1db1a4ac25ed4a2f462dde08513b7b
2015-03-09 12:05:32 -07:00
Moriel Schottlender be965d1c4f Follow-up I11b9f0ab: Only make icon on transclusions that require it
When deciding to add an icon to a transclusion (specifically, when
it is hidden) do so only if it is justified. Otherwise the
node becomes the icon even when it has information in it, which,
starting from the latest OOjs UI change, also has specific (small)
sizing.

Change-Id: I521c92fc645a392077e6cc90f55557c4cea3cb11
2015-03-09 17:54:55 +00:00
Roan Kattouw 6648f94982 Remove useless ve-ce-mw*Node classes from GCN subclasses
Since GCN aggressively modifies this.$element, these classes
didn't survive for very long, and they weren't being used
anyway.

Change-Id: I6e9827499374941fbded983956c57cc250d957c8
2015-03-09 12:05:30 +01:00
Moriel Schottlender 2ae9fa6b29 Add an icon to hidden templates
Check if, after being fully rendered, a template is effectively
empty. If it is, add an icon and style to it so it displays for
the user and is clickable.

Bug: T51806
Change-Id: I11b9f0aba3398a3deb3e755051366e174a28e586
2015-03-04 10:30:50 -08:00
Alex Monk 8e48f94580 Use mw.Api to run requests rather than our own stuff in ve.init.mw.Target
Bug: T58659
Bug: T89435
Change-Id: I18162f04c50f48606378aed62ee99fccdc3159f6
2015-02-25 01:57:22 +00:00
Roan Kattouw ee886cd8f8 ce.MWTransclusionNode: Protect against race condition in GCN rendering
If an MWTransclusionNode is inserted, then immediately modified,
a race condition can occur where the GCN rendering arrives for the old
node, which is already detached and doesn't have a ModelHtmlDocument
any more. Protect against this happening so we don't cause a JS error
by passing null for the document parameter to ve.resolveUrl()

Change-Id: I1964baa3a9b294b130620e9b34a695584fc55143
2015-02-16 19:21:00 -08:00
Moriel Schottlender 8a53b2cd07 Use css class instead of jquery show/hide
Replace instances of .show() and .hide() with ooui 'hidden' class
to make performance better.

Related ooui change: Ibf7c99aa4aad

Bug: T87420
Bug: T88736
Change-Id: I3af8a322e88b7ba3364f350819d6dbcdc8b13270
2015-02-06 11:03:59 -08:00
James D. Forrester bed038b509 build: Bump devDependencies to latest
Updates:
* grunt-contrib-csslint  0.3.1  ->  0.4.0
* grunt-contrib-jslint   0.10.0 -> 0.11.0
* grunt-jscs             0.8.1  ->  1.2.0

For jscs, leaving requireSpacesInsideArrayBrackets to avoid headaches for now.

Change-Id: I62d34444edbba65c8bd22d2fa5e50e16cabb0042
2015-02-02 14:30:39 -08:00
Ed Sanders f4bb7de786 Only re-render if the images is larger than the last rendering
Means we don't make unnecessary requests to the image API
and make the server side image resizer do extra work.

Bug: T88248
Change-Id: I20e1d37c913522eafc45a9a2e263051322b9b083
2015-02-01 13:07:48 -08:00
Roan Kattouw 154d2cb118 ce.MWReferencesListNode: Remove unnecessary .show() call
ce.InternalItem used to .hide() its .$element, but it doesn't
do this any more, so we don't need to counteract this with
.show() any more either.

Bug: T87160
Change-Id: Ic367508d821cc5c65678d4c878edc84911fd8178
2015-01-23 15:08:50 -08:00
James D. Forrester 2f8b3e0d96 build: Bump copyright notices to 2015
Change-Id: Ie92dab7411116d3410195c3fb0a3513c664c0c30
2015-01-12 20:34:19 -08:00
Roan Kattouw f71054d67d Work around $.parseHTML( '' ) returning null
$.parseHTML() always returns an array, except in this one case,
so checking .length of the return value almost always works except
when it blows up in your face.

Filed upsteam as https://github.com/jquery/jquery/issues/1997

Bug: T86056
Change-Id: If133a9df4d573b41b0ecb5bde47b3e6ada053921
2015-01-07 21:02:17 +01:00
Timo Tijhof 2b7ae8c175 Remove use of bind() for inline functions
Follows-up b0e8900, 447e8de, d3f26e65.

Contrary to binding a reference, this-overiddes for inline
functions gets messy and fragile. There's also a minor
performance overhead that can be avoided. No separation of
concerns, eiter, as the object is held by the closure.

Also:
* Remove left-over instances of @method.
* Remove redundant '0' argument to setTimeout.
* Use null instead of $ for apply() on static methods like $.when.
* Use .empty().append() instead of .html(). Does the same but
  without additional overhead and without confusion association
  with "html" which isn't used (it doesn't serialise and re-parse
  or clone, it just appends when given one or more nodes).

Change-Id: I797a3667c67d52568150be9be5d043d149f22077
2014-12-16 23:27:53 +00:00
Alex Monk a7b9b89479 Fix href parsing in transclusion nodes when on alternative (e.g. mobile) domains/paths
Use model HTMLDocument when parsing transclusion nodes and their link hrefs

As well as mobile, this also covers the issue I found in /w/index.php?veaction=edit

See also T76374

Bug: T76379
Change-Id: I07c9ba0adbcee32f7eb2ca280d3a1d46e963d28f
2014-12-05 22:23:09 +00:00
Alex Monk c2ed5201e5 Handle encoding of links in transclusion nodes properly when determining existence
Bug: T75823
Change-Id: I9398e4e1657b218043658d83b13c3dc78ffa8ff1
2014-12-02 01:09:12 +00:00
James D. Forrester cfb20ef8a1 ve.ce.MWTransclusionNode: Replace last use of ', ' in VE-MW with <comma-seperator>
Bug: 66894
Change-Id: Idd6d02e35b9aa0db5f71c75adb0a0400cc31c83a
2014-11-19 11:19:50 +00:00
Ed Sanders ef38ce8c8c Move addClass calls to setup in GeneratedContentNodes
Ensures classes persist on content update.

Change-Id: I4828ad3208351e4b00e0be1f905b7eafd5e5e93b
2014-11-12 22:52:59 +00:00
Ed Sanders e0981a327f Create mwTables with wikitable attribute by default
Change-Id: I094b1823248e16dd3b9a0a10ba13104f14798621
2014-10-29 12:52:24 -07:00
Roan Kattouw 36060a2782 Apply pre-save transform to template previews
Because autoValues often involve {{subst:}}

Bug: 71157
Change-Id: I2787f2595f8c4b8838a3e9ac9ba898af0b43b58e
2014-10-22 15:47:51 -07:00
Roan Kattouw 4bc24e795d Open the linkNode inspector when pressing Ctrl+K on a link node
* Introduced MWLinkAction which opens the right link inspector
  based on what is selected.
* Added MWLinkInspectorTool overriding core's 'link' tool that
  executes MWLinkAction
* Removed MWLinkNodeInspectorTool and linkNode command,
  they're unneeded now

Bug: 72150
Change-Id: I03bd6ab1f67f31a6e6cb717cf4298e80e64637b7
2014-10-21 19:47:42 -07:00
Alex Monk 55164d4027 Don't try to check page existence of external links in transclusion nodes
Only internal links

See bug 71900 comment 1

Change-Id: I35c9bea4c3735bdcdf8e4eda4f2a24567596e639
2014-10-17 19:49:32 +01:00
Alex Monk 8f7713e796 Apply link styling logic to transclusion nodes
Only template nodes for now. Not sure what we can do about generated content nodes in general...

Bug: 65353
Change-Id: I848f36764b446ed30c74c0e641d0973008f6880b
2014-10-08 15:03:40 +01:00
Alex Monk ef1cebd111 Use mw.Title#getRelativeText to deal with titles relative to specific namespaces
Added in MW core in Ie554adef, was backported to 1.24.

Change-Id: Iedc0319042529d41d29846d1734b5481850e9552
2014-09-26 02:47:18 +00:00
Roan Kattouw cf1a889ac8 Update VE core submodule to master (5f4b740)
New changes:
a047e72 [BREAKING CHANGE] Create ve.dm.Focusable and store focusable flag there

Local changes:
* Add new ve.dm.FocusableNode mixin where required

Change-Id: Ie9ee2de05acfe3c4c62c4864e65bd20397d6a069
2014-09-16 18:45:22 -07:00
James D. Forrester a232147b11 Switch 'disallowQuotedKeysInObjects' jscs rule on and fix up
Change-Id: I75ac4b378ef485feead9d0eff34ed7877b94b5d0
2014-08-22 13:50:48 -07:00
jenkins-bot 9bd21b6a30 Merge "Remove div-wrapping of block images" 2014-08-21 20:31:26 +00:00
jenkins-bot 80cab577c7 Merge "Remove span-wrapping of link='' images" 2014-08-21 20:31:24 +00:00
James D. Forrester 5148a0836a Rename "reference list" to "references list" internally
That's what we call them in human-speak, and it makes sense to have them align.

Bug: 49923
Change-Id: I8dcfba249fb9ea13c2b4052e98a4d253c302b1ba
2014-08-20 18:26:54 -07:00
James D. Forrester 53dd7de095 Drop references to magnify-clip-{ltr,rtl}.png file
This is now embedded via CSS in MediaWiki core's Linker as of 1.24wmf18.

Change-Id: Ib095740611de3f84f1aad229939b92d788b537c2
2014-08-19 17:18:18 -07:00
Ed Sanders 5fd7df9787 Remove div-wrapping of block images
This hack is no longer neccessary now that we no longer
use shields.

Change-Id: If8fbd23ce9ac16bf5f52dc754e04f0a100f374fd
2014-08-19 13:08:47 +01:00
Ed Sanders a22aeafc06 Remove span-wrapping of link='' images
This hack is no longer neccessary now that we no longer
use shields.

Change-Id: I2194b16273b1ebe6e8d9360957cc7eab856dae13
2014-08-19 13:08:47 +01:00
Ed Sanders 18a9f95f5b Use extension name in context menu for alien extensions
We already use this for the inspector title.

Change-Id: Iac157fd3c6f1a23f2bf7b68e2b6ebe55f49a25d5
2014-07-30 14:14:12 +01:00