Commit graph

5211 commits

Author SHA1 Message Date
Translation updater bot 90044befbd Localisation updates from https://translatewiki.net.
Change-Id: I7d057b398d3ed648006437dcef59fb5df75477cc
2013-12-27 18:38:13 +00:00
Translation updater bot 93fe564245 Localisation updates from https://translatewiki.net.
Change-Id: Ia818cec9e2666d760489e1adfd6bfb15886ab248
2013-12-26 19:43:23 +00:00
Translation updater bot 79ac21ca25 Localisation updates from https://translatewiki.net.
Change-Id: I60929cbfb66708e15c34671556edeedadf47d229
2013-12-25 20:03:30 +00:00
Jeff Hall c0c021219d [Browser test] Retry loop for beta warning dismissal.
Tests run via SauceLabs do not always dismss beta warning
pop-up on the first attempt, so try and try again!

Change-Id: I074824c5f1c99d8e5408dcb1ada7b97a6d20ebe8
2013-12-24 16:12:13 -08:00
cmcmahon 2b9e0cb1ff interim move prevents edit conflicts while we sort test data issues
Change-Id: I857fd2d99513e0c176ef832bc92e0a16d972e74a
2013-12-24 10:35:22 -07:00
Jeff Hall 385cc12fd9 [Browser test] Update test to handle SSL in test2
Changed URL matching condition to be indifferent
to HTTP vs HTTPS addresses since it's not
relevant for what is under test here.

Change-Id: I3382174d6cd0e05c28fc94e0a2fcbc5d170fed3c
2013-12-23 22:28:37 +00:00
Jeff Hall 456e8c1f99 [Browser test] Update test to use existing hook
1) Reduce some code duplication.
2) Added bonus: will fix a problem with the failing "links" test.
3) Removed some commented code lines in feature file.

Change-Id: I7ad4ade89c6477fd42eca178bae294f4dfecdf5b
2013-12-23 22:05:34 +00:00
Translation updater bot 7779f28aa4 Localisation updates from https://translatewiki.net.
Change-Id: I97a05c21a2c5f8d1311ce6df8ea4fd75f6f1e246
2013-12-23 20:52:06 +00:00
Translation updater bot 792aafa8ce Localisation updates from https://translatewiki.net.
Change-Id: I5feeaefbe31e45490902e3a98e693893e3cd9f79
2013-12-22 20:33:06 +00:00
Translation updater bot 4b3578b791 Localisation updates from https://translatewiki.net.
Change-Id: I928998e2edd039ed8acd2e537245f864f942daf8
2013-12-21 20:42:48 +00:00
Translation updater bot 4c9a8f03a7 Localisation updates from https://translatewiki.net.
Change-Id: I12de0358eabe0b60b7572df75cb0afd8483969f8
2013-12-20 20:36:35 +00:00
Roan Kattouw ee743f869d Use submodule for VisualEditor core
* Add lib/ve.
* Remove modules provided by VisualEditor core.
* Update paths.
* Remove VisualEditor core specific things from Gruntfile.
* Remove entries from external.js already in lib/ve/.docs/external.js.
* Implement build script to compose a jsduck index that includes
  all of VisualEditor core. Right now it includes VisualEditor's
  index as-is, and because those patterns (e.g. ve.dm.*Node) will
  also MW subclasses this means our category page will include
  MW classes under "VisualEditor (core)" (before the repo split,
  this was intentional).
  This is inevitable unless we list every class individually, or
  (the plan) until we move the MW subclasses out of the ve.*
  namespace and into mw.* somewhere.

Bug: 45342
Change-Id: Iff45cd555430634c9fc341fd3b177c1e0625300b
2013-12-20 09:18:41 +00:00
Roan Kattouw c41b60021d Move libraries to the lib/ directory
Didn't move unicodejs because it doesn't have its own repo
and is currently mastered in this repo

Change-Id: I14ab4bd641077d993ac235d8bcdcf8e50a1a72a7
2013-12-19 23:02:52 +01:00
Translation updater bot 0e3818418d Localisation updates from https://translatewiki.net.
Change-Id: I639ee73b173299883c724c28bff1da32971970f9
2013-12-19 20:55:29 +00:00
Trevor Parscal 7d129e091f OOjs UI to v0.1.0-pre (04754daaa9)
Changes:
* 04754da (HEAD) Change label of disabled switch to 'disabled' in demo
* 33c379f        BookletLayout: Sync outline with panels via focus instead of scroll
* ca53b7e        Fix checkboxes so the value can actually be set
* eb77c91        Refactor ToggleWidget, add ToggleButtonWidget, ButtonGroupWidget
  ----
* 5ffe63d (prev) Spell removable and movable using modern English

Change-Id: I7f1e0cd92c6eb8346da35b59a293759f2c72d7a9
2013-12-19 20:22:11 +01:00
jenkins-bot 37e5d037d0 Merge "Documentation fix in MWBlockImageNode" 2013-12-19 18:34:42 +00:00
Ed Sanders ae6f22910f Documentation fix in MWBlockImageNode
Change-Id: I8203474b8816197421ee18c5513b4c7235adb1da
2013-12-19 18:32:40 +00:00
cmcmahon 7689946826 [browser test] replace single quotes with double quotes
Change-Id: I569c31b389a9678e2d99709073511711e7e628e3
2013-12-19 10:07:10 -07:00
Zeljko Filipin 30f2619c14 [Browser test] New test for switching between editing modes
1) Using native page-objects methods for dealing with Javascript alerts.
2) Added tags to feature file per reviewer comment.

Change-Id: I3e9d9ae16f1c880878c8e198c647376a0b9aed37
2013-12-19 14:56:30 +00:00
Jeff Hall 2b74982e95 [Browser test] New test for multi-edit workflow
1) Per reviewer comments, moved some of the verbosity
   from feature to steps file in order to make
   the feature file a little more readable.
2) Using random strings for the text of each edit
   in order to make every edit unique.
3) Removing a commented line that wasn't needed.

Bug: 57654

Change-Id: Ib8b15964436d9c24556fac32977a64e2d5f22044
2013-12-19 14:28:11 +00:00
jenkins-bot cdc8c6bc06 Merge "MWBlockImage new DOM fixes" 2013-12-19 08:29:12 +00:00
Timo Tijhof ca40077866 Clean up Target properties
Move target.surface from mw.Target to Target
* All targets use this, let's standardise it.

Move target.$document from mw.ViewPageTarget to Target
* It was initialised with null in mw.ViewPageTarget, but the
  assignment happened in mw.Target. So it should be moved up
  at least to mw.Target.
* Since it is useful to have in sa.Target as well, moved it up
  to the abstract Target, and implemented in sa.Target and
  immediately used in the standalone demo where we were already
  duplicating the find( '.ve-ce-documentNode' ).

Add missing target.setupDone = false; in sa.Target

Add missing target.toolbar to Target
* Was used in all subclasses, but never initialised in any of
  the constructors. Let's standardise this property name as well
  (instead of initialising it in three places).

Move target#event-surfaceReady from mw.Target to Target
* sa.Target uses it as well, and considering Platform#initialize
  is already standardised in the abstract class, Target#setup
  being deferred is most likely to happen in each target as well
  so let's avoid different events being invented for the same
  thing and consistently use 'surfaceReady'.

Change-Id: Ia8bde188a4cde7e1615c2ae9c5b758eefc5d9cb7
2013-12-19 02:16:20 +00:00
Timo Tijhof 370b07ffaf demo: Convert VisualEditor standalone demo to pure HTML+JS
Change-Id: I9a93abce933e91881e553c0bdb26f31065cf4cda
2013-12-19 03:12:13 +01:00
jenkins-bot 198a001ac0 Merge "Clean up HTML files, Gruntfile and remove index-phantomjs-tmp hack" 2013-12-18 23:43:03 +00:00
jenkins-bot 8126dd47dd Merge "Prevent getSaveFields from returning a property named undefined" 2013-12-18 23:38:59 +00:00
Rob Moen 212e5b231b Prevent getSaveFields from returning a property named undefined
Change-Id: Id7326ee8b951ba2219d3ea6767370ece9aba3c23
2013-12-18 15:32:49 -08:00
Ed Sanders 76defa7ce2 MWBlockImage new DOM fixes
MWBlockImage
* Remove properties which just cache model properties. We can get
  fresh values from the model whenever needed and this just causes
  problems keeping them in sync.
* Tidy up DOM documentation indentation
* Merge setupCaption and setCaptionVisible into updateCaption. The
  caption's visibility can be calculated inside the method from
  model attributes.
* No need to generate figcaption on init, updateCaption  will do
  this for us
* Storing full view and model in this.caption is unnecessary,
  just store this.$caption (view.$element) and this.captionVisible
* Append the caption directly to the figure now there is no container
* Simplify setCaptionVisible
* Add in fix to account for border to figure width
* updateSize can get values from the model if they are not provided
* Remove unnecessary styles being set on this.$element.

MWImageCaption
* Generate as a figcaption instead of a div for direct attachment

MWImage
* Missing docs

CSS
* Cleanup reset styles, remove redundant add in required
* Fix margins for left/right floats to match .tleft/.tright
* Use more specific selector for inner border (thumbimage) to avoid
  matching shields.
* Remove unnecessary frameless styles, it has no border by default.

Change-Id: I52e0e10b465bb9761c2e4be28c98bec37b0dd2ca
2013-12-18 22:53:13 +00:00
Translation updater bot 336a4ca9ca Localisation updates from https://translatewiki.net.
Change-Id: If44e14fd60106a123c8a7cfc6f4b70163a6ec3b5
2013-12-18 20:27:34 +00:00
Zeljko Filipin 1cd761dad8 [browser test] Prefer string interpolation instead of string concatenation
Following Ruby coding convention[1].

Also fixes "no implicit conversion of nil into String (TypeError)"
error.

1: https://github.com/styleguide/ruby

Change-Id: I3bcf9ba08476117921de7d5a242f3726d8b05efb
2013-12-18 16:38:48 +00:00
Rob Moen 790d2c1307 Move additional module loading from mw.Target to mw.ViewPageTarget
This resolves some experimental mode dependencies on Mobile integration.

Bug: 58551
Change-Id: Id6c498ae19a5d5b1e5d1698f5e149a9b5d6f3b26
2013-12-18 07:11:36 +00:00
Timo Tijhof 3e9b227a6a Clean up HTML files, Gruntfile and remove index-phantomjs-tmp hack
Consistently:
* Use <!DOCTYPE html>.
* Use lowercase element tags.
* Indent <head> from <html>.
* Use <meta charset="utf-8">.
* Indent <script> and <style> content from open/close tag.
* Put <link> before <script> when in <head> (in ve/test).
* Use .html instead of .php for indexes where PHP is no
  longer used.
* Use the same license header as we use elsewhere (/*! instead
  of /** and no @file)

Gruntfile:
* Include the new .js files in jshint (demos/**/*.js).
* Order buildloader keys in the same order as the directories
  they go to (alphabetically).
* Add missing jshint patterns:
  - .docs/**/*.js
  - build/**/*.js
  - modules/ve-wmf/**/*.js
* Add missing qunit test:
  - qunit.unicodejs
* Add missing watch patterns:
  - .jscs.json
  - qunit.unicodejs

Also:
* Moved relatively large pieces of script into separate files
  so that they are less repeated (though .template) and also
  able to be linted properly.
* Fixed jshint warnings in newly-created trigger.js and demo.js.
* Moved <script> elements already in <body> to bottom of <body>
  (in ve/test and eg-iframe).
* Moved <script> in eg-iframe from <head> to <body>.
* Fixed buildloader grunt task to use a non-\n whitespace match.
  for the start as well, the newline before the placeholder was
  being stripped.
* Removed the (now obsolete) index-phantomjs-tmp hack.

Change-Id: I7c5a371b82f69f367a8e1c11673d2f37868bc931
2013-12-18 07:00:23 +00:00
Ed Sanders 50bec367ca Fix paste tests to work in phantomJS
PhantomJS doesn't play nicely with document.execCommand and complex
HTML. For testing the attribute stripping, use the clipboardData
path. Add in a special clipboard key value that allows us to manually
trigger this from the tests ('useClipboardData-0').

Change-Id: I0de842095a6a9a766f0f9a2249064ca7707283c8
2013-12-18 02:40:42 +00:00
jenkins-bot b922592902 Merge "Replace makeStaticLoader with a grunt task" 2013-12-17 21:41:29 +00:00
jenkins-bot a887720196 Merge "Move visualeditor-languages-tool message from ve to ve-mw" 2013-12-17 21:39:33 +00:00
jenkins-bot 725601305e Merge "Alphabetize msgs-ve" 2013-12-17 21:35:35 +00:00
jenkins-bot 09dee21de7 Merge "Split ext.visualEditor.mwcore out of ext.visualEditor.core" 2013-12-17 21:34:45 +00:00
jenkins-bot cd67c365c6 Merge "Use jquery.i18n for standalone i18n" 2013-12-17 21:16:24 +00:00
jenkins-bot 0a5687e296 Merge "Allow ve.init.Platforms to asynchronously initialize themselves" 2013-12-17 21:15:29 +00:00
Roan Kattouw 88c4888872 Replace makeStaticLoader with a grunt task
'grunt build' builds modules/ve/test/index.php, demos/ve/index.php
and .docs/eg-iframe.html from the associated *.template files.

Got rid of the JS-based SVG/PNG switching logic. Instead, we now
just use SVG unconditionally. We'd already dropped browser support
for browsers that don't support SVG anyway.

Change-Id: Iba2e68f17904687cb13e793a410e095f28f1b13c
2013-12-17 22:03:01 +01:00
Roan Kattouw b61813b935 Move visualeditor-languages-tool message from ve to ve-mw
I intially thought it was associated with the language inspector, but
it's not, it's the label for the languages pane in the meta dialog.

Change-Id: I478e3951862a25eee056e3df6cc3c9f9f7d9d935
2013-12-17 20:56:13 +00:00
Roan Kattouw fe2ab4a203 Alphabetize msgs-ve
Change-Id: I79294c8b3a80d25eeeb03a84bc04b3d670ce6a14
2013-12-17 20:56:07 +00:00
Roan Kattouw fb3a75b85d Split ext.visualEditor.mwcore out of ext.visualEditor.core
* Split files according to ve / ve-mw paths
* Split messages according to msgs-ve / msgs-ve-mw
* Update dependencies accordingly
* Remove ve-mw/ hack in makeStaticLoader.php, no longer needed

Bug: 45342
Change-Id: I6cb89606c307e27e237a1e9b56b94dfdcd310f41
2013-12-17 20:56:03 +00:00
Roan Kattouw 94879a98b7 Use jquery.i18n for standalone i18n
VisualEditor.php:
* Make jquery.i18n a dependency of ext.visualEditor.standalone

makeStaticLoader.php:
* Remove ve.init.platform.addMessages() call with PHP-generated messages
* Add fake module for jquery.i18n
** Needed because the module might come from MW core
** Also add special treatment for fallbacks.js and language scripts

ve.init.sa.Platform.js:
* Remove basic message system, replace with jquery.i18n
* Add initialize method that loads messages for current language and
  fallbacks

ve.init.sa.Target.js:
* Wait for the platform to initialize before actually doing things
* Add .setup() method to allow callers to short-circuit this process
** This is convenient for callers of ve.init.sa.Target in the test suite

ve.ce.test.js:
* Use existing ve.test.utils function for creating a surface

ve.test.utils.js:
* Call .setup() on the target so we can get a surface synchronously

ve.init.Platform.test.js:
* Make these tests async, wait for the platform to initialize
* Allow for missing messages to be output either as <foo> (MW)
  or foo (jquery.i18n)
* Get rid of message clearing code, namespace test messages instead

Change-Id: Iac7dfd327eadf9b503a61510574d35d748faac92
2013-12-17 21:16:26 +01:00
Translation updater bot e7ea330f96 Localisation updates from https://translatewiki.net.
Change-Id: Ifd7b23212032c27448a6204b7d77acef8524c961
2013-12-17 19:25:54 +00:00
jenkins-bot b5a3cfe30c Merge "Strip trailing linebreaks on paste due to Chrome bug" 2013-12-17 18:53:09 +00:00
jhall 5e6154ebc4 [Browser test] New transclusion template search
Per Bug: 58406, updating search criteria for
tranclusion templates to work with existing
content in beta labs.

  Please enter the commit message for your changes. Lines starting

Change-Id: Iac6919d234bd298034cc3c3d90ec62239a3fd0df
2013-12-17 08:30:07 -05:00
Roan Kattouw fc119e3d60 Allow ve.init.Platforms to asynchronously initialize themselves
We'll need this for the standalone platform to load jquery.i18n messages

Change-Id: Iacb9fcb2d5750711187f7d72d53d8c7d54c6f30b
2013-12-16 22:46:19 +01:00
Translation updater bot 11ff000c97 Localisation updates from https://translatewiki.net.
Change-Id: If5925a9a9e9ecd1fc44921d1f91f3cc31c23cae7
2013-12-16 19:50:58 +00:00
Jeff Hall f83c8d7519 [Browser test] Additional waits for SauceLabs timeouts
Applying same fix that was applied earlier to "bullets_steps.rb"
since that relieved frequent timeout behavior seen with tests
run via SauceLabs.

Change-Id: I0c924a315cd2bf4821a9155a1d1dcd052910e50e
2013-12-16 10:29:20 -08:00
Ed Sanders 1f7c81851e Strip trailing linebreaks on paste due to Chrome bug
When pasting into a selected paragraph, or emptying a paragraph Chrome
adds a linebreak. Our paste into empty uses a selected paragraph for
context so the converter picks up this extra linebreak.

It is possible that this breaks are intentional but not likely
so better just to trim than to leave the user with a break which
doesn't even render clearly.

Bug: 58347
Change-Id: Ia6b22cdaeedf1a75bb529c9a5312add9c3ce182c
2013-12-16 18:20:24 +00:00
jenkins-bot 93a75dcc04 Merge "Add useful HTML in toDomElements for refs and templates." 2013-12-16 14:57:08 +00:00
Ed Sanders f5cbcc4f56 Add useful HTML in toDomElements for refs and templates.
For the benefit of pasting out of VE.
Use data-ve-ignore where necessary to avoid the HTML being
used on the way back in to VE.

Change-Id: Iabe678c4246c1d1f51abb058b6e750811fdf9bea
2013-12-16 14:33:40 +00:00
jenkins-bot 46f5f29839 Merge "Move index label generation to the model" 2013-12-16 13:17:26 +00:00
Translation updater bot e2f816a4bb Localisation updates from https://translatewiki.net.
Change-Id: I6930c50f3e0a6410e70f9817e953d490895dfe86
2013-12-15 20:59:48 +00:00
Translation updater bot 35f1d5ad77 Localisation updates from https://translatewiki.net.
Change-Id: Ic4dd2f71419cd76a4deb220c1947e4eb4040ff16
2013-12-14 20:55:06 +00:00
Ed Sanders 8e3f77a9e7 JSCS fixes
Change-Id: I11032f05eaee1e8c895e06ebbc9c329cbc70c8c0
2013-12-14 00:04:12 +00:00
Ed Sanders 8ce7182045 Move index label generation to the model
Also make available as a static method so it can be used by the
converter. We will need this for generated HTML for the external
clipboard.

Change-Id: Ief843ac10cd6c6e4b25e09a007625d363792adff
2013-12-14 00:02:50 +00:00
jenkins-bot 0a203fec65 Merge "Update jquery.i18n to f6102aa4feddf3623c9fba3a3d31592c58204b58" 2013-12-13 21:34:08 +00:00
jenkins-bot 717f8acf47 Merge "Move language inspector messages to VE core" 2013-12-13 21:32:56 +00:00
jenkins-bot 628eb96c24 Merge "Reformat English JSON files" 2013-12-13 21:32:22 +00:00
Roan Kattouw c3ea309a78 Move language inspector messages to VE core
They conceptually belong in VE-MW, but right now the language
inspector is used in the VE standalone, and not having the
messages breaks it.

Change-Id: I0f84c6ee6c6142581c895515a2bd2a6caf4e511d
2013-12-13 13:23:58 -08:00
Roan Kattouw e0f011be54 Reformat English JSON files
They were never reformatted by the TWN export

Change-Id: I24b455d7897a4dba89993a8eeaad2fa68933ae1e
2013-12-13 13:01:37 -08:00
jenkins-bot 386f27bffc Merge "Fix the standalone toolbar to not demote heading1" 2013-12-13 20:47:17 +00:00
Roan Kattouw af4b7bd067 Fix the standalone toolbar to not demote heading1
The duplication of the toolbar definition is ugly but we don't
have a better system to say "give me the same except demote this
one thing" right now.

Change-Id: Id74ed1a18aee4a947992bdd626702f578bbace14
2013-12-13 12:24:54 -08:00
jenkins-bot 0fcc524bd3 Merge "Add a getDirectionFromRange Method to ve.ce.Document" 2013-12-13 20:24:23 +00:00
Roan Kattouw 21dd4e411a Update jquery.i18n to f6102aa4feddf3623c9fba3a3d31592c58204b58
From f6102aa4fe

Also rename jquery.i18n.messages.js to jquery.i18n.messagestore.js ,
somehow these files are named differently between the version in ULS
and the version in github and I didn't pick up that change when
switching between them.

Change-Id: Icd78c1374969f1ea539938237d405a8aeecd1dd7
2013-12-13 12:16:53 -08:00
Translation updater bot 69957698c7 Localisation updates from https://translatewiki.net.
Change-Id: Ied0dc7cfda9706146529f47f10c089963f80e0d7
2013-12-13 20:09:48 +00:00
Moriel Schottlender 95d99192b4 Add a getDirectionFromRange Method to ve.ce.Document
getDirectionFromRange returns the direction property of the ce nodes under
that range. That method is mostly useful to recognize the overall block
direction of a selection or fragment.

The method is currently used in the following locations:
* ve.ui.Toolbar onContextChange - as a means to recognize the current context's
  block direction for the icon directionality.
* ve.ui.MWExtensionInspector - if the selection is text and not an existing node
  the input directionality adjusts to the context direction.

Bug: 57421
Change-Id: Ifc01b8e5dc0a2fe39d221e59e452c5cfad709a2d
2013-12-13 12:07:19 -08:00
jenkins-bot fc3ea799df Merge "Check values property exists before removing attribute" 2013-12-13 19:39:42 +00:00
jenkins-bot 9e9243e51f Merge "data-ve-ignore attribute for elements to be complete ignored by the converter" 2013-12-13 19:36:55 +00:00
jenkins-bot 252f25c9cd Merge "Fix hashes in MW toDomElement functions" 2013-12-13 19:36:01 +00:00
jhall c6a002110e [Browser test] Add waits for SauceLabs happiness
1) when_present waits to deal with SauceLabs sluggishness
2) Restore a "sleep" method for running test locally

Change-Id: I692befa5da607cf2468e3a56eb9b634a17f8deb2
2013-12-13 18:56:53 +00:00
David Chan 15f69cb597 ve.EventSequencer onLoop: minor consistency change
Change-Id: I2102c7eb3f8865ef403b01d8975359a4a212bf6c
2013-12-13 18:33:11 +00:00
Ed Sanders 6d65373339 data-ve-ignore attribute for elements to be complete ignored by the converter
This is for HTML we generate for the benefit of the external clipboard
(i.e. pasting into other applications).

Change-Id: I1c5ff4760f17e1981a78a0bc44f8e296454bb065
2013-12-13 17:48:06 +00:00
Ed Sanders 2843714834 Fix hashes in MW toDomElement functions
Hashes weren't using the new [ object, config ] set up so were
never matching the store. Also added a check to see if the
originalDomElements actually exists before trying to use them
(they may have been removed by a clone operation).

Change-Id: I886e369ced9a9d2e0e457ced9c21b2a7a8e55d58
2013-12-13 17:48:03 +00:00
Timo Tijhof 89ae1aa107 Update oojs to v1.0.6
Code:
 http://krinkle.github.io/oojs/releases/oojs-1.0.6.js

Release notes:
 https://github.com/wikimedia/oojs/blob/v1.0.6/History.md

Change-Id: Iaf7cd26b09d709f67f1947ebf14f751654d8b36e
2013-12-13 02:27:12 +01:00
James D. Forrester de4b7e4f0e Move "visualeditor-toolbar-insert" to ve, not ve-mw
Fix mis-placed message breaking stand-alone.

Change-Id: Ibffff67105e6877a61ba68eafc6395e598a36f82
2013-12-12 17:11:46 -08:00
Ed Sanders 74277cbde0 Check values property exists before removing attribute
Apparently the values property is optional so an
exception is thrown if it isn't set.

Bug: 58421
Change-Id: Ied2a1adb2818fb3f516c1cbde263a675ceb84446
2013-12-13 00:10:07 +00:00
Ed Sanders 5f78aa22f1 Check InternalList node exists when rendering MWReferenceList
If you've just pasted in a reference and a list the internal list
nodes may not have been rebuilt yet.

Bug: 58242
Change-Id: Ib10b81f4023194791f789f3e7dda393f2e355ea3
2013-12-12 23:02:10 +00:00
jenkins-bot 630249b1cc Merge "[Browser test] Update Firefox + Selenium versions." 2013-12-12 21:40:42 +00:00
jhall b552171189 [Browser test] Update Firefox + Selenium versions.
Change-Id: Iea8b5dea546140da58759da2db3150f85e1a553f
2013-12-12 21:33:27 +00:00
jhall b9cd28589b [Browser test] Updates to use new Insert menu
"Insert" menu replaces "More" menu for
accessing some advanced markup features.

Change-Id: I57635b54f3a5b2b72f754747bdb836fe1bfda5ec
2013-12-12 21:32:42 +00:00
Translation updater bot ae5b16e981 Localisation updates from https://translatewiki.net.
Change-Id: If498cb7858a02cdc647d26251f35625c93e158e0
2013-12-12 21:17:06 +00:00
jenkins-bot da14b51b7e Merge "Use the same new toolbar for media and reference dialogs" 2013-12-12 19:32:22 +00:00
jenkins-bot a8b8c47c97 Merge "Update jquery.i18n to 255b10492507f78acd547cfab71eef403018d76f" 2013-12-12 19:26:30 +00:00
James D. Forrester 00088bbf05 Use the same new toolbar for media and reference dialogs
With blocks comment out where they're not wanted.

Bonus: Actually make the pasteSpecial command available in these
contexts.

Bug: 58404
Change-Id: Ic77c252ddc9ae54019b2d86ee5f8a6f4febf4292
2013-12-12 19:22:50 +00:00
Moriel Schottlender e3308b0bd9 Direction adjustment to <figure> styling
Adding @noflip to align-left and align-right in the <figure> css styling
rules and removing the need to resize the Branch Node div element on center.

Change-Id: Iec6e589ba9ecdf32c1a0934b9eb05ee3fd42af66
2013-12-12 19:15:53 +00:00
Roan Kattouw 18e243bea4 Update jquery.i18n to 255b10492507f78acd547cfab71eef403018d76f
From 255b104925

Change-Id: I77398f35c9f5465ba6fd224f35b6a863269a7d38
2013-12-12 11:13:18 -08:00
jenkins-bot 46c708df2f Merge "Make commands aware of their symbolic names" 2013-12-12 18:48:07 +00:00
jenkins-bot cf03ad7616 Merge "Render CE MWBlockImageNodes as styled <figure>s" 2013-12-12 18:47:12 +00:00
jenkins-bot aad149fa43 Merge "Add getDomSubtreeFromModel to converter API" 2013-12-12 17:41:00 +00:00
jenkins-bot 67bd5488da Merge "Rename getDataFromDom to getDataFromDomSubtree" 2013-12-12 17:37:04 +00:00
jhall d35cc1e573 [Browser test] Update to use new text styling menu
Also removed some duplicated code and
added test cases for bold and italic styling.

Change-Id: I181c208dd1165ea52bd4c49eb00c2eaae41ef05f
2013-12-12 10:37:48 -05:00
Ed Sanders 92dab00f60 Add getDomSubtreeFromModel to converter API
This means we no longer have to inject the store/internalList etc.
state into the converter manually before generating DOM.

Change-Id: I9d1f5f2592a7c5bf4ad404416b79ad65afd83b9c
2013-12-12 14:37:18 +00:00
Ed Sanders 1e83bd03b3 Rename getDataFromDom to getDataFromDomSubtree
To match its inverse getDomSubtreeFromData, and to make clear
that the input can be any subtree, not just a full document.

Change-Id: I4853bb6def0059eda43f86f0dcb6dd44309dc35d
2013-12-12 11:58:41 +00:00
Roan Kattouw 4c98f753a0 makeStaticLoader: Update fake standalone init module
* Don't add ext.visualEditor.base to it, and strip of ve-mw stuff
** .base doesn't contain ve-mw stuff any more, so no stripping needed
** Instead of appending .base, just load .base and create a
   separate fake module for Standalone init.

* Don't manually register .sa files
** Instead use ext.visualEditor.standalone, it's right there.
** Add missing CSS file to .standalone.

* Documented the purpose of 'Dependencies' and removed scripts
  from that fake module that don't fall under that rationale and
  instead add them as regular modules (rangy, unicodejs).

* Removed weird 'jquery' dependency in 'ext.visualEditor.core'
  module. This is strongly recommended against, and might
  actually cause jQuery to be reloaded due to outstanding bugs
  in core with the state machine in the startup queue (jquery, mediawiki).

* Unlist unused 'jquery.client' dependency in makeStaticLoader.
  As per the module definitions in VisualEditor.php, this is
  only used by the .mediawiki module. Grepped modules/ve/ and
  found 0 uses.

* Update dependency order to roughly match the dependency tree
  as it is specified in ResourceLoader (e.g. rangy is for .core,
  not .base).

* Keep fake modules out of ResourceLoader.

Change-Id: I2a31543e5ad2fc39f5980fea855172108eda4428
2013-12-12 03:34:42 +01:00
Roan Kattouw e754b07539 Rebuild static loaders
Had apparently gotten out of sync

Change-Id: Ib2d576ec5b5db2fe6fec468fd053dfc8a029747a
2013-12-12 01:32:33 +00:00
jenkins-bot 29f047ea89 Merge "Fix issues with copy-pasting MWTransclusionNodes" 2013-12-12 00:45:28 +00:00
jenkins-bot 9a68595f71 Merge "Add recursion to removeHtmlAttribute" 2013-12-12 00:44:29 +00:00
Ed Sanders f0e9ec7922 Fix issues with copy-pasting MWTransclusionNodes
ve.dm.MWTransclusionNode
* Implement getClonedElement to remove originalDomElements
  and originalMw. We don't want to put these in the clipboard
  as there is no guarantee they are the rendering of the current
  set of parameters (a refresh may be in progress) and they may
  confuse the converter on the way back in.
  Remove about attribute to prevent about grouping of duplicated
  nodes.
* Set an extra attribute to flag that the outputted DOM doesn't
  have any generated content attached to it that can be stored
  on load.
* Check for said attribute in toDataElement and skip the
  storeGeneratedContents step. This will trigger an async update
  of the generated contents on paste.

ve.ce.Surface
* Call cloneElements before writing to pasteTarget so data in external
  clipboard is stripped of generated contents.

ve.dm.Node
* Only strip data-parsoid as other attributes may be meaningful.

ve.dm.mwExample, ve.dm.Node.test
* Update tests

Bug: 58241
Change-Id: I3e15cc97e94747647078204a0b398e6ac3ec6382
2013-12-12 00:02:11 +00:00
Ed Sanders ba2636c787 Add recursion to removeHtmlAttribute
This is pretty straightforward because the htmlAttributes data
structure is so simple...

Change-Id: Ie46fcc0715c4aecb984e73dc81a5297673f2c3ea
2013-12-12 00:02:11 +00:00
Moriel Schottlender f1123f87f5 Render CE MWBlockImageNodes as styled <figure>s
This change is meant to transform the current block image node rendering
in ContentEditable from the nested <div> structure to a <figure> tag more
closely matching Parsoid's output, with CSS to style it the same. This is
mostly so we can work with and display attribute changes, like 'type' and
'alignment', without constantly destroying and rebuilding nested <div>
structures.

This change also includes all the attribute changes that will be called
when the media edit dialog changes image type, alignment, size, etc.

Node: The mw-classes 'thumb', 'thumbinner' and 'thumbcaption' are
preserved in the structure of the <figure> but CSS designers should note
these styles are no longer necessarily attached to <div> elements.

Bug: 53436
Change-Id: I40065acd9fd59d30f94b5336736d4986e8de15aa
2013-12-11 15:54:55 -08:00
James D. Forrester bd94ff92bb Initial re-styling of the toolbar
Move all text styles, and the remove styles button, into a new 'list' toolbar
group, using the text-styles icon. Less-used text styles (strikethrough, code
and underline) are demoted, with remove styles at the end, and bold and italic
promoted.

Now re-label the "More" catch-all to now be "Insert", which is what's left.

Change-Id: I66a1bba347ea64e540106b1090995b3117a8b1b2
2013-12-11 23:41:12 +00:00
Kyle Florence 638e4f65b6 Make commands aware of their symbolic names
This introduces a small reorginization of how commands are registered so
that they are associated with their corresponding symbolic names.
This change is mainly to aid with event tracking, but it might be
generally useful for other things as well.

Change-Id: I2ccf4522f786a54c1f5395008b7b0333a1fa6072
2013-12-11 15:34:20 -08:00
jenkins-bot 1fb7446738 Merge "Re-label the formula inspector to not be LaTeX" 2013-12-11 23:12:01 +00:00
jenkins-bot 9489984127 Merge "Strip empty spans after style attributes have been removed" 2013-12-11 23:11:00 +00:00
Ed Sanders dc5269f249 Strip empty spans after style attributes have been removed
We already do this for removeHtmlAttributes mode.

Add tests in ElementLinearData and ce.Surface. Get rid of unused
clipboardHtml param in ce.Surface tests as it is unused and replace
with clipboardKey flag which tests the VE->VE paste path.

Change-Id: I0cd82a37d6e765ecab489dc22f642ebbcfbb5387
2013-12-11 23:01:23 +00:00
jenkins-bot 67dad75ddd Merge "Format MW example HTML" 2013-12-11 22:28:31 +00:00
jenkins-bot 5009eaed5b Merge "Move removeHtmlAttribute into ve.dm.Model" 2013-12-11 22:27:20 +00:00
Ed Sanders 0da40d1c09 Format MW example HTML
For readability

Change-Id: I7e58fd71a0a34e2e11bf93b1f088e4c87795b748
2013-12-11 22:03:15 +00:00
Ed Sanders a1c1016bae Move removeHtmlAttribute into ve.dm.Model
Make available only as a static method so you don't accidentally
change a node without using a transaction.

Change-Id: If27442b502ec176a58e75ef4f9afa5119d06dcc5
2013-12-11 22:02:36 +00:00
James D. Forrester 68d077fa70 Re-label the formula inspector to not be LaTeX
Because users like to understand labels.

Bug: 53251
Change-Id: Iab24371161f278f07e516478a864d957859c32ae
2013-12-11 13:05:27 -08:00
Translation updater bot 942946cec1 Merge "Localisation updates from https://translatewiki.net." 2013-12-11 20:31:05 +00:00
Translation updater bot f6c5722b1f Localisation updates from https://translatewiki.net.
Change-Id: Ia3cd64ae99a564324c09a134eb32aacbbf269e75
2013-12-11 20:29:53 +00:00
jenkins-bot 04c9f79834 Merge "Don't select nodes inserted by a dialog, but drop cursor after" 2013-12-11 20:25:50 +00:00
Roan Kattouw 970cf03cc8 Followup 5d7673eb: still adjust width/height when positioning fails
ve.ui.Context#updateDimensions does two things: it updates the position
of the popup by measuring where the selection is, and it updates the
width and height of the popup by measuring the contents of the inspector
or the context menu.

In some cases, measuring where the selection is fails, and
ve.ce.Surface#getSelectionRect returns null. This seems to only happen
1) in phantomjs while running the test suite and 2) when an inspector
is opened and doesn't adjust the selection while opening. I suspect
it has something to do with the selection not having been recently
set or the documentNode not having focus, but I haven't investigated
this in depth yet.

Prior to 5d7673eb, the editor would simply crash of the position
measurement failed. 5d7673eb changed this to just bail completely if
the position couldn't be measured, but that's also wrong. Without a
position measurement, we can't update the position of the popup, but
we can still adjust its width and height, and we should.

The failure to adjust the popup's width and height in this case was
causing a bug where opening the link inspector with the selection
set exactly to what the inspector would expand it to would cause the
popup's width and height to never be adjusted, and most of the inspector
to be invisible.

Bug: 58301
Change-Id: Ia6504e0a7b0cd1affbff2632e9f573684f1d5dcb
2013-12-11 19:54:44 +00:00
jenkins-bot 447fcb94c7 Merge "Add language code to language dialog" 2013-12-11 19:38:14 +00:00
Ed Sanders 60262b883e Move resetting of paste state variables to after afterPaste
So that if the function bails with a return they are still run.

Bug: 58346
Change-Id: Ibd0f194e9c31e2b023dbd00a13ade51785f78ae6
2013-12-11 19:22:42 +00:00
Ed Sanders a38b1d9420 Allow tables to contain captions!
Captions were not in the allowed lists of children for tables.
This causes an exception to be thrown if you try to do fixUpInsertion
on a transaction containing captions.

Bug: 58318
Change-Id: I866e015c14e787830c45da93dfed9d2119fb0865
2013-12-11 15:42:09 +00:00
Roan Kattouw 536df35ed1 Add language code to language dialog
Bonus: give both the language name and page name
lang and dir attributes.

Further bonus: reintroduce message that was deleted
earlier with all of its original translations.

Change-Id: Id137ff9a069799b6c09574b72f450eac6665d144
2013-12-11 02:42:20 +00:00
jenkins-bot 286f2b1581 Merge "Rename big/small stack to undoStack & newTransactions" 2013-12-11 02:41:28 +00:00
jenkins-bot cc65c7a704 Merge "Text style icon" 2013-12-11 01:46:50 +00:00
jenkins-bot e4668d4c63 Merge "Remove ve-pasteProtect class when falling back to clipboardData" 2013-12-10 22:02:08 +00:00
Translation updater bot c6cf993c2d Localisation updates from https://translatewiki.net.
Change-Id: Ic5d1dee35d8347ea461681eacc51f1e2e0789e81
2013-12-10 20:44:55 +00:00
Ed Sanders c1f88f50ee Remove ve-pasteProtect class when falling back to clipboardData
We already do this on the pasteTarget.

Change-Id: Idcc7ed34daebfb5ed14925eb5ee8526d1001a2f1
2013-12-10 20:11:35 +00:00
Ed Sanders 333166e818 Fix paste sequence in Firefox
It appears that if the pasteTarget is given focus too close to the
range being set it may not take effect in time. Moving up to before
any of the selection setting logic seems to fix the issue.

Bug: 58283
Change-Id: I9bfb0ab6952863496fb3548e6804cb347d52cc57
2013-12-10 19:17:12 +00:00
jenkins-bot 7e9f214acd Merge "Add missing tests to FlatLinearData" 2013-12-10 17:58:59 +00:00
jenkins-bot 04377b5cac Merge "Organise Flat/ElementLinearData methods and tests" 2013-12-10 17:56:45 +00:00
jenkins-bot 8ce640f263 Merge "Remove references to 'document' in LinearData classes" 2013-12-10 17:55:12 +00:00
Ed Sanders 2e0b523ddc Add missing tests to FlatLinearData
Change-Id: I5a5f2c55928359951c4b811b75662517cec07540
2013-12-10 17:52:37 +00:00
Ed Sanders 6c231be8ab Organise Flat/ElementLinearData methods and tests
Move containsElementData to FlatLinearData next to isElementData. Move
tests for both methods to FlatLinearData.test.js.

Change-Id: I07a192f5925da7cc763efe5e41427f1f47d85850
2013-12-10 17:51:36 +00:00
jenkins-bot 094326fedd Merge "Sync JSON i18n for 1a5bdd5" 2013-12-10 17:28:52 +00:00
Roan Kattouw b6a35aa96d Sync JSON i18n for 1a5bdd5
Change-Id: Ib9c7219e4f9ae5893439eec7059519d2f24cd5f2
2013-12-10 09:09:45 -08:00
Ed Sanders 191d610b21 Remove references to 'document' in LinearData classes
This is left over from when all these methods where in ve.dm.Document.

Change-Id: Iec18aeddc7c8575f72550053c6278ff37a1d6000
2013-12-10 17:07:44 +00:00
jenkins-bot 41397bba1d Merge "Check the selection has collapsed after pasting" 2013-12-10 17:03:15 +00:00
jenkins-bot 9bf0f5b93e Merge "Show full language names in the MW language dialog" 2013-12-10 17:00:53 +00:00
Ed Sanders 80f5f12451 Check the selection has collapsed after pasting
In Chrome you can paste the empty string which triggers
the paste events but doesn't change the paste target. This
results in the insertion of the context character on empty
lines. To avoid this we can detect if the selection we put
around the context character is still there and abort the
paste.

Bug: 58138
Change-Id: Ib73465a2376cd316dbac6ce2567ecb64bc500307
2013-12-10 15:52:27 +00:00
Roan Kattouw 96000558a2 Don't select nodes inserted by a dialog, but drop cursor after
It used to be that when you closed a dialog, the thing that the dialog
inspected or inserted would be selected. For insertions, the selection
will now be collapsed immediately after the inserted node.
For modifications, the original behavior was kept, as it makes sense to
keep selecting the node that the user had to select in order to access
the dialog. For removals (only possible in the transclusion dialog),
the selection ends up as a collapsed selection at the location where
the removed node used to be; this was already behaving correctly,
as we get this behavior for free with offset translation.

Bug: 54957
Change-Id: Ibd14e8084d67a9ee85e3bac075c3fb50f27b05b2
2013-12-09 18:02:18 -08:00
jenkins-bot d2250acc59 Merge "Don't move the cursor to the top of the page after closing a dialog" 2013-12-09 23:21:18 +00:00
Roan Kattouw 29532f15db Don't move the cursor to the top of the page after closing a dialog
And other focus behavior fixes.

ve.ce.Surface.prototype.focus:
* Restore focus to the pasteTarget if a focusedNode was selected.
  This function is invoked when a dialog is closed, and we were
  always focusing the documentNode, which means the selection was
  restored incorrectly when the selection was really in the pasteTarget.

ve.ce.Surface.prototype.documentOnFocus:
* Don't rerender the model selection if the documentNode was focused but
  a focusedNode is selected. Otherwise the user can never deselect a
  focusedNode.

ve.ce.Surface.prototype.onModelSelect:
* Rerender the selection even if prev === next. This function was
  already called as a means to rerender a lost selection, and it didn't
  work if it so happened that the selection was still the same and was
  on a focusedNode.
* Clear the surfaceObserver state when moving focus from the
  documentNode to the pasteTarget. If we don't do this, then placing
  the selection back in the documentNode at the exact same place where
  it was before will not be noticed by the observer.

ve.ui.Context.prototype.onSurfaceFocus:
* Hide the context only when an inspector is open, not just when the
  context popup is visible. This ensures that the context is still
  hidden when the user clicks out of an inspector, but fixes a bug
  where the context was hidden when the selection was restored on
  an inspectable focusedNode.

Bug: 58090
Change-Id: I0658f025a9c6005d769fd0291380fcb9c1ba4f32
2013-12-09 15:17:53 -08:00
jenkins-bot 273ce5086c Merge "Only strip style attributes on rich paste from VE" 2013-12-09 22:59:06 +00:00
Translation updater bot 711d578486 Localisation updates from https://translatewiki.net.
This is a full export of the recently converteted i18n of
VisualEditor. The conversion script should generate output in
this format, so that future diffs for localisation updates
remain as small as possible.

Change-Id: I03c3223f51027b97d7962553e80afd741991c9af
2013-12-09 22:30:48 +00:00
Ed Sanders 6a52fba643 Only strip style attributes on rich paste from VE
Stripping all HTML atributes (to avoid CE-added styles such as
'font-size: 1em;') also strips data-parsoid which can cause
round trip errors. As an improvement only strip the style
attribute.

Bug: 58136
Change-Id: I34386bd847d1cf0583317a8b07916e43ff7af029
2013-12-09 22:25:43 +00:00
Roan Kattouw 2fa725599c Add missing specialcharacters messages to JSON blobs
These were accidentally dropped when I rebased my commit
that imported all i18n messages into the JSON files.

Change-Id: I2f5611f3dbe1a31134426184a9d5648ffc751947
2013-12-09 13:19:17 -08:00
Roan Kattouw f462ea5bb0 Convert all i18n to JSON blobs
Split the i18n messages into four groups:
* oojs-ui (moved to the oojs-ui repo in a separate commit)
* VE core
* VE-MW (MediaWiki-specific things)
* VE-WMF (Wikimedia-specific things)

The VE-WMF group is new, and we'll split WMF-specific code out into
it later, for now it's just messages associated with that code.

Each language has its own JSON file at modules/MODULE/i18n/LANG.json

Kept messages in VisualEditor.i18n.php as the master copy, because
TranslateWiki can't deal with the JSON files just yet. Added a script
to rebuild the JSON files from the PHP file.

Change-Id: I94e084b2f10994f41324fd08a05ff7f8391ea2eb
2013-12-09 10:52:01 -08:00
cmcmahon d627b4da8f [Browser tests] maintenance for remove parameter/template buttons
Change-Id: Ia04ddc5aa18f412bb2e02ee45dcfdc421b3ec64a
2013-12-09 17:39:09 +00:00
Ed Sanders d6ca977397 Rename big/small stack to undoStack & newTransactions
Becuase big/small stack doesn't really mean anything.
Bonus: rename the transactions property of the stack item from
'stack' to 'transactions'.

Bug: 49754
Change-Id: I361dda49f4c1e58a541df5b9e478cf20957939a1
2013-12-08 20:25:53 +00:00
jenkins-bot ff9ee27aa8 Merge "Add jquery.i18n files and RL module" 2013-12-06 22:53:47 +00:00
Roan Kattouw e1a404e68f Add jquery.i18n files and RL module
Imported 09f7c9e40fc3bd502 from
 https://github.com/wikimedia/jquery.i18n/tree/09f7c9e40fc3bd502

Change-Id: I9bc4759202a0475bcf52230e0c57a877cc848773
2013-12-06 22:50:43 +00:00
Ed Sanders 9d83d4e4a1 Text style icon
Change-Id: I63befa2fcbfcdc4dbdf81e4c31296d12b6508591
2013-12-06 22:41:13 +00:00