Commit graph

252 commits

Author SHA1 Message Date
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
Roan Kattouw 29995d806b Remove IEHacks.css in favor of .ve-init-target-ie class
Move reference style hack to MWReferenceNode.css, and move
heading style hack to ve.init.mw.Target.css

Change-Id: Icbd53f8df998c9f7bcc701b7c29dc226dfc5c05f
2014-12-08 15:45:23 -08: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
Ed Sanders 7abbea1c19 Use super to call parent constructors
Change-Id: I5f911fc35c420cd7980bc1fbaecf3b685596c7a8
2014-11-20 13:58:27 +00:00
James D. Forrester 7317114187 Update VE core submodule to master (029fc7e)
New changes:
029fc7e Update OOjs UI to v0.1.0-pre (1fa4eb7a73)

Update changes:
Changes were generated by running this script:
https://gist.github.com/trevorparscal/265f1b8c854190637a1e

File changes:

Scripts (modules/ve-mw/ui/widgets)
- ve.ui.MWInternalLinkMenuItemWidget.js → ve.ui.MWInternalLinkMenuOptionWidget.js
- ve.ui.MWLinkMenuItemWidget.js → ve.ui.MWLinkMenuOptionWidget.js

File content changes:

Scripts (*.js)
- MWInternalLinkMenuItemWidget → MWInternalLinkMenuOptionWidget
- MWLinkMenuItemWidget → MWLinkMenuOptionWidget
- ContextMenuWidget → ContextSelectWidget
- ContextItemWidget → ContextOptionWidget
- TextInputMenuWidget → TextInputMenuSelectWidget
- MenuWidget → MenuSelectWidget
- MenuItemWidget → MenuOptionWidget
- MenuSectionItemWidget → MenuSectionOptionWidget
- OutlineWidget → OutlineSelectWidget
- OutlineItemWidget → OutlineOptionWidget

Styles (*.less)
- contextMenuWidget → contextSelectWidget
- contextItemWidget → contextOptionWidget
- textInputMenuWidget → textInputMenuSelectWidget
- menuWidget → menuSelectWidget
- menuItemWidget → menuOptionWidget
- menuSectionItemWidget → menuSectionOptionWidget
- outlineWidget → outlineSelectWidget
- outlineItemWidget → outlineOptionWidget

Change-Id: Ifded7f9e17923dbb56a722b7424ccd2854194c21
2014-11-19 17:04:26 -08: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
Bartosz Dziewoński 066283dde7 Provide mw-redirect and mw-disambig classes for links on the surface
To mimic PHP parser, or, in the case of mw-disambig, what I would want
the PHP parser to be.

Change-Id: I70dc426a3b87daef27816d6d86130c39f30ba0f4
2014-08-14 16:56:07 +00:00
jenkins-bot 06f29e6895 Merge "Remove redundant setting of title in link nodes" 2014-07-30 17:22:49 +00: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
Ed Sanders c451656d6d Remove redundant setting of title in link nodes
Also cleanup redundant overrides, documentation and
unused messages.

Depends on If22a5197 in core.

Change-Id: I533235f4eb5d703783a8fb45dff5e7be465f4ebb
2014-07-30 10:32:49 +01:00
Ed Sanders 840c871a97 Remove unused CSS classes
By searching for CSS classes that don't exist in the code.

In some cases the classes were used but had been renamed.

Change-Id: I76442a632c18d2133cdf78c4555da149c0a7888c
2014-07-28 19:43:35 +01:00
Ed Sanders 5e5755f09c Implement getFocusableNode for MWGallery nodes
Instead of using ve-ce-noHighlight we can just set and maintain
this.$focusable using getFocusableNode.

Change-Id: I0a6b2d6444df531b7c235ac9ff08a3ed8a0e99b3
2014-07-26 02:24:56 +00:00
Ed Sanders 97813e2696 Use faster (and more accurate!) computation of directionality
Per the comment above, dm doc direction will be a better
estimate of wiki direction than CSS, which is very slow.

Change-Id: I231738d660b429df1598eaaadf7397b47d35ea0c
2014-07-24 19:44:58 +00:00
Roan Kattouw 3424721aac Followup b6cc76d4: call parent's onSetup/onTeardown
Otherwise .data( 'view' ) doesn't get set.

Bug: 68415
Change-Id: Id4d8351f6d1d3193de6279bddcfe18d09b3db245
2014-07-22 17:15:13 -07:00
jenkins-bot f7c7efbad7 Merge "test: Move mw into the global list of globals for VE-MW" 2014-07-23 00:02:22 +00:00
jenkins-bot dec052a4d3 Merge "Deprecate 'live' event in favor of 'setup' and 'teardown' in MW" 2014-07-22 23:36:38 +00:00
Moriel Schottlender b6cc76d49a Deprecate 'live' event in favor of 'setup' and 'teardown' in MW
See also Ieddbf5c684eb0edc3130034de64eb284aeaebbda

Bug: 55505
Change-Id: Ib48ef4f62ac53d41abb69f275f51da3d8b85ce0e
2014-07-22 23:34:32 +00:00
James D. Forrester c2f37a0450 test: Move mw into the global list of globals for VE-MW
Silly to have 38 MW-specific files needing to declare that they're using mw.

Change-Id: I97891ed922fe0c37d8c96425a4d23bd15098438b
2014-07-19 17:42:45 +00:00
jenkins-bot a7f9e955c6 Merge "ve.ce.MWExtensionNode: Don't escape content of wikitext tags on preview" 2014-07-15 22:09:10 +00:00
Ed Sanders b1fb9c1b82 generateContents -> generatedContents
Change-Id: Idfe609d0830ba2b29901211f56dd355ddf8ab96e
2014-07-10 22:47:48 +01:00
Alex Monk 51142e8b11 Replace ve.bind( fn, ... ) calls with fn.bind( ... )
Bug: 62762
Change-Id: I1a7fc7f27fa737d17f5c6b3d084ef4a35e4bebc0
2014-07-10 13:54:07 +00:00
Bartosz Dziewoński 68f561d2ad ve.ce.MWExtensionNode: Don't escape content of wikitext tags on preview
XML-like tags in wikitext are not actually XML and don't expect their
contents to be escaped. The contents are usually not parsed as
HTML/XML anyway.

It means that it is not possible for a tag '<foo>…</foo>' to contain
the string '</foo>', but that is prevented by change Ia566452a.

Bug: 57429
Change-Id: I2516a897c85b4a3b79a34ff6cad5d124fbc30170
2014-07-04 18:13:36 +02:00
Timo Tijhof f3cd6899a5 ve.ce.MWReferenceListNode: Add class 'references'
The code previously appeared to add 'reference' (no "s"), but was
failing to do so due to passing variadic arguments to a method
that only takes one arguments (jQuery#addClass).

See also Ifae04e48.

Change-Id: Id59673c8033c82e51577f681221dbfd312da7b8d
2014-07-04 01:29:39 +02:00
Roan Kattouw 90162a343d Use addClass() correctly, otherwise references don't get the 'reference' class
Change-Id: Ifae04e480f3e92725e15cae53119b0935e83b72a
2014-07-03 15:29:08 -07:00
James D. Forrester 372c903434 Switch from <sup> to <span> in MWReferenceNode to be equivalent to Parsoid
Change-Id: I58aca58b363de4fb9457671621e73840f0a9eecf
2014-07-02 19:25:16 -07:00
jenkins-bot 410f36d2d9 Merge "Try some more to handle template namespace properly" 2014-07-03 01:23:47 +00:00
Alex Monk c6396e019e Try some more to handle template namespace properly
Looks like I messed up in Ia67f9054 and got a setting backwards

Also prefix titles in a couple more places

Bug: 67384
Bug: 66893
Change-Id: Id6d5841ee1645be62a024308da48ddc6769c78b6
2014-07-03 01:20:02 +00:00
Roan Kattouw 7a77f0f838 In image names in the context menu, use spaces rather than underscores
Change-Id: I69828ea73575eaa34f3416080e3738ef4968b7ad
2014-07-02 12:20:45 -07:00
Moriel Schottlender 6bd9fde5c5 Merge Media Edit and Media Insert dialogs
Merge the media edit and media insert dialogs. Allow editing
of media properties when inserting a new image, and also
allow the user to replace the image on edit.

Bug: 67170
Change-Id: I35bd95503565dbf95090ee8110284db5a8fbba83
2014-07-01 17:30:51 -07:00
Ed Sanders b197d0127b Fix jQuery selector to find ul.gallery in root
Now that we don't wrap generated content nodes
UL.gallery is likely to be the root, so use an
appropriate jQuery selector.

Change-Id: Ic9d9f4c0fc12daae6cf8252e4d6562366b3d2df2
2014-07-01 20:35:47 +01:00
Ed Sanders 41672be584 Update VE core submodule to master (dc01df0)
New changes:
d02cf3d Fix simulation of .prepend() in ve.ce.BranchNode#onSplice
c19fa38 [BREAKING CHANGE] Remove generated content node wrappers

Local changes to remove classes attached to GC nodes

Change-Id: Ide82c96db4803ef59d398788b46fa5d7fb9a2476
2014-06-30 16:34:56 -07:00
Timo Tijhof 19afd65a08 build: Update jscs and use new "wikimedia" preset
Our coding style has been upstreamed and first released
in node-jscs v1.5.0 (grunt-jscs-checker v0.6.0).

Change-Id: Ifc0cfc7177946b9d11407f60e38b0177883724c5
2014-06-26 17:00:15 +00:00
jenkins-bot 2c60bbe9c2 Merge "Render a placeholder when extension contents are empty" 2014-06-25 21:40:44 +00:00
jenkins-bot cba201eb03 Merge "Normalize titles in template descriptions in context menu" 2014-06-25 21:10:35 +00:00
Ed Sanders 42cad57fb2 Render a placeholder when extension contents are empty
Helps the context to find a position and shows an insertion point.

Bug: 66813
Change-Id: Ifbf5271a4f36f04256bb4c02d9120cc76012fc79
2014-06-25 17:01:20 +01:00
Ed Sanders 840264e85d Remove Hiero extension code from VisualEditor extension
It doesn't belong here.

To be added in the wikihiero extension in If55af2ad.

Change-Id: Id8b026ac07cfb31e4c25f81fb67f531448454ee0
2014-06-23 09:18:42 +02:00
Roan Kattouw 8a536eb294 Normalize titles in template descriptions in context menu
For {{echo}} we would show "echo", but for {{Echo}} we would
show "Echo". Same for {{cite web}} vs {{cite_web}}. Normalize
these template names before displaying them in the context menu.

Reported by Matma Rex on IRC.

Bug: 66893
Change-Id: I84945aab13e53cd0aba529c298b5cc0b2e7eff1e
2014-06-21 01:29:19 +00:00
jenkins-bot f2c7788522 Merge "Use registered target, instead of ve.init.Target" 2014-06-18 01:45:01 +00:00
jenkins-bot 115c1b6be9 Merge "Remove display:inline-block highlight hacks" 2014-06-17 23:27:10 +00:00
Ed Sanders c70d32c017 Use registered target, instead of ve.init.Target
Depends on I468d4eb4 in core.

Uses various hacks to trick the test runner into thinking
an MW target is in use, when in fact we still use SA targets.

Change-Id: If4611307d5d7aaee4af84f86ef82faf9078043b6
2014-06-17 20:41:01 +01:00
Ed Sanders 0688aa7b02 Update VE core submodule to master (89820e5)
Remove clickable node mixins.

New changes:
65e2e22 [BREAKING CHANGE] Make all focusable nodes clickable

Change-Id: I24403e12621e5b789e0b8c99f54f1d1b8fa802cc
2014-06-16 12:59:37 -07:00
Ed Sanders c761a20cef Don't use jQuery show() or toggle()
These set display explicitly to block, which overrides the CSS
style of display: table-caption.

Change-Id: Id987d6e8da9c875a120a4f07560fa8a97bef10b6
2014-06-16 20:05:36 +01:00
Ed Sanders 15bbcc6d63 Remove display:inline-block highlight hacks
With getClientRects these are no longer necessary.

Depends on I09f1c0850 in core.

Bug: 51708
Change-Id: I7e6c6528f4dd23aee7fa61ecb38eb658e11a8356
2014-06-16 11:52:37 +01:00
jenkins-bot 0898f8e7c6 Merge "Set traditional galleries to inline-block to get correct width" 2014-06-11 22:28:11 +00:00
Ed Sanders f4de32e56c Fix terrible Hiero CSS
Makes calculating shields much easier.

Change-Id: Icf61b4bf6df7f7cc4a9650e8da972eca369cadf2
2014-06-11 20:20:21 +01:00
Roan Kattouw 10cda9359a Update VE core submodule to master (fc52878)
Remove RelocatableNode mixins for new FocusableNode.

New changes:
fc52878 [BREAKING CHANGE] Merge RelocatableNode into FocusableNode

Change-Id: Id8ce497b0fd1ff7732f68aa1ae8af4f4f8f9db0f
2014-06-11 11:14:46 -07:00
Ed Sanders ab2af54ff9 Set traditional galleries to inline-block to get correct width
Prevents over-sized shields.

Functionally (but not logically) dependent on I8a532b20 in core.

Change-Id: I12a1a76a6dbef9b365035ad8c577243a3420b967
2014-06-11 14:31:27 +01:00
Roan Kattouw 310601ef47 Update VE core submodule to master (e1b0e33)
Remove ProtectedNode mixins for new FocusableNode.

New changes:
e1b0e33 [BREAKING CHANGE] Merge ProtectedNode into FocusableNode

Change-Id: Ie515704163c24317739fd34d35094b9ada6bfa66
2014-06-10 16:52:49 -07:00
James D. Forrester 9c4e874e1b Remove now-inherited auto-numbered link CSS styling
Transferred to MW core in Id765da7b.

Change-Id: I83b490bd3265429c97969c92249efc65aea31d01
2014-06-10 10:41:31 -07:00
James D. Forrester 4be0218bbb Update VE core submodule to master (5f10e73)
New changes:
a53f101 Update OOjs UI to v0.1.0
1fa518b Update OOjs UI to v0.1.0-pre (15f4156bac)
257af53 Use ContextWidget instead of toolbar inside context menu
5f10e73 Follow-up Ia2076a42: Mark getDescription() as @inheritable for Annotation, Node

Local changes to adjust for the ContextWidget changes.

Change-Id: I47f68f5cf1b9583dab9bd0109fa6504481bdfc67
2014-06-09 18:35:08 -07:00
Ed Sanders bd49f97553 [BREAKING CHANGE] Separate ExtensionNode in Block/Inline
Previously they were always inline.

MWExtensionNode is now a mixin and classes which inherit it should
now inherit MWBlockExtensionNode or MWInlineExtensionNode.

Change-Id: I0ddcabeb63acdf852e252c41add5233c00723f4c
2014-06-06 20:40:19 -07:00
Roan Kattouw 172ebb839e Remove link node inspector from insert menu
This inspector isn't designed for insertion mode yet; attempting to use
it in insertion mode causes nasty JS errors.

Bonus:
* Make its tool title "Simple link" rather than "Link", for when
  we do reintroduce it.
* Make double-clicking / pressing enter while selecting a link node
  open the link node inspector rather than the link annotation inspector.
* Make link nodes render with MW's external link arrow icon
* Move the link node inspector's messages to the right RL module

Bug: 66047
Change-Id: Ib94da7ed3a2a88297dbdd1529f20cd8dab7c8421
2014-06-02 21:05:07 +00:00
Roan Kattouw 9e9a671fc1 Make images look better, account for e82629895b38 in MW core
Prevent images from getting double borders due to slugs,
and prevent extraneous margins from piling up in captions.

Also add the ve-ce-mwBlockImageNode class which shockingly
wasn't being set (only ve-ce-mwBlockImageNode-TYPE was set).

Change-Id: I86b95aa0c0def92a9790b7cdb4b05837fb8f65e2
2014-05-28 18:35:07 -07:00
jenkins-bot c0f0f276af Merge "Decode URL encoding in resource attriute for images" 2014-05-28 21:04:41 +00:00
Roan Kattouw 7d86729858 Decode URL encoding in resource attriute for images
In getFilename(), decode URL encoding and replace the search
for 'File:' with a more standard ./ stripping regex.

The ./ regex came from generateContents) in the CE class;
made that code use getFilename() instead.

Also apply decodeURIComponent() to the result; but protect against
exceptions because it's a useless piece of garbage.

Bug: 65611
Change-Id: I7e81a8dc26d1c636c6571d96f43a394a53490587
2014-05-28 12:21:06 -07:00
Moriel Schottlender 186238e90d Make sure <figure> has proper dimensions
This commit brings back the sizing of the <figure> in MWBlockImageNode.
The figure must have proper size in CE otherwise 'center' and 'none'
alignments don't work, and the <figure> stretches across the entire
width of the screen.

Bug: 65836
Change-Id: Iefed466fce87f265fbd08908f1171867f9d1e1fe
2014-05-27 21:44:58 -04:00
Moriel Schottlender 963e133851 Remove media item styling moved to MW-core in I400336c12d.
Change-Id: I348e55ddea94f3b67f647c66ba53f7384d683584
2014-05-22 12:34:00 -07:00
jenkins-bot 5798569c73 Merge "Image model and the media edit dialog" 2014-05-20 01:15:31 +00:00
Moriel Schottlender 37b3c07b26 Image model and the media edit dialog
Creating an MWImageModel that handles all image edit operations.
If the new attributes mean a change of image types from inline
to block or vice versa, the model will handle the creation and
insertion of the new node.

Change-Id: Ibe71bc8bd74e4ba5a024ac722432ccf0b8f65e71
2014-05-19 21:11:06 -04:00
Timo Tijhof 25d00cc777 build: Update jscs and jshint
jshint:
* Update to grunt-contrib-jshint v0.10.0 (jshint v2.5.0).
* Remove coding style options covered by jscs.
* Enable new option "freeze" (prohibits changing native prototypes).
  http://www.jshint.com/blog/new-in-jshint-oct-2013/#option-freeze
* Re-order to match http://www.jshint.com/docs/options/

jscs:
* Update to grunt-jscs-checker v0.4.4 (jscs v1.4.5).
* Format .jscsrc file in a more spacious way and order the
  properties less arbitrarily (using the jscs's readme order).
* Enforce more details of our coding style
* Get rid of the unsable "sticky" operator rules which have been
  deprecated in favour of using other rules instead that are able
  to enforce this more accurately.
  - disallowLeftStickedOperators: Remove deprecated rule.
    * Ternary covered by requireSpacesInConditionalExpression.
    * Rest covered by requireSpace{Before,After}BinaryOperators.

  - requireLeftStickedOperators: Remove deprecated rule.
     * Comma covered by disallowSpaceBeforeBinaryOperators.

  - requireRightStickedOperators: Remove deprecated rule.
    * Logical not (!) covered by disallowSpaceAfterPrefixUnaryOperators.

See also If46b94ce1, Ib731f11b1 and I0b0cadbc5 in oojs/core.

Also:
* Update grunt-contrib-watch to latest upstream version.
  Change log at https://github.com/gruntjs/grunt-contrib-watch/blob/v0.6.1/CHANGELOG#L1-L17

Change-Id: I6c5a34afea8b05a3dca617897c192594df06ca90
2014-05-15 16:52:34 +00:00
Trevor Parscal 74b4573caa Style external links and their suggestions with the right color
Bug: 38726
Change-Id: I0f017bda9e5d4f8358db6656751fe1f13a7b845c
2014-04-30 16:49:46 -07:00
James D. Forrester 0a37cfb915 Pull in Parsoid's new styling module
Also remove CSS hack from MWTransclusionNode now that
we have properly styled Parsoid references.

Bug: 63983
Change-Id: I5e8dc4c618809f6dd923fe4676d57acd1094f93d
2014-04-28 12:17:27 -07:00
Roan Kattouw 654d641c5f Update VE core submodule to master (33ca43b)
Reorganize stylesheets in VE-MW to match JS directory structures,
and update VisualEditor.php for similar reorganization in VE core.

New changes:
c6ed962 Reorganize stylesheets

Change-Id: I4f1070643744fb2ee6726cb03e012e31a9a05c64
2014-04-18 13:28:31 -07:00
Roan Kattouw f2422d916c Update VE core submodule to master (c150259) for scalable changes
ve.dm.Scalable is now a computational model for image scaling and
size manipulation. This commit adjusts the nodes and the edit and
insertion dialog to handle the new scalable model, and by that
use a centralized computational engine for all scaling and size
changes.

New changes:
3ec19fb8 Refactor Scalable functionality

Change-Id: I017a017924f544cc8bc9b7d8245335759ae0e890
2014-04-09 17:29:49 -07:00
Roan Kattouw cedca2490c Actually actually fix double-clicking on hieroglyphics nodes
Bug: 63651
Change-Id: Ib97d202b43e6910a3e223d14031c33a95ca7a251
2014-04-07 14:45:18 -07:00
jenkins-bot fc5b995ee9 Merge "Hack around Parsoid's href prefixing in rendering new links" 2014-03-26 22:56:02 +00:00
Trevor Parscal be199c0bf2 Ultra-mega-hyper-citation editing on crack
Objectives:
* Allow users on-wiki to create tools and dialogs for citation templates
of their choosing
* Allow editing of citation templates directly, without having to go
through the reference dialog
* Provide citation template tools within reference editing that use the
same titles and icons as the citation tools do, but don't wrap the
inserted content in a ref tag

Changes:

* Reference list was cloning the DOM element it was inserting into its
view before the generated content node could finish rendering, so it
never ended up showing the finished rendering in the reference list
* Documenting hack about use of reference list node's destroy method,
and how we are depending on destroy not canceling generated content
rendering
* Introduced reference model
* Added saving/updating method to transclusion model
* Added getPartsList method to dm transclusion node, which caches the
result and invalidates the cache on update
* Added citation dialog, which extends transclusion dialog
* Added cite group to toolbars, cite-template in reference dialog toolbar
* Factored out getting the node to edit and saving changes procedures in
transclusion dialog so they could be extended in citation dialog
* Updated uses of autoAdd as per changes in oojs-ui (Ic353f91)
* Renamed MWDialogTool file since there was only one tool in it
* Expanded TransclusionDialogTool file out since there is now more logic
to it
* Switched to using ve.dm.MWReferenceModel instead of plain objects in
reference search widget

Configuration:

If you add to MediaWiki:Visualeditor-cite-tool-definition.json the
following code you will magically be presented with a delightful array
of citation options:

[
    { "name": "web", "icon": "ref-cite-web", "template": "Cite web" },
    { "name": "book", "icon": "ref-cite-book", "template": "Cite book" },
    { "name": "news", "icon": "ref-cite-news", "template": "Cite news" },
    { "name": "journal", "icon": "ref-cite-journal", "template": "Cite journal" }
]

...or...

[
    {
         "name": "any-name",
         "icon": "any-ooui-icon",
         "template": "Any template",
         "title": "Any title text"
     }
]

The title text is derived either from the title property or from the name
property by pre-pending the string 'visualeditor-cite-tool-name-' to
generate a message key. Titles for 'web', 'book', 'news' and 'journal' are
provided. The icon is a normal oo-ui-icon name, and more icons can be
added, as usual, by adding a class called .oo-ui-icon-{icon name} to
MediaWiki:Common.css. 'ref-cite-web', 'ref-cite-book', 'ref-cite-news'
and 'ref-cite-journal' are provided. The template name is simply the name
of the template without its namespace prefix.

Depends on Ic353f91 in oojs-ui

Bug: 50110
Bug: 50768
Change-Id: Id401d973b8d5fe2faec481cc777c17a24fd19dd4
2014-03-24 19:24:38 +00:00
Roan Kattouw 7c8b0ef10b Hack around Parsoid's href prefixing in rendering new links
If we render new links with a plain target, then if you're on a
subpage like Foo/Bar, [[Baz]] will point to Foo/Baz. In order to
avoid this, we fake the link target to be ../Baz and resolve that,
which produces the correct result.

This hack is only needed until Parsoid stops producing ../-prefixed
links. This hack is only applied in view mode, because applying
it to our DOM output back to Parsoid would confuse Parsoid and
cause bugs.

Bug: 58314
Change-Id: Ifb4b63a26235a04e6362fc3e3e57d8773831eb38
2014-03-24 11:24:22 -07:00
James D. Forrester f8720326b0 Split out omnibus CSS files
Change-Id: I195a0e4091cf2d003c325e9c653dd634e7096779
2014-03-21 20:14:52 +00:00
jenkins-bot 0c8cb151fb Merge "Remove the math inspector code" 2014-03-20 05:34:31 +00:00
jenkins-bot 24c0082093 Merge "Display links to nonexistent pages as red" 2014-03-20 02:44:22 +00:00
Roan Kattouw 78a52f1f80 Display links to nonexistent pages as red
* Add ve.init.mw.LinkCache to track page existence and
  transparently query it
* Populate it with initial data from the parser cache
  if available, obtained in the VE API module
* Use linkCache data in link annotation rendering

This doesn't yet integrate the LinkCache with other
components like the link inspector. That should be
done so we can deduplicate the existence checks.

Additionally, we should generalize LinkCache and use
it for the category existence/status checks as well.

Bug: 37901
Change-Id: I9fd43e8c3864dd375cf6dadfdeedd05e4fe9cf3b
2014-03-20 02:42:33 +00:00
James D. Forrester aea64bf2df Remove the math inspector code
Moved to the Math extension in I8e582ee6deadc2750

Change-Id: Iab0c56246626de1e0f6ab770e777c0a28756fa75
2014-03-19 19:27:25 -07:00
Rob Moen ec40953722 Mixin ClickableNode and add primary command names
Created ve.ui.MWCommandRegistery, added inspector and dialog commands

Change-Id: I6b45018bdb719e36a85a785d4e08d32ee4b9b0a3
2014-03-20 00:33:38 +00:00
jenkins-bot fbdc55dc78 Merge "Table of contents widget" 2014-03-14 22:31:10 +00:00
Rob Moen eba7d58dd1 Table of contents widget
TOC Widget is created in the mw target view class.
Adding and removing a heading rebuilds the TOC Widget based
on the the order of the page heading nodes.

TOC Widget considers TOC page settings and displays in the default manor
unless forced or disabled.

TOC Widget still needs to be finalized by being placed in the surface.
This could be a problem until we have a CE node for it to live in or
have some DM work added.  Roan and I have discussed how to go forward.

To enable the widget you must add the following to LocalSettings.php:
$wgVisualEditorEnableTocWidget = true;

Change-Id: I488cfbbdb060e50d81f51e0f757e67d0114b8936
2014-03-14 15:20:19 -07:00
Moriel Schottlender 2af27877bc Show/hide the magnify button on type change
Make sure the magnify button in the caption is properly shown or
hidden when image type changes. The magnify icon will always be
built, but will be shown and hidden using CSS rules.

Bug: 62139
Change-Id: Ib9a4569239ed70d16a153fb0823e283203fba1d4
2014-03-10 21:06:18 +00:00
Ed Sanders c15372f4e0 Use en-us spelling 'focused'
Per Ia3d37a4840b in core (not a dependency).

Change-Id: Ic19b3799c9b3af60f2de7a99f672a8aa389d1550
2014-03-06 16:30:05 +00:00
Moriel Schottlender 89aecd54ba Deal with 'none'/'border' and default size in media edit
There are several conditions to defaultSize behavior of thumbnails and
frameless images and other images when it comes to default size. In the
same principle is 'border' which is not quite a type despite the fact
it 'behaves' as such in wikitext (and has a unique identifier that comes
instead of the other types.

This commit aims to organize this behavior for the user in an
understandable manner.

* Add 'basic' image type for images that have no specified type ('none')
* Handle the difference in 'default' size behavior between basic images
  and thumbnails/frameless. The thumb/frameless images have the default
  wiki size. Other images' default size is their original dimensions.
* Force wiki-configured default size for thumbnails and frameless images
  in the DM. This is done because at the moment Parsoid's output is of
  Wikipedia's default size rather than the local wiki's. The size is
  adapted if needed, directly in the DM.
* Added 'border' as a pseudo-type checkbox flag that sets css class
  'mw-image-border' is for parsoid rendering on save.
* Add 'make full size' to the size widget select and treat it as a faux
  default button for basic and frame images.

Bug: 62013
Bug: 62024
Bug: 61155
Bug: 61059
Bug: 61282
Change-Id: I6778705306f0dd6bb96afeb91383089a4ddab7ed
2014-03-05 03:53:46 +00:00
Moriel Schottlender b54575a797 Set up wiki-default image size
This commit makes several adjustments to make sure default size is being
handled correctly:

* Add wiki's default size configuration parameter to the
  VisualEditor.hooks.php file so it can be called from VE.
* Make sure new images are inserted with default size and are
  marked 'defaultSize = true' for the DM to handle.
* Force default size if 'defaultSize=true' in the DM
* Add a 'default|custom' switch to the media edit dialog for size
  inputs. When 'default' is chosen, the media size widget will be
  emptied, displaying its placeholders (default size)
* When the size widget's values are 0 it will automatically turn to
  default size values. If the value started default and the user
  typed in a size, it will automatically override default and use
  custom size.

Bug: 47804
Change-Id: Ib973ea2afa96090a4ba61b2b55ee63457f1329c1
2014-02-25 16:26:15 -05:00
James D. Forrester c6bcc10d6c Split VE-MW's ve.ce.Node.css file into per-node files
Bug: 61075
Change-Id: I9bfa43e23c95a916ae082c33693f33492670445e
2014-02-20 13:44:03 -08:00
Roan Kattouw a7d5751c80 Move some non-skin-specific styles back into ve.ce.Node.css
Rules like "right-aligned images get float: right;" should
be in the generic image CSS, they're not skin-specific.

I haven't exactly teased apart what is and it's skin-specific,
this is just a first stab.

Change-Id: Ie374685d2c66e2275f7a98a590e563bf36da7f87
2014-02-20 00:12:48 +00:00
Trevor Parscal d52c15b48a Prevent clicks on top-most shield for centered image nodes
Even with the fix in VisualEditor core (I2c2c592) that prevents non-sheild
elements from being interacted with on generated content nodes, in the
case of a centered image, there is a shield placed on the wrapper which
causes the same problem. By hiding that particular shield, we can get the
desired effect, of only the actual figure being clickable.

Bug: 61001
Change-Id: I7fcf1a34c5ac67c3861cf0b8f3b2447d0d7dc1c1
2014-02-20 00:06:51 +00:00
kaldari 9f1179938c Move some skin styling from ve.ce.Node.css to a shared skin css file
The styling of the image thumbnails should be controlled at the
skin level, not by the generic VE styles. Moving the thumb/figure
styles from ve.ce.Node.css to ViewPageTarget-shared.css. Otherwise
no changes to the styles themselves.

Also adding minerva (the mobile skin) to the list of supported skins.

Bug: 60542
Change-Id: I67ab6d5b91cee7e587f61df26e7dae74c1068788
2014-02-19 13:30:30 -08:00