Commit graph

4689 commits

Author SHA1 Message Date
Trevor Parscal b0f464ef0e Add support for editing multi-template nodes
Objectives:

* Refactor template dialog to support loading template data for, and
  editing multiple templates and interleaved content in a template node
* Update template node model to generate multi-template wikitext

Changes:

ve.dm.MWTemplateNode.js
* Rewrite getWikitext method to work with multi-template formats

ve.dm.MWTemplateDialog.js
* Retain information about the node and template calls
* Break AJAX handler into its own method
* Attach event handlers to inputs directly so template values are
  edited directly on the fly
* Refactor page building to support multiple templates
* Add multi-template support for template data API call
* Add support for editing plain text content

Change-Id: I92ff8a9e186701a3f8da88def92a5b7dcb607897
2013-05-29 01:10:57 +01:00
Trevor Parscal 4c5c18c241 Compare objects/arrays fix
Objectives:

* Fix compareObjects so it doesn't break when given arrays
* Remove compareArrays
* Rename compareObjects to compare and update callers of both methods

Changes:

ve.js
* Loosen check for whether to recurse so both arrays and objects qualify
* Remove compareArrays
* Rename compareObjects to compare

ve.dm.MWTemplateNode.js, ve.dm.AnnotationSet.js, ve.dm.Document.js,
ve.dm.Transaction.js
* Update uses of compare(Arrays|Objects) to use compare

Change-Id: I7d4f7ceb28c0389f0157b7598e291f21393b5b85
2013-05-29 00:39:04 +01:00
Inez Korczyński 0b46b44809 Add class mw-figcaption to figcaption tag inside mwimage
This is currently required by Parsoid in order to serialize
(HTMLDOM -> wikitext) correctly.

Change-Id: I827f63420d05c62d689902c9b348d234f20a5d19
2013-05-28 23:21:59 +00:00
jenkins-bot 57c75a5e41 Merge "Adjust coverter getDomSubtreeFromData method call inside ve.dm.MWBlockImageNode to pass correct arguments (there was an API change)." 2013-05-28 23:03:57 +00:00
Inez Korczyński 476d10b1c3 Adjust coverter getDomSubtreeFromData method call inside ve.dm.MWBlockImageNode to pass correct arguments (there was an API change).
Change-Id: I1918aee714363babf5182c699fd96ef9fd4fce55
2013-05-28 16:01:16 -07:00
Catrope 1365c4a5d5 Fix internal node weirdness
* In getDataElementOrSlice(), we were slicing one too far
* When encountering a closing for an internal node, don't traverse
  up. Doing this caused weird bugs, like inserting text where it didn't
  belong in some cases an exceptions in others, but these issues were
  parly masked by the off-by-one error in the data slice.

Change-Id: Ieda9afa95b7c1953d09e391774350a9b4148c2fe
2013-05-28 15:30:15 -07:00
jenkins-bot efb3f21b13 Merge "A fix for arrow movements in RTL wikis." 2013-05-28 21:50:58 +00:00
jenkins-bot 507b456893 Merge "Add tests for ve.dm.InternalLists" 2013-05-28 21:11:07 +00:00
Ed Sanders c1136ca8e2 Add tests for ve.dm.InternalLists
Also fix clone method when no document supplied.

Change-Id: I7b24e8622049c6293fa0ef813696d5d91a901e75
2013-05-28 22:08:52 +01:00
Trevor Parscal 6d8de30853 Use config object for ve.ui.PagedDialog.addPage optional args
Objectives;

* Cleanup the addPage API
* Add optional index param to addPage method

Changes:

ve.ui.MWMetaDialog.js, ve.ui.MWTemplateDialog.js
* Update uses of addPage

ve.ui.PagedDialog.js
* Bundle existing optional arguments into object
* Add index option for inserting a specific index

Change-Id: Idcef4d0a52fb817c7d888990920b2c12224a3392
2013-05-28 20:33:32 +01:00
Moriel Schottlender 5e9c9b9367 A fix for arrow movements in RTL wikis.
This will make sure the marker moves correctly (backwards/forward)
in RTL languages as well as LTR languages, judging from the wiki pageLanguage.
This can be a quickfix until the movement can be decided per the direction
of the specific element (span/paragraph/div) the marker is in.

Bug: 38546
Change-Id: Ic01e110a5e6094cd275327a2e8cea90c900f1bd1
2013-05-28 14:50:20 -04:00
Trevor Parscal 8eb0efab9b Fix resizable nodes
Making sure resize handle events are bound and unbound on focus, and that elements are created in the right window.

Change-Id: Ie90bb82aa6c81c372d76278dab3665bd49bf573c
2013-05-28 17:36:31 +01:00
jenkins-bot 5add8cc4c0 Merge "Cleanup internalList method names and data stores" 2013-05-28 14:39:14 +00:00
Trevor Parscal 82ff7aa919 Naming typo and mw content in demo
Changes:

* Remove MW specific content in the image demo page
* Fix naming of method, changed in previous commit

Change-Id: I9c073e9f07f791ba6e9e0e979190f3ef415f055d
2013-05-28 15:25:26 +01:00
Ed Sanders aa6eca10db Cleanup internalList method names and data stores
Rename some methods and erase the HTML data after conversion.

Change-Id: Ic7317db2c7693591fda4bea459631981a69003f3
2013-05-28 15:11:17 +01:00
jenkins-bot e2258af635 Merge "Make menus render on the very top of everything" 2013-05-28 13:01:21 +00:00
Trevor Parscal f16eb56a95 Make menus render on the very top of everything
Menus dismiss automatically on blur, so it's safe to make them on the very top of everything

Change-Id: I08bed7f7fbf108f1197c4b6c52ab5b5159e3c982
2013-05-28 13:59:05 +01:00
Trevor Parscal 8511f8ab3e Treat acronyms like words in camel case names
No matter what the W3C says, getDomFromHtmlString is more legible than
getDOMFromHTMLString.

Change-Id: Ic843b6671871024cce8acd82b6be435599ed168b
2013-05-28 12:51:41 +00:00
Trevor Parscal 3be13a7cbc Consistent use of mw in HTML classes, and data element and annotation types
MWfooBar or MWfoobar should be mwFooBar

Change-Id: I30f0ef05960c9df218ef6f1cb161ff6ccd529bc7
2013-05-28 13:49:56 +01:00
jenkins-bot 122bae39bb Merge "Re-fix pixel grid snapping on new text style icons" 2013-05-28 09:51:52 +00:00
Catrope cba55b9330 Don't do evil shadowing of mw
Having local variable called mw that shadows the global variable mw
is evil. Rename it to mwAttr.

Change-Id: I87bd3698c73608076424c10fdb0559dfdc3e3045
2013-05-26 14:34:47 +02:00
Trevor Parscal dd0b331a93 Re-fix pixel grid snapping on new text style icons
Trevor tweaked the pixel grid snapping on my previous commit
but it appears that introduced some errors as well. The horizontal
lines in underline-a and strikethrough-s no longer have integer
x-coordinates, and on underline-u the whole object is offset
by (0.166, 0.166).

Bug: 47780
Change-Id: I51f2605e7d8e2bab1d641f02244d5cd24f505676
2013-05-26 14:30:53 +02:00
jenkins-bot 23595970fe Merge "Remove duplicated code breaking the template dialog" 2013-05-26 12:09:55 +00:00
jenkins-bot a0b6de8e5e Merge "Make reference editing work" 2013-05-26 12:09:19 +00:00
jenkins-bot cd637c6c35 Merge "Fix misspelled event handler" 2013-05-26 11:19:35 +00:00
Catrope e6c7aa4275 Clear phantoms on teardown in ProtectedNode
When you typed after a ProtectedNode that was previously at the end of
a paragraph, then moved the mouse, you'd get a JS error.

What happened was the typing caused a new TextNode to be created after
the ProtectedNode, which caused the ParagraphNode to be rebuilt,
detaching the original ProtectedNode and creating a new one. The
detached ProtectedNode was still bound to mousemove on the body, and
when that event fired it would try to remove its phantoms from the
surface and fail because detached nodes can't get to the surface.

Change-Id: I9f38776f0267645b14d7b26e2a25007cf3be8ec7
2013-05-26 12:23:55 +02:00
jenkins-bot 6ddf7f3695 Merge "Rename 'langlinks' to 'languages'" 2013-05-26 09:19:45 +00:00
Translation updater bot 21769c8730 Localisation updates from http://translatewiki.net.
Change-Id: Id0be8b082f241ba0be50b477173db525d32e394b
2013-05-26 08:45:12 +00:00
Catrope 2fd9454c67 Convert from DOS line endings (CRLF) to Unix ones (LF)
Change-Id: I66c2d6662c7512d5c55daf7a8a1876f00f8a7705
2013-05-25 23:51:21 +02:00
Ed Sanders dd0086468e Rename 'langlinks' to 'languages'
For internal naming consistency (e.g. with MWLanguageMetaItem).

Change-Id: Ifb53fa10da52e1ea87389b024b7c581b8dd730e6
2013-05-25 18:07:46 +02:00
Catrope c36df77e3f Make reference editing work
The only reason it doesn't save correctly right now is because Parsoid
doesn't serialize reference edits correctly.

Change-Id: Ia0f272c07cc28ee829372eb848f23aec99eb92f0
2013-05-25 18:06:57 +02:00
jenkins-bot 3eccf9f682 Merge "Fix getAnnotationIndexesFromOffset() to always return an array" 2013-05-25 15:08:43 +00:00
jenkins-bot e51c896d29 Merge "Remove trailing whitespace everywhere" 2013-05-25 15:05:35 +00:00
Catrope dc961f6773 Remove trailing whitespace everywhere
Change-Id: I14f812bd31bd33d9fbd1148a474cbe7a3375d954
2013-05-25 15:04:11 +00:00
Trevor Parscal fb768ddcaf Restore window overlays
And use them for the category widget for it's popup.

Change-Id: I43db14c749400efa6a770343afbdfa16dd6bff30
2013-05-25 15:44:36 +02:00
jenkins-bot cddab2bafc Merge "Fix undefined i18n message in category popout" 2013-05-25 13:03:15 +00:00
Catrope 4f1ed682ed Fix misspelled event handler
Change-Id: I3f3091aad24d4bfdea08fbce1c331e8767866bbc
2013-05-25 14:53:33 +02:00
Catrope d13e09ea6d Fix undefined i18n message in category popout
Message was renamed earlier but this caller wasn't updated

Change-Id: I7ec37c6e0fd6fbbe766166704ea797c9ffd6684b
2013-05-25 14:49:27 +02:00
Catrope b70d6e1b45 Remove duplicated code breaking the template dialog
Change-Id: Ied5dc71106601ab354441c2d81507b616553c0d9
2013-05-25 14:23:29 +02:00
jenkins-bot a8371251d3 Merge "Fix documentation for GridLayout to add a return type" 2013-05-25 12:11:14 +00:00
Catrope 65c3540da7 Fix getAnnotationIndexesFromOffset() to always return an array
It used to, but a recent change broke it

Change-Id: I03ecfd5a515855a286136b57217779fd1c5912a5
2013-05-25 13:41:32 +02:00
jenkins-bot c6e06f3917 Merge "Merging and remapping of IVStores and InternalLists" 2013-05-25 11:37:12 +00:00
jenkins-bot e25aa4f199 Merge "Add getDocumentSlice" 2013-05-25 11:36:37 +00:00
Catrope 238d68eb74 Merging and remapping of IVStores and InternalLists
Add merge() methods to IndexValueStore and InternalList, which merge
another store/list in to the current one and return a mapping
translating old indexes to new ones.

Also add functions that, given such a mapping, traverse a linear
model data array and remap store/list indexes using simple logic for
annotations and node type-specific functions for node attributes.

Change-Id: I1e90755ced1a87c190947c037cf151c4d17cf8b7
2013-05-25 11:33:35 +00:00
Catrope 6562b32aa7 Add getDocumentSlice
A document slice is a document built from a data slice of an existing
document. It's completely separate from the original document and has
its own store and internalList. The new document's data also contains
the entirety of the original document's internal list. It's possible
to create a document slice of data located inside the internal list,
in which case the resulting document will contain that data twice (one
mutable copy at the top level, and one immutable copy in the internal
list).

ve.dm.Document.js:
* Optionally take an internalList in the constructor. This allows us to
  create a document with a clone of an existing internalList rather than
  an empty one.
* Add edgeMetadata flag to getFullData()

ve.dm.IndexValueStore.js, ve.dm.InternalList.js:
* Make these classes cloneable

Change-Id: I93e06f764ace16aee9df941b07f8c2bff1a28e2b
2013-05-25 11:33:14 +00:00
James D. Forrester c85e9ad161 Fix documentation for GridLayout to add a return type
Change-Id: I461160b01ae9fc4448904eeaf150570989d09d45
2013-05-25 12:48:17 +02:00
James D. Forrester 5819375022 Internationalisation for the metadata dialog
Change-Id: Iefb6d5c90583f0684cb9548d38b83048b43d3c81
2013-05-25 10:11:35 +00:00
jenkins-bot d6b801aa7d Merge "Store multi byte characters as one element" 2013-05-25 09:00:49 +00:00
Translation updater bot 331d74ca60 Localisation updates from http://translatewiki.net.
Change-Id: I7dc7ab1b79f2a8807ec4cbb849e01e07143f54b1
2013-05-25 08:29:47 +00:00
jenkins-bot cc59e59647 Merge "Correctly populate internalList for example documents" 2013-05-24 22:55:36 +00:00