Commit graph

215 commits

Author SHA1 Message Date
Inez Korczynski 62e399ef2e Added splitRules for DocumentView 2011-11-16 23:19:29 +00:00
Inez Korczynski a5a09d42d8 Minor fix. 2011-11-16 23:18:22 +00:00
Inez Korczynski 243189a009 Basic support for enter key in heading and paragraphs 2011-11-16 23:16:02 +00:00
Inez Korczynski 3bf8a244f1 Added basic support for deleting selection with delete key. 2011-11-16 22:01:41 +00:00
Inez Korczynski fe3ef45f56 Improved support for combination of ctrl/alt/metakey + up/down/left/right - especially for mac vs. windows. 2011-11-16 21:59:22 +00:00
Inez Korczynski 13775c5116 Added basic support for deleting selection with backspace. 2011-11-16 21:25:48 +00:00
Trevor Parscal 5f4a2b2141 * Added support for inserting content at a structural offset
* Broke rebuildNodes into 2 parts so insert can use just buildNodes when inserting whole nodes
* Added getIndexFromOffset to es.DocumentModelBranchNode objects, which returns an index of a child node from an offset
2011-11-16 20:39:48 +00:00
Trevor Parscal 5b12384431 Fixed issue in processing removal transactions - globalRange is now defined always, so we need to check for range instead 2011-11-16 20:01:12 +00:00
Inez Korczynski a43288be29 Support for moving cursor up and down by "unit" distance when control key pressed down. 2011-11-16 19:51:02 +00:00
Roan Kattouw 5de3778803 Drop droppable (oh, how meta!) attribute introduced in r103211. Will convert prepareRemoval() later 2011-11-16 19:28:13 +00:00
Roan Kattouw 17df2a174a Fix breakage in prepareRemoval() from r103271 and demonstrated by the tests in r103356. Also add, in a comment, a somewhat functional rewrite of prepareRemoval() to be used after we drop droppability 2011-11-16 19:17:58 +00:00
Roan Kattouw 27ddd1263f In selectNodes(), also set globalRange for fully-covered nodes. There is no sane value for range in this case, but there sure is a sane value for globalRange so we might as well return it. I also use this in my prepareRemoval() fixes in my next commit 2011-11-16 19:02:23 +00:00
Trevor Parscal 3ac24949ce Fixed incorrect registration object being used 2011-11-16 18:54:05 +00:00
Trevor Parscal e559922da0 Fixed incorrect symbolic name being used for nodeRules registration on tableCell and tableRow model nodes. Roan noticed this in r103211 2011-11-16 18:17:24 +00:00
Roan Kattouw 9060cd6161 Fix stupid mistake that broke traverseLeafNodes() in IE 2011-11-16 12:51:31 +00:00
Inez Korczynski ace69887ee Fix typo: "annotation" => "annotations" 2011-11-16 06:13:17 +00:00
Trevor Parscal 3ec0976f5d Made leaf nodes listen for updates from their content views and emit updates themselves in response. 2011-11-16 00:24:46 +00:00
Trevor Parscal 8a2e8b4aab Rewrote prepareRemoval to support dropping nodes that are considered droppable (not tableCells) and are covered completely by the range - otherwise nodes are stripped of content 2011-11-16 00:03:17 +00:00
Trevor Parscal a7cdee541c Fixed typo - insert/remove operations have a data property, not a content property. 2011-11-16 00:02:27 +00:00
Trevor Parscal cc8e1d02fc Changed nodes to selectedNodes for clarity 2011-11-16 00:01:35 +00:00
Trevor Parscal 455afe25be Added a "droppable" bit to each model so that prepareRemoval can avoid dropping table cells (for instance) when removing nodes that are completely covered (which it can't do yet) 2011-11-15 19:01:47 +00:00
Trevor Parscal 4f1f6699ee Tweaks to make jshint happy 2011-11-15 18:42:34 +00:00
Trevor Parscal 79ef19da42 Fixed documentation and use of es.arrayIndexOf to match the actual API of $.inArray (value, array, fromIndex). Renamed function to inArray to reduce confusion about how the function works. 2011-11-15 18:17:26 +00:00
Trevor Parscal a4e3b3922d Using jQuery.inArray implementation of indexOf instead of our own
Fixed a wrong class name bug
2011-11-15 17:54:52 +00:00
Roan Kattouw 5d619ac6cf Fixed the last array indexOf call that I could find 2011-11-15 16:27:14 +00:00
Roan Kattouw eff198ff1d Move .indexOf() from es.DocumentModelBranchNode to es.DocumentBranchNode and use it in .traverseLeafNodes() 2011-11-15 16:24:33 +00:00
Roan Kattouw c484afe87a Fix IE-specific test breakages. Two tests were broken because Array.prototype.indexOf() was used, another one because Array.prototype.splice() is broken in IE:
>>[1,2,3].slice(0).length
3
>>[1,2,3].slice(0, undefined).length
0
2011-11-15 16:21:45 +00:00
Roan Kattouw ec8e92029a Followup r103161: make reverse work 2011-11-15 13:23:04 +00:00
Roan Kattouw f7ef40fb7a Rewrite traverseLeafNodes() with an iterative traversal, and add support for from. Support for reverse is not implemented yet. 2011-11-15 12:55:31 +00:00
Roan Kattouw 7d8741e6e3 Add a wrapper for Array.prototype.indexOf(), needed for my traverseLeafNodes() rewrite 2011-11-15 12:54:18 +00:00
Roan Kattouw fee2d48b2b Add very basic implementation of traverseNodes(), with tests. This doesn't respect the from parameter (so tests 3-6 fail); I will rewrite it from recursive to iterative so it can support that. 2011-11-15 11:12:06 +00:00
Roan Kattouw 32c04b3e41 Add es.compareArrays(), needed for test cases I'm about to add 2011-11-15 11:10:21 +00:00
Trevor Parscal a7c1524fe0 Added empty method to es.DocumentBranchNode called traverseLeafNodes 2011-11-15 01:31:46 +00:00
Inez Korczynski 098f2ae616 Refactor moveCursor code 2011-11-15 01:30:39 +00:00
Trevor Parscal ff07930171 Added test for prepareRemoval which fails atm, because strip doesn't drop nodes that are covered completely. Also cleaned up some comments in prepareRemoval 2011-11-15 01:15:21 +00:00
Trevor Parscal 0e1d3c08fd Added split rules to view classes 2011-11-14 23:59:36 +00:00
Trevor Parscal 8a884ee3b8 Fixed emitting updates when deleting content from the inside of a node 2011-11-14 23:47:07 +00:00
Trevor Parscal 2494c40297 Moved transaction processing code to new class, es.TransactionProcessor 2011-11-14 23:04:36 +00:00
Trevor Parscal 96a8598ec5 Added scope function to transaction processing so inserting </p></li><li><p> works
Fixed off-by-one in splicing dom nodes into view branches
2011-11-14 21:54:53 +00:00
Trevor Parscal dcbc801f0f Don't render deleted nodes 2011-11-14 20:04:46 +00:00
Trevor Parscal e93d050d6f Only re-render nodes that were inserted 2011-11-14 20:00:40 +00:00
Trevor Parscal 5b1298a6ca Removed alert() - dude, use console.log, and don't leave it in the SVN plz! :P 2011-11-14 19:52:05 +00:00
Inez Korczynski 1359c19cbb Add comments for mouse interaction states 2011-11-14 19:51:04 +00:00
Trevor Parscal 773d97cb1d Using splice.apply because it's faster and actually works (the loop was incorrect anyways) 2011-11-14 19:51:00 +00:00
Trevor Parscal 71c3f7d1a7 Fixed documentation for inheritance 2011-11-14 19:50:28 +00:00
Trevor Parscal 872d2bdb9d Fixed onAfterSplice in es.DocumentViewBranchNode to update the DOM correctly
Fixed issue where events were being listened to from this instead of this.model
Added rendering calls after structural changes
2011-11-14 19:50:04 +00:00
Trevor Parscal 521a0644ff Added extra condition to prevent undefined object errors 2011-11-14 19:48:25 +00:00
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