Commit graph

414 commits

Author SHA1 Message Date
Ed Sanders 3d39b80991 Fix detection of headings in NWE format menu
Use regex to include match any character after '='.

Bug: T147585
Change-Id: I22228bedf497613506a676eca465d3bc7bc5fe67
2016-10-08 20:53:58 +00:00
Ed Sanders a9233045c7 Detect format in wikitext
Logically depends on I575d92c4fa.

Should really use a registry, and also doesn't update when
format is changed by deleting text, but is an improvement
for now.

Bug: T147218
Change-Id: I0cb87dbad2ab4269c4f89bdff8a4ccd9b35c8635
2016-10-04 11:04:54 -07:00
jenkins-bot c1cb6edf83 Merge "Don't try to add suggested/required parameters already set under alias names" 2016-10-04 15:49:27 +00:00
Alex Monk e3a387b517 Don't try to add suggested/required parameters already set under alias names
Bug: T143650
Change-Id: I6d5ed2903a468205760f715b9bb36a40bdef926a
2016-10-03 17:57:55 +01:00
jenkins-bot 8375c57a6c Merge "Revert "ve.dm.MWMediaResourceProvider: Use mw.ForeignApi rather than JSONP"" 2016-09-26 18:55:13 +00:00
Bartosz Dziewoński 1d8032db1c Revert "ve.dm.MWMediaResourceProvider: Use mw.ForeignApi rather than JSONP"
The change was merged without the necessary dependencies.
This reverts commit 2b1c3914ec.

Bug: T143279
Bug: T146661
Change-Id: I5ce945f6167c9db5d5f03c824dee3d89cd0931a8
2016-09-26 18:49:00 +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
Bartosz Dziewoński 2b1c3914ec ve.dm.MWMediaResourceProvider: Use mw.ForeignApi rather than JSONP
Bug: T143279
Depends-On: Ic93d733cb9e1b1d7301f8975c68ab7ded778845a
Depends-On: I24c2819ec2adcab468f961c5c46b31c331324567 (for CA wikis)
Depends-On: I372e7bdff35400287b3d961da979d6f094d13bd9 (for CA wikis)
Change-Id: I14a1e5c9956d1b425eaacdf358db384df3be8115
2016-09-12 18:38:58 +00:00
Ed Sanders adaa47804f Search all RDFa attributes when looking for type
Bug: T144561
Change-Id: Ib42daa52796cd72babbd8a317bae948cff779c99
2016-09-02 16:43:30 -07:00
jenkins-bot b656f3d5f1 Merge "Use super property to call parent methods" 2016-09-01 17:04:39 +00:00
Ed Sanders 5788340b49 Update VE core submodule to master (632f0a9)
New changes:
14b5fbc [BREAKING CHANGE] Move originalDomElements to the IV store and use MD5
c5d21f0 Provide methods to (de)serialize transactions

Local changes to move originalDomElements to IV store

Depends-On: I8a71c1a40ec35108d0a9a388da6f75632f8dc53c
Depends-On: I32c9b5f984fcf96e3354841ecfcd444149e8f159
Change-Id: I0fbb6324eede94558426178cbdad6b5daf0f8318
2016-08-24 18:14:14 +00:00
Ed Sanders 62bdaac13b Use super property to call parent methods
Change-Id: I76982b844cf2871d7583463def4393e5bdc33aa2
2016-08-23 11:56:47 -07:00
Alex Monk 166588c726 Fix insertion of templates, media, and various other things into wikitext surface
Pretty much fix everything on the insert menu... RB doesn't like it when you
try to specify both title and revision ID, but don't provide an ETag.

Change-Id: Ib25d023309d984ed8848f67b349b23231f27a957
2016-08-17 21:12:00 -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
Alex Monk 818c6e4928 Take link fragments into account
TODO: Do we need to do anything special here to handle multiple hash symbols in a URL?

Bug: T112898
Change-Id: I4773cb04ae2533e8125bc55d9ebb606d63b3bf48
2016-08-06 01:20:24 +01: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
Alex Monk 8855ebf586 Fix check for non-template-namespace transclusions
These are not just titles beginning with ':'

Change-Id: I9d7063c221561a0e582deb6944eaab6d9ab4e3f7
2016-08-05 03:25:31 +01:00
James D. Forrester d9d6a567d8 Follow-up e2f6d798: Make MWTemplateModel#addPromptedParameters work
Change-Id: I27e82aed207e1352ccb5f5a177fd53d5c1868c42
2016-06-30 16:46:38 +01:00
jenkins-bot 750078ab63 Merge "MWTemplateDialog: When opening the dialog, add in any unset suggested and required parameters" 2016-06-29 22:42:25 +00:00
jenkins-bot 913d3c0cf4 Merge "New decodeURIComponentIntoArticleTitle method" 2016-06-29 16:15:41 +00:00
Ed Sanders aeca19c9ea Ensure text version of counter is written to external links when copying
Bug: T137503
Change-Id: Iae791253ea272847984fee5d0586dc302027f1bd
2016-06-27 22:17:58 +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
David Lynch cc78cb2d06 Decode encoded link titles when generating them from text
Percent-encoded characters are forbidden in titles. Copying URLs around will
tend to wind up when them percent-encoded when you paste. Therefore, when
trying to build a title from a pasted link, decode it first.

Change-Id: Ia0abcb2d903b04d99c7db16eb0a5962480b138d5
2016-06-13 08:58:54 -05:00
James D. Forrester 832118e051 MWTemplateDialog: When opening the dialog, add in any unset suggested and required parameters
Bug: T97482
Change-Id: Iaf280355f442240aba4e1f74d3ee402fc5d329b0
2016-06-08 14:19:09 +00:00
Ed Sanders 35c0a0dc69 Use cloneWithData
Change-Id: I7ffe3c7ab20d5f785a6642c8293f271f4dc08ff8
2016-05-30 21:40:07 +01:00
Ed Sanders bc3edc7712 Use insertContent with templates when range is collapsed
We may be trying to insert a block into a paragraph. fixUpInsertion
handles this, but not if use a replace transactions.

Bug: T136279
Change-Id: I1401da52676e79f38ef835a32d2c76004b75fb4e
2016-05-26 17:10:52 +01:00
Ed Sanders 61d592bab1 Workaround for T135127: Generate replace transactions in MWTransclusionModel
Change-Id: I1d202c3b2e980f1ea52ef90d028886135b0cb748
2016-05-20 10:54:56 +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
Ed Sanders b25fbd3b7b Remove redundant about attribute stripping code
Change-Id: I2d330c074075734d50d6bf3e0f67e55bade6c072
Depends-On: I8be0a362338ba12d5569e315725386142a66da24
2016-05-04 12:55:36 -04:00
Alex Monk 978224f2ec Use widgets for wiki-page-name, wiki-user-name, wiki-template-name, boolean, URL and line template fields
* Use TitleInputWidget for wiki-page-name and wiki-template-name parameters
* Use UserInputWidget for wiki-user-name parameters
* Use a custom hacky CheckboxInputWidget child class for boolean parameters
* Borrow some ve.ui.MWExternalLinkAnnotationWidget.prototype.createInputWidget code for url parameters
* Use a TextInputWidget with multiline disabled for line parameters

Not dealt with in this commit, so fallback to existing behaviour:
* string
* number
* unknown
* content
* unbalanced-wikitext
* date
* wiki-file-name

Bug: T55613
Bug: T124734
Bug: T124736
Change-Id: If04944d64303d959e8dd605e75a175895932b788
Depends-On: I87699a93ca1b34c6d248456fcc060f584623d158
Depends-On: I5e97604f0fc24176d5e89899bf0505dc442a1a7e
2016-04-06 22:07:19 +01:00
jenkins-bot 65ee77da50 Merge "MWExternalLinkAnnotation: Only match plain external <a>s with hrefs" 2016-04-02 16:05:36 +00:00
Ed Sanders 6fad9ecdee MWExternalLinkAnnotation: Only match plain external <a>s with hrefs
We now accept non-Parsoid generated external links from paste,
so make sure they have href attributes otherwise they aren't
really external links and will throw exceptions later on.

Bug: T131430
Change-Id: Ifb565b1ce30cfe80ae72b17f6a9551ea40b36453
2016-04-02 18:51:56 +03:00
Roan Kattouw f6ba399137 Fix asynchronous loading of MWAlienExtensionNode renderings
ve.dm.MWExtensionNode#toDataElement calls storeGeneratedContents()
which prepopulates the cache, but because it was being called with
the wrong context, this.name was null and so the key we were storing
it under was different from the key we'd later be looking for.

Fixed by ensuring ve.dm.MWAlienExtensionNode#toDataElement preserves
context when calling its parent. Our static context hacks are tricky.

Change-Id: If859d861453067d7656a33a1767f6efc7bd9d323
2016-04-01 12:50:13 +03:00
Ed Sanders b7d25d92bc Detect the type of plain pasted links
Using the same logic we used for converting pasted URLs, detect
internal links by matching their base.

Currently link pasting is still disabled in the VE target, but
has been enabled elsewhere (Flow).

Change-Id: Iebd61abbe1fe82fd18d129e1dbc815ca75f44e87
2016-03-17 19:30:13 +00:00
Ed Sanders 5e6cbc187c Link pasting: Match RDFa-less links as external
Now that some targets support link pasting (Flow) we need to
make sure that pasted links match to an allowed type ('link/mwExternal')
instead of plain 'link' annotations which should never exist
in an MW document.

In a later commit we should auto-detect internal links.

Change-Id: I7faae834aa6e730c3cf93a691331a05fd0fe3d5c
2016-03-17 17:18:41 +00:00
Ed Sanders 1e800f2fdf MWTemplateSpecModel: Use namespace constant
Change-Id: I4404ee726550ca9aa9322720736f6f3778278df7
2016-03-01 21:41:10 +00:00
Ed Sanders 25be46a57d Fix transclusion node cloneElement method
* Override the static cloneElement. getClonedElement shouldn't
  be overridden as doing so misses static invocations.
* Apply the same fix to extension nodes
* Fix DOM loop to reference clone.originalDomElements[ i ]

Logically depends on Id8024c171c to work.

Bug: T126169
Bug: T126114
Change-Id: Icf4d3115db5b12b97a6c805ff3d0b71d9e88b804
2016-02-08 15:29:19 +00:00
Ed Sanders cfe21d317d MWImageModel: Use clearDefaultDimensions
setDefaultDimensions( {} ) is a no-op.

Bug: T126078
Change-Id: I1ef7cae04574e2561d21d4071d19a0067d81b263
2016-02-08 12:37:26 +00: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 0ed45dbf61 MWTable: use new sanitization method
This prevents tables from getting sanitized even on
VE to VE copy. Also by calling ClassAttributeNode sanitize
extra CSS classes are removed.

Bug: T97462
Bug: T125220
Depends-On: Ia3ce386b2a03bc227818b10423bca72c736c0656
Change-Id: Ifd91e00b40665b446bbdcdf8859d2bb641bc0e67
2016-01-29 10:29:19 -08:00
Ed Sanders bf50e2a570 MWTableNode: Apply wikitable class to pasted tables
Bug: T85577
Change-Id: I9714cf3e8ccc165f91af939481c845c3ec9c5f6b
2016-01-22 18:43:47 +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 93f0e8b30c Refactor MediaResources(Provider/Queue)
Create a subclass for MediaSearch(Provider/Queue) and make the parent
class a more generic representation of API requests for media.

Change-Id: Iea8b90e829d532d210bfef3c96d6798c64e15eed
2015-12-22 14:00:10 +00:00
Ed Sanders ae26eefb05 Fix typos
Add some common ones to typos.json

Change-Id: I3830be4949ab6a5fd998d6937ed83e9f18091c2b
2015-12-09 16:47:13 +00:00
Ed Sanders 63184600d4 Use wgNamespaceIds constants instead of hard-coded numbers
Change-Id: I71b80e59a5e24d63e68637a1ae8422974643bd3a
2015-12-04 19:57:56 +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 2c2f8c8a04 MediaSearch: Order search results correctly
Bug: T117036
Change-Id: Ia11f3486214425f203695a6060e304a90eba7734
2015-10-29 12:51:22 +00:00
Ed Sanders 9fb6977e52 Update VE core submodule to master (363adf2)
New changes:
63c5f67 [BREAKING CHANGE] GeneratedContentNode: Introduce new hash for rendering
6dd1cb2 Add ve.dm.Surface#selectLastContentOffset

Local changes:
* Use new getHashForRendering in GeneratedContentNode users

  As we no longer have a model hash, remove the originalIndex check
  and just rely on the deep comparison of mwData (trading a deep copy
  for a hash computation should result in similar performance).

Bug: T114689
Change-Id: Ida0ee0234418408b735232c633d41908a424a9ff
2015-10-07 15:00:32 +00:00