Commit graph

6532 commits

Author SHA1 Message Date
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 58b59e8749 Merge "grunt: Update devDependencies" 2013-12-18 23:44:07 +00: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 5405e9aeee Merge "grunt: Update grunt-contrib-jshint use built-in jshintrc parser" 2013-12-18 23:41:50 +00:00
jenkins-bot 65ac18229a Merge "Remove unused .csslintignore" 2013-12-18 23:41:23 +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
James D. Forrester 35a6db00b7 Rebuild VisualEditor.i18n.php – 2013-12-18 19:57:00
Change-Id: I1d1a1256893ecf4489d64e7cf395a6b5d7598d73
2013-12-18 11:56:51 -08: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
Timo Tijhof 17cbdd3cb4 grunt: Update devDependencies
Change-Id: I0076d07e2029039283984dd2ae0b0e775b3e00c0
2013-12-18 08:19:19 +01: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
Timo Tijhof 561dd7c65b grunt: Update grunt-contrib-jshint use built-in jshintrc parser
Use built-in jshintrc option for 'jshint' config instead of
parsing manually and strippig comments.

node-jshint itself has supported comment parsing for a long time
(which is why our Jenkins build, which doesn't even use grunt,
has no problem with our .jshintrc file).

But the grunt task never exposed this parser, until v0.6.4.

Change-Id: Ia45a44ac49c943845a11d3fc7a0127776e99ed2a
2013-12-18 06:33:20 +00:00
Timo Tijhof 56c50b30b8 Remove unused .csslintignore
This file was for the Jenkins job of csslint (since it doesn't
use the Gruntfile), now that it does, this file is redundant.

See also 94b213bd1ec33a2 in oojs-ui.

Change-Id: I62c2eb9cf62ebb15a19158f4913bf8a18597c7d4
2013-12-18 06:26:02 +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 6c77dd8034 Merge "Fix mw.util dependencies" 2013-12-17 21:40:27 +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 abd85fda36 Fix mw.util dependencies
ext.visualEditor.base doesn't and shouldn't depend on mw.util,
but some other modules do. viewPageTarget.init has a dependency
on mw.util meaning that if VE is loaded through it, we'll always
be fine, but for correctness (and support for other targets),
explicitly indicate the dependency on mw.util for every module that
uses it.

Change-Id: I63821938d899897088799bde4d46b04cd2f9a3e2
2013-12-17 20:56:19 +00: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
jenkins-bot fed05f4e9a Merge "Empty empty.html" 2013-12-17 20:27:51 +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
Ed Sanders f4051c8efb Empty empty.html
Some test data was accidentally commited but this should be empty.

Change-Id: If84b4b2a06fcc3b3aeaeedf4624e2040cdbfc2c2
2013-12-17 19:19: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