Commit graph

10133 commits

Author SHA1 Message Date
Trevor Parscal fabaff5fc1 Fixed order of operations and added missing attach operation to splicing nodes in a model branch 2011-11-14 19:47:44 +00:00
Inez Korczynski 5acd21638a Support for moving cursor with control or alt pressed down 2011-11-11 03:06:47 +00:00
Inez Korczynski c03e5fbc49 Minor fix 2011-11-11 00:28:25 +00:00
Inez Korczynski 807d9530ac Added support for word selection when shift + ( ctrl || alt ) pressed 2011-11-11 00:26:30 +00:00
Inez Korczynski 8b3880d524 Improvements to selecting with mouse (double, triple clicks) 2011-11-10 23:30:29 +00:00
Inez Korczynski 662907a5df Make getWordBoundaries returns null if given offset refers to element data. Also if given offset is beginning of the word then search for not beginning of the word offsets around (and other way round). 2011-11-10 21:43:28 +00:00
Trevor Parscal 713a80596d Added es.DocumentLeafNode, which like es.DocumentBranchNode is a mixin-like class (we may want to switch to using a more natural composition mechanism than es.extendClass in the future) - now es.DocumentNode also has an abstract method called hasChildren which returns a boolean and can indicate if a node is a leaf or a branch. 2011-11-10 19:26:02 +00:00
Roan Kattouw a4f71ace69 Rewrite the remove() function in es.DocumentModel.operations such that the tests added in r102564 pass now 2011-11-10 15:50:59 +00:00
Roan Kattouw f3eab4dec2 Fix JS error when getElementType() is called on a document node 2011-11-10 15:13:57 +00:00
Roan Kattouw 94b30ed0cc Fix doc comment 2011-11-10 14:00:46 +00:00
Roan Kattouw 14b56c1202 Fix selectNodes(), can't recurse into leaf nodes because they aren't DocumentBranchNodes and don't have the selectNodes function. The pattern of certain functions just not existing for leaf nodes is starting to annoy me, I'll discuss this with Trevor. 2011-11-10 13:51:01 +00:00
Roan Kattouw aa7a6e2605 Add globalRange property to the output of selectNodes(), which translates the range property to be relative to the root rather than to the node. Update tests for this, and fix the test case numbering for selectNodes 2011-11-10 13:15:55 +00:00
Alexandre Emsenhuber fa172d1592 svn:eol-style native 2011-11-10 11:51:42 +00:00
Trevor Parscal a8b80bc1fd Added very basic support for highlighting formatting tools when the cursor is over content which is formatted that way 2011-11-10 01:28:01 +00:00
Inez Korczynski 8daf92ee48 Support for word selection with keyboard 2011-11-10 01:23:21 +00:00
Inez Korczynski 4b34eaad0e Support for selecting words and nodes with mouse 2011-11-10 01:13:56 +00:00
Trevor Parscal 92443d5f9d Improved optimization, was previously limited to merging sets of 2 2011-11-09 23:39:11 +00:00
Trevor Parscal 6c745687fc Fixed prepareRemove to work again after getNodeFromOffset was changed. 2011-11-09 23:38:36 +00:00
Inez Korczynski 915104d6f2 Another way of supporting double and triple clicks in VisualEditor 2011-11-09 23:36:56 +00:00
Inez Korczynski 7fcdcb41df Added support for double click (to select word) and triple click (to select entire node) in VisualEditor 2011-11-09 22:01:42 +00:00
Roan Kattouw 69d2fe7dfe Fix selectNodes() behavior for structural offsets (i.e. offsets between two openings/closings). There are no test cases for this yet but I'll write some after Trevor finishes his massive test data change 2011-11-09 21:15:01 +00:00
Gabriel Wicke ef3c84bd2e Extract text from inline elements for better testing. Slightly improved
handling of comment-only lines. Change pre to leaf content model.
2011-11-08 16:08:05 +00:00
Inez Korczynski 18b97268fc Fix standard problem when writing backward loops 2011-11-08 01:00:31 +00:00
Inez Korczynski a0acc98bcb Fix for offset being passed within update event. It has to be local - as ContentView operates on local offsets for line ranges. 2011-11-08 00:59:55 +00:00
Inez Korczynski d3b7188e7e Delete all our own undo/redo support. It was just experiment / proof of concept - that confirmed transactions works well and we will get back to it later. 2011-11-08 00:15:54 +00:00
Inez Korczynski 2fb840236c Basic support for "pre" elements (space at the beginning of the new paragraph in wikitext) 2011-11-07 23:46:30 +00:00
Gabriel Wicke 18ead89b37 Improved paragraph, br, comment parsing and switched headings to
generic inlineline with syntactic flags.
2011-11-07 23:09:30 +00:00
Inez Korczynski 4c8746d661 Add CSS class 'es-viewBranchNode-firstChild' to all first childs of ViewBranchNode 2011-11-07 22:38:01 +00:00
Inez Korczynski e0111da8d5 Special CSS styling for paragraphs in lists 2011-11-07 22:33:40 +00:00
Inez Korczynski bcaa5c2945 Add CSS class 'es-ViewBranchNode-firstChild' to all first childs of ViewBranchNode 2011-11-07 22:29:28 +00:00
Inez Korczynski 6f5719e736 This is supposed to be a event name, not a variable 2011-11-07 21:34:29 +00:00
Inez Korczynski d01cdd859d ListItem now is a branch instead of being leaf. So it contains children - usually it would be just Paragraph, but in some cases Table as well (as Wikitext allows to have HTML table in list item) 2011-11-07 21:30:13 +00:00
Trevor Parscal 02694c630d Removed unused function 2011-11-07 21:16:32 +00:00
Gabriel Wicke 944d010eb2 Indentation cleanup in PEG parser and Html serializer 2011-11-07 21:05:37 +00:00
Gabriel Wicke aa31a5ebce Same rename for the Wikitext serializer, before I forget. 2011-11-07 20:38:47 +00:00
Gabriel Wicke c3a0c56e56 rename definition{term,description} to just {term,description} 2011-11-07 20:36:34 +00:00
Gabriel Wicke 4fcc6c9a09 Fix jshint warnings. 2011-11-07 20:31:30 +00:00
Trevor Parscal c4719565ea Defining a function inside another can be done using normal function syntax, var is not needed. 2011-11-07 19:57:41 +00:00
Inez Korczynski 88e964263b This is supposed to be a event name, not a variable 2011-11-07 19:44:56 +00:00
Trevor Parscal 187eca34eb Added render from offset support 2011-11-07 19:42:36 +00:00
Trevor Parscal ab44388220 Changed from emphasis to emphasize 2011-11-07 19:28:47 +00:00
Gabriel Wicke 71891131c3 Grammar improvements
* replaced regexp stack with a set of break rules for inline content within
  specialized parse contexts, switched more rules to generic
  inlineline/inline/block rules.
* don't consume end-of-line for proper start-of-line matching
* added some pre support
* still no conversion of inline elements to annotations
2011-11-07 14:39:12 +00:00
Inez Korczynski 7b303e178b Very simple support for undo/redo (with keyboard only: ctrl+z/ctrl+y) 2011-11-05 02:06:51 +00:00
Inez Korczynski e1b0126b03 Minor 2011-11-05 01:06:59 +00:00
Inez Korczynski cc6fc80bee Support for deleting text with backspace and delete 2011-11-05 00:59:20 +00:00
Inez Korczynski b4b043e06e Very basic support for content (typing on keyboard) insertion 2011-11-05 00:49:48 +00:00
Inez Korczynski 97649e62ee Minor fix 2011-11-05 00:20:22 +00:00
Inez Korczynski 2d7f927b4e Small fix for cursor up (in first line) and down (in last line) 2011-11-04 23:49:50 +00:00
Inez Korczynski 39ecdbcd00 Minor fix 2011-11-04 23:32:46 +00:00
Inez Korczynski 70e6b72ba3 Cleanup for moveCursor and showCursor code 2011-11-04 23:28:40 +00:00
Trevor Parscal 40c71ede72 Added support for definition and term list items 2011-11-04 23:09:10 +00:00
Trevor Parscal b2fcdf952a Fixed some jshint issues 2011-11-04 22:04:51 +00:00
Inez Korczynski 22892f2ab0 Fix cursor and selection 2011-11-04 21:40:17 +00:00
Trevor Parscal 23e0651e0b Added documentation for es.Transaction 2011-11-04 21:06:06 +00:00
Trevor Parscal add7c23191 Added es.Transaction.optimize and added in a test that neilk sent a patch for 2011-11-04 20:38:47 +00:00
Roan Kattouw 124a36b942 Add a metric ton of (mostly generated) selectNodes tests, and change selectNodes a little bit to make them pass 2011-11-04 20:27:23 +00:00
Trevor Parscal 1f1db3fc43 Line-break and variable redeclaration cleanup 2011-11-04 20:26:08 +00:00
Roan Kattouw 0801ec93a5 Change something that appeared to be a bug in the removal code 2011-11-04 20:17:42 +00:00
Inez Korczynski f9b0cfae9a Basic support for cursor up and down (with and without selectiong/shift key down) 2011-11-04 18:50:39 +00:00
Trevor Parscal b13b805f2b Comment cleanup 2011-11-04 18:37:07 +00:00
Trevor Parscal 44ea20c406 Using getElementType instead of relying on .type property of es.DocumentModeNode objects 2011-11-04 18:33:06 +00:00
Inez Korczynski 7d87500f4a Fix cursor and selection 2011-11-04 17:46:30 +00:00
Trevor Parscal fcb3644f35 Reorganized a few methods to reduce duplication, improved documentation 2011-11-04 17:07:44 +00:00
Trevor Parscal fbacdfc98a Reorganized a few methods to reduce duplication, improved documentation 2011-11-04 17:07:34 +00:00
Trevor Parscal ff0ac9754c Removed unused file 2011-11-04 16:41:34 +00:00
Gabriel Wicke 06ca9f12fe Rename definitiondata to definitiondescription, minor fixes 2011-11-04 12:25:01 +00:00
Gabriel Wicke 7e5c196732 Some more progress for tables and definition lists 2011-11-04 12:06:49 +00:00
Gabriel Wicke 83a80bad49 Fixes for definition lists 2011-11-04 11:08:11 +00:00
Gabriel Wicke 85def70a8a Add basic list serialization to HtmlSerializer
* Added 'definitionterm' and 'definitiondata' styles to support definition
  lists, and special-case handling in the serializer to wrap both in dls.
2011-11-04 10:02:59 +00:00
Gabriel Wicke 63398b5749 Update parserTests to latest serializers 2011-11-04 07:45:05 +00:00
Inez Korczynski c30698b7ae Minor changes 2011-11-04 00:21:29 +00:00
Trevor Parscal fd7b7e7223 Cleaned up some comments 2011-11-03 23:42:34 +00:00
Trevor Parscal 2d97794312 Added more key codes for the Apple command key to catch firefox and right command on webkit 2011-11-03 23:32:58 +00:00
Trevor Parscal b636d9a52b Refactored some of the tree sync code to be reusable 2011-11-03 23:19:36 +00:00
Inez Korczynski 0c34c71fe6 Minot optimization 2011-11-03 22:51:30 +00:00
Inez Korczynski 2b6c8dacac Fix minor bug 2011-11-03 22:49:14 +00:00
Inez Korczynski d48b30227e Fix minor bug 2011-11-03 22:46:44 +00:00
Inez Korczynski 05ba0a0782 Improved version of keyboard & mouse selection 2011-11-03 22:42:20 +00:00
Trevor Parscal f327ebf39f Line breaks 2011-11-03 22:03:28 +00:00
Trevor Parscal 8058b454a5 Fixed some documentation 2011-11-03 21:52:06 +00:00
Trevor Parscal 764f2b0e65 Reorganized model nodes into branches and leafs 2011-11-03 21:48:40 +00:00
Inez Korczynski 5f533f0a1d Implementation of selecting elements with mouse and fix for drawSelection method in DocumentViewBranchNode (it was off by one) 2011-11-03 20:27:57 +00:00
Trevor Parscal 91f0cd2d6b Renamed expandContentData to getExpandedContentData 2011-11-03 20:01:39 +00:00
Trevor Parscal 7e825a15fb Fixed lots of bugs in the serializers, Wikitext and HTML look good 2011-11-03 19:39:12 +00:00
Trevor Parscal cf5be16248 Cleaned up some unused files, added type to es.DocumentModelNode objects for serialization purposes, and added getPlainObject to es.DocumentModelNode which also uses the newly migrated es.DocumentModel.expandContentData 2011-11-03 19:01:55 +00:00
Trevor Parscal f525e88058 Fixed some typos from copy-paste errors 2011-11-03 18:25:04 +00:00
Trevor Parscal d3e5a6c557 Refactored and updated serializers to use latest version of WikiDom. Also updated tests to use range objects for annotations. Switched to using namespacing for annotations, now there's textStyle/*, link/* and object/* spaces where all types are in. 2011-11-03 18:15:24 +00:00
Trevor Parscal 6f53a48e87 Using content.range.* instead of content.* for start and end properties of content objects when converting from plain objects into flat data 2011-11-03 16:33:10 +00:00
Gabriel Wicke a8838dab18 Start by handling paragraphs, at least a bit. 2011-11-03 15:16:05 +00:00
Gabriel Wicke 0d30a5528e First combination of WikiDom serializers with existing parser in
tests/parser/parserTests.js.

* Removed var from es in es.js to allow node.js to access it as global. Only
  alternative solution appears to be a node-specific 'exports' construct:
  http://nodejs.org/docs/v0.3.1/api/modules.html
* Added es.Document.js and es.Document.Serializer.js in es/bases. Not sure if
  this is the desired location.
* Changed es.extend to es.extendClass in the serializers
* Modified the first parser test to include the WikiDom modules and call the
  new HTML serializer
2011-11-03 13:55:48 +00:00
Trevor Parscal 19408d8ab2 Added joinWith parameter to es.JsonSerializer 2011-11-02 23:34:05 +00:00
Trevor Parscal d307212dda Moved repeatString to es and removed es.Document.Serializer, since the rest of it's functionality are already in es.Html 2011-11-02 23:26:43 +00:00
Trevor Parscal 836d07da9b Moving es.Html back to es/ directory 2011-11-02 23:11:57 +00:00
Trevor Parscal bec50ddd94 Moving es.Html back to es/ directory 2011-11-02 23:11:36 +00:00
Trevor Parscal 063868d376 Removed using custom elements for heading views, just using divs now - if we have to switch the level we don't want to have to trash the whole thing and rebuild it 2011-11-02 23:01:35 +00:00
Inez Korczynski 6763fe1542 Minor comments cleanup 2011-11-02 22:55:02 +00:00
Inez Korczynski 4a1167117b Make drawSelection in ContentView works without parameter range being passed and the same for DocumentNode. Define getElementLength and getContentLength as methods in DocumentViewNode. 2011-11-02 22:53:14 +00:00
Trevor Parscal e9488b637a Made regex less specific, so it catches levels that are not officially supported, but also shouldn't get stuck in the dom if for some reason they get added at some point. 2011-11-02 22:47:16 +00:00
Trevor Parscal d35fe7a407 Made regex less specific, so it catches levels that are not officially supported, but also shouldn't get stuck in the dom if for some reason they get added at some point. 2011-11-02 22:46:35 +00:00
Trevor Parscal c70a23fc8d Fixed incorrect class name 2011-11-02 22:42:30 +00:00
Trevor Parscal 2beef6040d Fixed shadowed variable 2011-11-02 22:28:05 +00:00
Trevor Parscal 461e9fced7 Moving serializer code into it's own folder 2011-11-02 22:24:36 +00:00
Trevor Parscal 393a65f186 Moving more serializer code over to VisualEditor 2011-11-02 22:23:00 +00:00
Trevor Parscal 996088f03e Moving more serializer code over to VisualEditor 2011-11-02 22:22:54 +00:00
Trevor Parscal 0afde82d5f Moving more serializer code over to VisualEditor 2011-11-02 22:22:47 +00:00
Trevor Parscal 46e566f70d Moving more serializer code over to VisualEditor 2011-11-02 22:22:40 +00:00
Trevor Parscal 5d5a023ee7 Copying serializer code to VisualEditor extension 2011-11-02 22:00:38 +00:00
Trevor Parscal fec2b6d6a9 Copying serializer code to VisualEditor extension 2011-11-02 22:00:31 +00:00
Trevor Parscal 33bbcd9c98 Copying serializer code to VisualEditor extension 2011-11-02 22:00:25 +00:00
Inez Korczynski 10703f697b Get rid of 'debugger' 2011-11-02 21:47:20 +00:00
Trevor Parscal 5bae153214 Moving parser stuff back into the modules folder (oops) 2011-11-02 21:45:57 +00:00
Trevor Parscal 2b499d5990 Reorganized modules by javascript namespace 2011-11-02 21:31:45 +00:00
Trevor Parscal 0061fa9a62 Copying jquery and qunit to VisualEditor extension 2011-11-02 21:29:53 +00:00
Trevor Parscal 6a23492d4f Copying jquery and qunit to VisualEditor extension 2011-11-02 21:29:47 +00:00
Trevor Parscal a795ad5e76 Copying jquery and qunit to VisualEditor extension 2011-11-02 21:29:39 +00:00
Brion Vibber 213ee7d4a8 followup r101685: the peg definition 2011-11-02 21:09:19 +00:00
Brion Vibber 56a75ccca7 Copy several of the experimental JS parser bits from ParserPlayground to VisualEditor. They'll need retooling to hook up with the wikidom stuff. 2011-11-02 21:07:51 +00:00
Brion Vibber d3abcde2b0 Copy wikidom lib/hype into VisualEditor/modules 2011-11-02 21:00:55 +00:00
jenkins-bot 2b352c577c Merge "(bug 45029) Transactions for metadata modification." 2013-02-15 01:28:44 +00:00
Ed Sanders 67e9d5d1dd (bug 45029) Transactions for metadata modification.
Have created builders for insertion, removal, and single element replacement.

In adding Document.getMetadata which is nearly identical to Document.getData,
the two functions have been refactored to use a common static method
getDataSlice, with this.data/this.metadata as an argument.

Document.spliceMetadata has been added. It is essentially spliceData with
the data/metadata synchronisation issue.

Metadata cursor position is now tracked in the TransactionProcessor. Cursor
advancement has been moved to a function so the metadata cursor can be reset
every time the data cursor is moved.

There were unhit bugs in the TransactionProcessor run test section, where
the data being loaded into the test documents wasn't always being deep-copied,
and the assert was looking at getData instead of getFulldata (which wouldn't
be able to test metadata changes).

Change-Id: Ieb20ab3e7827bc7ff04148f147da6728eb1eb666
2013-02-14 17:27:27 -08:00
jenkins-bot 92e5f94e41 Merge "Add user interface widgets" 2013-02-14 19:04:59 +00:00
jenkins-bot a1bd1db241 Merge "Use .static.isMeta to communicate meta-ness" 2013-02-14 18:47:48 +00:00
Trevor Parscal d0ff691f9e Add user interface widgets
* New! Button and InputLabel widgets
* Using new buttons in the demo
* Moved styles around to generalize input styles

Change-Id: Ic42e133f8fe0fffcb61374c09dd5668db82a4799
TODO: Use these buttons other places! (like ve.init)
2013-02-13 18:04:04 -08:00
jenkins-bot 385606d6fe Merge "Added new icons" 2013-02-14 00:09:53 +00:00
Trevor Parscal d42a52bb59 Added new icons
Icons needed for upcoming generated content editor.

* Parameter (big and small)
* Parameter Set
* Source (big and small)
* Template (big and small)

Change-Id: I9c5df7970e3f0991ac6a66590212f40d83af9c0a
2013-02-13 16:06:29 -08:00
Inez Korczyński f0bc9935d2 (bug 41199) Fix the problem with placing cursor by clicking next to article content.
The specific use case is when user clicks on the left side of the inline alien node which
is at the beginning of the line or on the right side of the inline alien node at the end of
the line. This fix does not cover Monobook.

Change-Id: Ib24b03e30e753850698ed6b10be49b4f2642c92b
2013-02-13 15:36:45 -08:00
jenkins-bot 6b51b0f635 Merge "Annotate newly inserted target text as a link." 2013-02-11 20:00:26 +00:00
jenkins-bot 8d274c19e6 Merge "Implement inline documentation examples." 2013-02-09 01:50:44 +00:00
Timo Tijhof 62aeb254d9 Implement inline documentation examples.
Refactored the (previously unused) eg-iframe file to be a
template with 2 placeholders for script and styles.

The previous version was just the basic version to execute
javascript code, but that's not good enough since we need a
whole bunch of classes to be loaded.

A bash file processes the template into proper html, with the
help of the makeStaticLoader maintenance script we already had.

Updated demo.css, cleaned up redundant properties restyled
slightly to be more like the Vector skin and less "raw".

Fixed default $IP path in makeStaticLoader.php to work with simple mediawiki core installs having the extension in the
regular extensions directory, and prefixed __DIR__ so it
doesn't rely on the directory you call it from.

Change-Id: Ic789121dfeca08d9db69564d2ad2e52b3fa45de9
2013-02-08 17:47:10 -08:00
jenkins-bot 5ee7b12119 Merge "ve.dm.DocumentSlice does not extend ve.Node" 2013-02-08 23:22:22 +00:00
Trevor Parscal 9eed973ca5 ve.dm.DocumentSlice does not extend ve.Node
Change-Id: I11d28d6eb1c7db1d6b5796ec36c8e9a6f46b7c9e
2013-02-08 14:11:11 -08:00
Catrope 28512c9488 Use .static.isMeta to communicate meta-ness
This gets rid of the meta-specific hack in ve.dm.Document

Later on, I want to use this to get rid of meta-specific hacks in the
converter too, by pushing some of that logic into the ModelFactory.

Change-Id: I1dbee1654fa32d9c7cd521ec325b2553cde219d1
2013-02-07 17:17:34 -08:00
Rob Moen 4d3ccb7b99 Annotate newly inserted target text as a link.
Fixes (Bug 44086)

Changes:
ve.ui.LinkInspector.js
- Annotate fragment for affected range.
- Fragment returned by insertContent was a zero length range, therefore
no content was being annotated.  It is questionable whether insertContent
should return the affected range or not.
- Also changes behavior of editing existing link annotations so that the cursor is after the annotation rather than covering it when the inspector is closed

Change-Id: Ic53b9844f84781cad05ac1f63964c9aaf7de68c3
2013-02-07 16:06:08 -08:00