Commit graph

3860 commits

Author SHA1 Message Date
James D. Forrester b9ba3c92a3 Add support for <div>s as user-editable blocks
Bug: 47907
Change-Id: I794927a881082e0113c0ce8ee8f1d908b0960899
2013-04-30 18:43:41 -07:00
Ed Sanders e29ed7f2b6 Remove all code related to change markers
Specifically by looking for "data-ve-changed",
"ChangeMarker*" and internal.changed.

Various tests, test counters and unused variables also
affected.

Bug: 45061
Change-Id: Ibd1ee68e0d650979d40574eff9cebded1a28499f
2013-04-30 23:15:47 +01:00
Translation updater bot f8d81c66b6 Localisation updates from http://translatewiki.net.
Change-Id: I8fbb953b557967f568c33bcf62b4cfd1ea122461
2013-04-30 21:19:16 +00:00
jenkins-bot f8b7e7f1ce Merge "docgen: Use new jsduck --color and --warnings-exit-nonzero option" 2013-04-30 19:49:54 +00:00
jenkins-bot bf35436428 Merge "Allow merging of content nodes with nodes that can contain content (but are not content themself)" 2013-04-30 19:49:13 +00:00
Inez Korczyński afab43a762 Allow merging of content nodes with nodes that can contain content (but are not content themself)
This changeset addresses a problem of pressing backspace in empty list item in order to merge it with list item above it.

Change-Id: I598da6ef24de97b0a7a7bbab6c9ee775aaab460b
2013-04-30 12:09:22 -07:00
Timo Tijhof ba7b10962b docgen: Use new jsduck --color and --warnings-exit-nonzero option
Change-Id: I8a0d8bb8ece598991b9fd1b85cf618463a950fed
2013-04-30 20:53:22 +02:00
jenkins-bot 713fa24d10 Merge changes I5eafaa48,Ia8f23a37,I17534d67,If5ed1b64
* changes:
  Category editing
  Remove singular adding for ve.ui.GroupElement
  Implement ve.dm.Surface#truncateUndoStack
  ve.ui.LookupWidget
2013-04-30 18:34:26 +00:00
jenkins-bot 29e2b6c060 Merge "Make loading VE work on Opera again" 2013-04-30 18:26:47 +00:00
jenkins-bot a287b2e257 Merge "Move Phantoms onChange" 2013-04-30 18:05:30 +00:00
jenkins-bot d8d61126ea Merge "Fix range translation for surface fragments" 2013-04-30 17:58:39 +00:00
Christian Williams 4dfb137bc0 Move Phantoms onChange
Aliens now listen for surface model change events in order to
adjust the position of the phantoms.

Change-Id: I1e8bfba331a10678e9ca7e64b7818197237eb0a2
2013-04-30 10:55:59 -07:00
Trevor Parscal 718db58fd5 Category editing
Modifications:

VisualEditor.php
* Added links to new widgets

VisualEditor.i18n.php
* Added placeholder text for category input

ve.ui.Widget.css
* Added styles for new widgets

New:

ve.ui.MWMetaDialog.js
* Create category widget with categories from dm.
* Listen to metaList for insert and remove events
** insert / remove bound methods to be improved upon additional meta groups
* Add listeners to mwCategoryWidget for new categories and updates

ve.ui.MWCategoryWidget.js
* Top-level category editing widget

ve.ui.MWCategoryItemWidget.js
* Items within a category widget

ve.ui.MWCategoryInputWidget.js
* Input for new categories, handles menu and API requests

ve.ui.MWCategoryPopupWidget.js
* Mini-inspector for a category item

Bug: 39597
Change-Id: I5eafaa484a1924a566d3a1ee1d869293089d0ecf
2013-04-30 17:50:31 +00:00
Trevor Parscal 52529d790b Remove singular adding for ve.ui.GroupElement
By making the API for adding/removing/clearing always plural, it greatly
simplifies the interfaces and reduces function call overhead in most
situations.

Change-Id: Ia8f23a373a01a8f6d5081587a591563e4f25ea42
2013-04-30 17:50:22 +00:00
Trevor Parscal e9346fdb60 Implement ve.dm.Surface#truncateUndoStack
ve.dm.Surface.js
* Allow manual truncation of the undo stack to prevent redoing something
  that's been undone

Change-Id: I17534d6724fc2b325152cb2f665c6816f44232c1
2013-04-30 17:50:17 +00:00
Trevor Parscal cd6b54a4e8 ve.ui.LookupWidget
Refactoring of externally sourced suggestions for text inputs.

*.php
* Added links to new file

ve.ui.InputLabelWidget.js
* Changed to focus input element, not wrapper div

ve.ui.InputWidget.js
* Fixed incorrect documentation

ve.ui.LookupInputWidget.js
* New mixing that abstracts placing a menu of options below a text input
  and filling it with data from an external source

ve.ui.MenuWidget.js
* Fixed to get reference to input element, no wrapper div

ve.ui.MWLinkTargetInputWidget.js
* Moved pending and lookup functionality to mixing
* Implemented menu population using only matching pages, rather than a
  combination of that and page existence checks (fewer API calls)

ve.ui.TextInputMenuWidget.js
* Added configurable container to render underneath, rather than assuming
  this.input.$
* Added auto-position-on-window-resize functionality
* Fixed frame position correction to ensure that it only is used when the
  overlay is in a different frame from the container to position
  underneath

ve.ui.TextInputWidget.js
* Added placeholder text feature

Change-Id: If5ed1b64fd15982807691ce8bb0362970633108a
2013-04-30 10:47:32 -07:00
Ed Sanders d4eef1b879 Fix range translation for surface fragments
Remove all manual changes to SF ranges as these are not
undoable. Instead change translate range to default to
outer expand and build functionality around that behaviour
never changing.

As translate range is always outer I don't think we need to
check for start and end crossing over?

Added more undo tests to assert these selections are maintained
properly, and added the test case to 'update' for when and undo
point is overwritten.

Insert content now results in a selection over the inserted
content. Most usages were expecting this anyway and were
followed up with an adjustRange(-length,0) which is no longer
necessary.

Noticed that the link inspector case was never being triggered
as word boundary was always expanding to at least one char (mainly
for Hanzi selection). This doesn't make much sense as single
spaces get auto selected so removed this functionality.

Split collapseRange out into collapseRangeToStart and
collapseRangeToEnd as this may be required to get the old
behaviour (range moves to end after insert).

Change-Id: I3dc0b4d00d37bad1ca3076a69b41c5f0b3fa0570
2013-04-30 17:08:15 +01:00
Timo Tijhof 56584ff4f9 makeStaticLoader: Implement --write-file option
Takes a path as input, reads it in and replaces the
"Generated by" sections and writes it back to disk.
:
Change-Id: Idd68032ba5b621958a353582ea994acd0c4cfbd3
2013-04-30 15:08:55 +00:00
Timo Tijhof 67f2d33d26 Declare dependency on jquery.client in ResouceLoader and static loader
Follows-up I90ea547c735edab and I004514ab761.

Change-Id: I18a34d47c40c1fa5a2305b86f3e1a066cf9dde2c
2013-04-30 15:08:51 +00:00
Timo Tijhof 5ea7f5e1eb makeStaticLoader: Add ext.visualEditor.experimental to dependencies
Change-Id: Ia6b268e845365b4737487726e5bfb825e59fe1c3
2013-04-30 15:03:50 +00:00
MatmaRex 23102fdc19 Make loading VE work on Opera again
Once more, with feeling. The first reverted attempt was I90ea547c.

Detailed comments inside.

Change-Id: I1ab60665987614e5757e2b108d614b680321d8eb
2013-04-30 14:36:47 +02:00
jenkins-bot 6cd91d6c34 Merge "Get back to where you once belonged" 2013-04-30 04:32:59 +00:00
jenkins-bot 00b1458099 Merge "ve.ce.Surface.getSelectionRect() might return null" 2013-04-30 02:11:55 +00:00
jenkins-bot 11056cf07b Merge "Fixed a comment" 2013-04-30 02:11:29 +00:00
jenkins-bot b6fd811c7f Merge "Per Timo's comment, change $.makeArray( foo ) to foo.toArray()" 2013-04-30 01:14:41 +00:00
Roan Kattouw a59f622d54 Per Timo's comment, change $.makeArray( foo ) to foo.toArray()
Change-Id: Ideee46640bc82f979578d5cc467c9c79d9806ae0
2013-04-29 18:08:04 -07:00
jenkins-bot 30c6dfd84a Merge "Fix ce.AlienNode" 2013-04-30 00:51:18 +00:00
Roan Kattouw fdea620ffe Fix ce.AlienNode
Was completely broken after the dm.AlienNode changes

Change-Id: I3f5116d7dfbaa5889b7c5cac01d7341272749c58
2013-04-29 17:35:08 -07:00
jenkins-bot 619f5209f2 Merge "Revert "Redo ve.createDocumentFromHTML() properly"" 2013-04-30 00:32:40 +00:00
jenkins-bot 8e24547c27 Merge "Use duck typing instead of instanceof Node" 2013-04-30 00:30:45 +00:00
Catrope c5af2fcbce Revert "Redo ve.createDocumentFromHTML() properly"
Completely breaks in Firefox

This reverts commit 7287c80293

Change-Id: I1c34842e156fd5668aac097ba6dd80201e54ecca
2013-04-29 17:24:46 -07:00
Roan Kattouw 43ea9a42d8 Use duck typing instead of instanceof Node
instanceof Node doesn't work with nodes generated by the iframe hack
for some reason. Instead, use duck typing by checking for a .cloneNode
method.

>>> ve.createDocumentFromHTML('<body><tt>Foo</tt></body>').body.childNodes[0]
<tt>Foo</tt>
>>> ve.createDocumentFromHTML('<body><tt>Foo</tt></body>').body.childNodes[0] instanceof Node
false

Change-Id: I1ea1253bd204d1070cd01b666b8a90f1cb7e5e14
2013-04-29 17:24:41 -07:00
Christian Williams 5e84ac9ee5 (bug 47746) Fixing Phantom placement in RTL
CSSJanus flips left for right for RTL languages. To ensure proper positioning of phantoms, the phantom container must actually be set to left:0, not right:0. Added the @noflip option before the phantoms selector to prevent CSSJanus from modifying it.

Change-Id: Id7662362d117d6c5719b9b98d7a0dbf62e9ba3ff
2013-04-29 17:00:29 -07:00
Trevor Parscal 4ee9e1f28d Get back to where you once belonged
The toolbar has a high z-index when being floated, it doesn't need one
otherwise. This was causing an issue where the Vector actions drop-down
menu was being obscured.

Change-Id: I3c0ff7c4cf3b4a6c3d94f00ef56d7f299aeb6020
2013-04-29 22:59:46 +00:00
jenkins-bot f39499b656 Merge "Fixed docs" 2013-04-29 22:41:53 +00:00
jenkins-bot 6fa0ecd813 Merge "Create meta item for defaultsort" 2013-04-29 22:15:48 +00:00
Trevor Parscal 27287188ac Fixed docs
Wrong param type.
<pre> tags quoted to avoid jsduck warning.

Change-Id: Ieb9b5527ea69c8f02a175d29c1534290f85ba032
2013-04-29 21:58:51 +00:00
Translation updater bot 3e6f36d27f Localisation updates from http://translatewiki.net.
Change-Id: I5355846543cacf41656e05c3bdc45ad458dd4d49
2013-04-29 20:03:41 +00:00
Timo Tijhof 41b930d818 makeStaticLoader: Fix trailing slash
Change-Id: Ic2b14aae725769957c203de7f4ce820fc2ee110f
2013-04-29 19:02:12 +02:00
Timo Tijhof 60a0f97e35 makeStaticLoader: Implement --fixdir option
Currently when running this maintenance script it outputs
the full path to the i18n file. This was done that way because
of .docs/generate.sh (which pipes it to php through stdin).

This however means that currently the output is not suitable
for pasting into demo and test index files (as the path should
be relative for those).

The --fixdir option will function as toggle between a fixed
path to the directory on disk, or a dynamic resolution at
run-time. The default is the latter. generate.sh passes --fixdir.

Change-Id: Idebca553587aaff9b31255d884461f4a51e70afd
2013-04-29 18:44:15 +02:00
Ed Sanders b85c7f0628 Create meta item for defaultsort
Bug: 46465
Change-Id: I604a79c25e5b0315f7e6437da657977b0efa77db
2013-04-29 15:33:37 +01:00
MatmaRex ee241223ae ve.ce.Surface.getSelectionRect() might return null
Protect against this. Also fix misnesting of updateDimensions()
function's body.

Change-Id: I5040d46d51bd59bf4d2fd7d4d8853c8675420ad0
2013-04-29 15:27:31 +02:00
MatmaRex 6e4f86bf47 Fixed a comment
Change-Id: I97917f70d42820105f6cdbaa3a1724cee3d6731b
2013-04-29 14:29:50 +02:00
Translation updater bot 50e86936be Localisation updates from http://translatewiki.net.
Change-Id: I6338609aefffbbe2bbc6c7d317069e59d2a9a6f1
2013-04-28 23:58:38 +00:00
Ed Sanders 6aaa54bc5f Fix new test case to use new domElements instead of html
This was missed by the merge as it doesn't cause any tests to fail (yet).

Change-Id: I6d106279d31276817ea718fdef3d8199b80693f6
2013-04-28 21:24:20 +01:00
jenkins-bot e7d335b1c7 Merge "Paragraph->heading conversion was broken when cursor next to an inline node" 2013-04-28 20:01:08 +00:00
jenkins-bot 9ddcd88a00 Merge "AlienNode stores original DOM elements instead of HTML" 2013-04-27 21:08:59 +00:00
Ed Sanders cddb3f1b39 AlienNode stores original DOM elements instead of HTML
As jQuery hash problems in some cases converting HTML, it is
easier just to store the original DOM elements.

The bulk of this commit is fixing the tests as although we have an
assertion for comparing DOM elements, we don't have one for comparing
objects or arrays which may contain DOM elements.

ve.js
* copyObject & copyArray fixed to run cloneNode(true) on any item
  of type Node.
* Added callback function so an object/array can be copied with
  modifications.

ve.qunit.js
* Added deepEqualWithDomElements: Using the new copyObect/Array
  callback, we can copy the incoming object and convert any nodes
  to node summaries, then just run the normal deep equal comparison.

ve.dm.AlienNodes.js
* Instead of storing HMTL we store cloned DOM elements which we can
  send straight back to the converter without any processing.

ve.dm.example.js
* Updated tests to expect DOM elements instead of HTML.

ve.dm.Converter.test.js
* Updated tests to use deepEqualWithDomElements

Bug: 47737
Change-Id: I3df8f49b170c31da9610129d53cf8cb65dd5d5f8
2013-04-27 21:04:58 +00:00
Translation updater bot 9dcc627a1a Localisation updates from http://translatewiki.net.
Change-Id: I323d7b9d6f326ce1f99853a51a9e248d6828703c
2013-04-27 20:30:00 +00:00
jenkins-bot fd9c381ef1 Merge "Add a copy of jquery.client so the standalone still works" 2013-04-27 13:30:06 +00:00