fnpeditor.git
10 years agoeditor: wip partial
Aleksander Łukasz [Wed, 30 Jul 2014 13:04:26 +0000 (15:04 +0200)]
editor: wip partial

10 years agoeditor: canvas - refactoring Canvas Selection
Aleksander Łukasz [Wed, 30 Jul 2014 11:57:58 +0000 (13:57 +0200)]
editor: canvas - refactoring Canvas Selection

10 years agoeditor: canvas fix - restore deleting selected text
Aleksander Łukasz [Mon, 28 Jul 2014 13:26:33 +0000 (15:26 +0200)]
editor: canvas fix - restore deleting selected text

- Canvas.rootWrapper is no longer a contenteditable so key events
need to be listened to on the document body in case there is no
caret on a canvas (e.g. when selection is made).
- During selection, even inside a single text element, contenteditable
is not used, meaning that during even for such a selection
we need to handle delete/backspace ourselves.

10 years agoeditor: fix - bring back ability to select elements without text
Aleksander Łukasz [Fri, 25 Jul 2014 09:16:10 +0000 (11:16 +0200)]
editor: fix - bring back ability to select elements without text

10 years agoeditor: Improved use of contenteditable for a caret support
Aleksander Łukasz [Thu, 24 Jul 2014 14:00:48 +0000 (16:00 +0200)]
editor: Improved use of contenteditable for a caret support

This change stops declaring the whole canvas as being contenteditable=true,
marks as such only current canvas text element instead.

This approach has many advantages:

1. We no longer need to handle unspecified caret behavior, where caret
could be put anywhere in the canvas DOM tree (outside of canvas text
elements in particular) which needed tricky corrections on the fly.

2. Canvas widgets and custom canvas elements no longer need to
use contenteditable=false nesting inside contenteditable=true,
effects of which are not fully specified and which was leading
to many unexpected behaviors, especially in Firefox.

3. It makes it possible the make a selection across any fragment of
a document (contenteditable=true elements nested in contentedtiable=false
are blocking selection crossing its borders from the inside).

The downside is the need to handle keyboard navigation on the borders
of canvas text elements manually.

10 years agofnpjs: remove unused code
Aleksander Łukasz [Mon, 11 Aug 2014 08:02:00 +0000 (10:02 +0200)]
fnpjs: remove unused code

10 years agoeditor: remove unused code
Aleksander Łukasz [Mon, 11 Aug 2014 08:01:32 +0000 (10:01 +0200)]
editor: remove unused code

10 years agoeditor: refactoring in the data module
Aleksander Łukasz [Thu, 7 Aug 2014 09:54:40 +0000 (11:54 +0200)]
editor: refactoring in the data module

10 years agoeditor: minor refactoring
Aleksander Łukasz [Thu, 7 Aug 2014 09:28:34 +0000 (11:28 +0200)]
editor: minor refactoring

10 years agoeditor: Fix jumping to a different version of a document
Aleksander Łukasz [Thu, 7 Aug 2014 09:25:30 +0000 (11:25 +0200)]
editor: Fix jumping to a different version of a document

10 years agoeditor: canvas fix
Aleksander Łukasz [Mon, 21 Jul 2014 13:57:00 +0000 (15:57 +0200)]
editor: canvas fix

10 years agoeditor: cleanup
Aleksander Łukasz [Wed, 25 Jun 2014 13:30:58 +0000 (15:30 +0200)]
editor: cleanup

10 years agoeditor: start using data api on text nodes for keeping references to canvas elements
Aleksander Łukasz [Tue, 24 Jun 2014 09:24:39 +0000 (11:24 +0200)]
editor: start using data api on text nodes for keeping references to canvas elements

GenericElement doesn't need to dispatch nodeTextChange events
anymore as TextNodes now have their own reference to canvas
elements and wlxmlListener can dispatch to them directly.

We still need to handle changes to the comments though - this should
be refactored out to some kind of non-rendering canvas element.

10 years agosmartxml: support for setting data on text nodes
Aleksander Łukasz [Mon, 23 Jun 2014 14:02:43 +0000 (16:02 +0200)]
smartxml: support for setting data on text nodes

This is possible thanks to caching text node instances.

Cloning text node data is not supported yet.

10 years agosmartxml/wlxml: Merge in document node instances caching
Aleksander Łukasz [Fri, 18 Jul 2014 09:55:13 +0000 (11:55 +0200)]
smartxml/wlxml: Merge in document node instances caching

10 years agoeditor: removing unused code
Aleksander Łukasz [Wed, 2 Jul 2014 10:31:27 +0000 (12:31 +0200)]
editor: removing unused code

10 years agosmartxml: caching text nodes via expando
Aleksander Łukasz [Mon, 23 Jun 2014 13:38:51 +0000 (15:38 +0200)]
smartxml: caching text nodes via expando

10 years agoeditor: cleanup - removing unnecessary wlxml class handling code in canvas generic...
Aleksander Łukasz [Wed, 2 Jul 2014 10:00:33 +0000 (12:00 +0200)]
editor: cleanup - removing unnecessary wlxml class handling code in canvas generic element

- generic element doesn't actually handle onNodeAttrChange for a 'class'
attribute -  that kind of change leads to creating new canvas element
instance since e0aad96df245c7148966887cbcc77417a4b7675b
- for the same reason support for changing class information on a generic
element during its life time is not necessary

10 years agosmartxml: fix tests - extensions needs to be registered before querying nodes
Aleksander Łukasz [Mon, 23 Jun 2014 13:12:35 +0000 (15:12 +0200)]
smartxml: fix tests - extensions needs to be registered before querying nodes

10 years agowlxml: fix tests - extensions needs to be registered before querying nodes
Aleksander Łukasz [Tue, 17 Jun 2014 07:57:34 +0000 (09:57 +0200)]
wlxml: fix tests - extensions needs to be registered before querying nodes

10 years agosmartxml: Cache DocumentNode instances in the underlying DOM structure
Aleksander Łukasz [Tue, 17 Jun 2014 07:55:37 +0000 (09:55 +0200)]
smartxml: Cache DocumentNode instances in the underlying DOM structure

This allows for data persistence in the DocumentNode.object api. And,
at last, puts an end to the creation of unnecessary instances.

The side effect is that extensions needs to be registered before
acquiring references to nodes as they won't be updated with extension
behavior after they are created. This probably should be better
reflected in the api, maybe by setting extension via document constructor.

10 years agoMerge in change to the Actions api
Aleksander Łukasz [Fri, 18 Jul 2014 09:44:56 +0000 (11:44 +0200)]
Merge in change to the Actions api

10 years agosmartxml: fix in Document.getNodeByPath
Aleksander Łukasz [Thu, 17 Jul 2014 12:57:33 +0000 (14:57 +0200)]
smartxml: fix in Document.getNodeByPath

10 years agoeditor: correct for changes in actions api
Aleksander Łukasz [Wed, 2 Jul 2014 07:52:08 +0000 (09:52 +0200)]
editor: correct for changes in actions api

10 years agofnpjs: Action now triggers actionExecuted event instead of using callback
Aleksander Łukasz [Wed, 2 Jul 2014 07:50:16 +0000 (09:50 +0200)]
fnpjs: Action now triggers actionExecuted event instead of using callback

10 years agowlxml: cleanup
Aleksander Łukasz [Tue, 15 Jul 2014 14:05:43 +0000 (16:05 +0200)]
wlxml: cleanup

10 years agoeditor: removing unused configuration
Aleksander Łukasz [Tue, 15 Jul 2014 13:25:58 +0000 (15:25 +0200)]
editor: removing unused configuration

10 years agosmartxml: really minor refactoring
Aleksander Łukasz [Tue, 15 Jul 2014 13:02:33 +0000 (15:02 +0200)]
smartxml: really minor refactoring

10 years agowlxml: removing unused code
Aleksander Łukasz [Tue, 15 Jul 2014 12:59:41 +0000 (14:59 +0200)]
wlxml: removing unused code

10 years agoeditor: removing unused code
Aleksander Łukasz [Tue, 15 Jul 2014 10:52:20 +0000 (12:52 +0200)]
editor: removing unused code

10 years agoUpdate jshint
Aleksander Łukasz [Tue, 15 Jul 2014 09:40:14 +0000 (11:40 +0200)]
Update jshint

10 years agogit pre-commit hook that lints js code
Aleksander Łukasz [Tue, 15 Jul 2014 10:18:53 +0000 (12:18 +0200)]
git pre-commit hook that lints js code

Installation:

$ npm install
$ grunt githooks

10 years agoeditor: fix requirejs paths so that test will work again
Aleksander Łukasz [Mon, 14 Jul 2014 15:01:05 +0000 (17:01 +0200)]
editor: fix requirejs paths so that test will work again

Paths relative to the current directory that contain file extension
don't normally work with requirejs unless used together with Karma.js
- here on the other hand they are required.

Until this get resolved one way or another, requiring modules in files
that are used both in production and by tests must not use paths relative
to the current dir.

10 years agoeditor: Allow for editing raw source in the source editor if document contains invali...
Aleksander Łukasz [Mon, 14 Jul 2014 13:10:52 +0000 (15:10 +0200)]
editor: Allow for editing raw source in the source editor if document contains invalid xml

Up until now a stub empty document was loaded.

10 years agosmartxml: Better check for document being successfulfy parsed
Aleksander Łukasz [Mon, 14 Jul 2014 12:42:37 +0000 (14:42 +0200)]
smartxml: Better check for document being successfulfy parsed

10 years agoeditor: remove metadata editor which is now not needed
Aleksander Łukasz [Fri, 11 Jul 2014 12:13:12 +0000 (14:13 +0200)]
editor: remove metadata editor which is now not needed

10 years agoeditor: Bring back metadata editor as a modal dialog
Aleksander Łukasz [Fri, 11 Jul 2014 12:27:58 +0000 (14:27 +0200)]
editor: Bring back metadata editor as a modal dialog

10 years agoeditor: fix in toolbar - missing initial value for 'document' actions param
Aleksander Łukasz [Fri, 11 Jul 2014 10:54:11 +0000 (12:54 +0200)]
editor: fix in toolbar - missing initial value for 'document' actions param

10 years agocleanup: removing unused vkbeautify library
Aleksander Łukasz [Tue, 1 Jul 2014 15:07:36 +0000 (17:07 +0200)]
cleanup: removing unused vkbeautify library

10 years agoeditor: Include ace.js in the repository and the build process (v.1.1.4)
Aleksander Łukasz [Tue, 1 Jul 2014 14:58:59 +0000 (16:58 +0200)]
editor: Include ace.js in the repository and the build process (v.1.1.4)

mode-xml is loaded dynamically by ace.js so it needs to be passed
to the r.js optimizer explicitly.

This change also drops using the chrome theme as it's not really needed
- this way we don't need to commit it.

10 years agoeditor: chrome specific - stop selecting the whole word after right click
Aleksander Łukasz [Tue, 1 Jul 2014 12:40:30 +0000 (14:40 +0200)]
editor: chrome specific - stop selecting the whole word after right click

Having spellcheck active causes Chrome to select right clicked word if
it detects spell check suggestions which causes problems with selection
and canvas context menu.

10 years agosmartxml: fix - getIndex returns undefined for a node not attached to a document...
Aleksander Łukasz [Mon, 30 Jun 2014 12:52:04 +0000 (14:52 +0200)]
smartxml: fix - getIndex returns undefined for a node not attached to a document that has no parent

10 years agosmartxml: fix for Document.deleteText
Aleksander Łukasz [Mon, 30 Jun 2014 12:49:15 +0000 (14:49 +0200)]
smartxml: fix for Document.deleteText

10 years agosmartxml: additional text nodes merge strategies for ElementNode.detach
Aleksander Łukasz [Mon, 30 Jun 2014 12:47:57 +0000 (14:47 +0200)]
smartxml: additional text nodes merge strategies for ElementNode.detach

10 years agoeditor: canvas fix
Aleksander Łukasz [Thu, 26 Jun 2014 12:33:41 +0000 (14:33 +0200)]
editor: canvas fix

10 years agosmartxml: fix - adding nodes before/after root node is not allowed
Aleksander Łukasz [Thu, 26 Jun 2014 12:26:44 +0000 (14:26 +0200)]
smartxml: fix - adding nodes before/after root node is not allowed

10 years agoeditor: fix splitting text when its parent contains comments
Aleksander Łukasz [Thu, 26 Jun 2014 09:40:44 +0000 (11:40 +0200)]
editor: fix splitting text when its parent contains comments

10 years agoeditor: fix
Aleksander Łukasz [Wed, 25 Jun 2014 08:22:46 +0000 (10:22 +0200)]
editor: fix

10 years agoeditor: canvas fix - check for the case when mutation concerns already detached text...
Aleksander Łukasz [Wed, 25 Jun 2014 07:59:05 +0000 (09:59 +0200)]
editor: canvas fix - check for the case when mutation concerns already detached text node

10 years agoeditor: removing unused code (breadcrumbs)
Aleksander Łukasz [Wed, 11 Jun 2014 09:06:16 +0000 (11:06 +0200)]
editor: removing unused code (breadcrumbs)

10 years agoeditor: removing unsued code (canvas grid)
Aleksander Łukasz [Wed, 11 Jun 2014 09:03:18 +0000 (11:03 +0200)]
editor: removing unsued code (canvas grid)

10 years agosmartxml: fixing tests
Aleksander Łukasz [Mon, 23 Jun 2014 13:04:26 +0000 (15:04 +0200)]
smartxml: fixing tests

10 years agosmartxml: fix - handle invalid params.node value
Aleksander Łukasz [Mon, 23 Jun 2014 09:40:21 +0000 (11:40 +0200)]
smartxml: fix - handle invalid params.node value

10 years agoeditor: handle situation when element doesn't implement getVerticallyFirstTextElement
Aleksander Łukasz [Wed, 4 Jun 2014 10:44:04 +0000 (12:44 +0200)]
editor: handle situation when element doesn't implement getVerticallyFirstTextElement

10 years agoeditor: small fix
Aleksander Łukasz [Mon, 9 Jun 2014 14:08:24 +0000 (16:08 +0200)]
editor: small fix

10 years agoeditor: canvas fix - fix selecting node without direct text node child
Aleksander Łukasz [Wed, 4 Jun 2014 12:03:31 +0000 (14:03 +0200)]
editor: canvas fix - fix selecting node without direct text node child

Without this fix, clicking element without direct text child element but
with children containing text nodes resulted in selecting this
child text element (while visual indication for the user was that the
requested element was selected).

10 years agoeditor: Hide comment header if there is nothing to show in it
Aleksander Łukasz [Thu, 29 May 2014 12:32:23 +0000 (14:32 +0200)]
editor: Hide comment header if there is nothing to show in it

10 years agoMerge in gutter comments
Aleksander Łukasz [Thu, 29 May 2014 07:38:58 +0000 (09:38 +0200)]
Merge in gutter comments

10 years agoeditor: tweaking visual appearance
Aleksander Łukasz [Thu, 29 May 2014 07:11:37 +0000 (09:11 +0200)]
editor: tweaking visual appearance

10 years agoeditor: remove code supporting main editing area sidebar as it's not used anymore
Aleksander Łukasz [Thu, 29 May 2014 07:33:03 +0000 (09:33 +0200)]
editor: remove code supporting main editing area sidebar as it's not used anymore

This also hides metadata editor from the ui for now - it must be
moved somewhere else.

10 years agoeditor: fix - remove gutter group when canvas element gets detached
Aleksander Łukasz [Wed, 28 May 2014 10:27:00 +0000 (12:27 +0200)]
editor: fix - remove gutter group when canvas element gets detached

10 years agoeditor: canvas - let every child of a detached element clean up after itself
Aleksander Łukasz [Wed, 28 May 2014 10:26:15 +0000 (12:26 +0200)]
editor: canvas - let every child of a detached element clean up after itself

10 years agoeditor: gutter comments - refactoring and clean up
Aleksander Łukasz [Wed, 28 May 2014 09:33:35 +0000 (11:33 +0200)]
editor: gutter comments - refactoring and clean up

10 years agoeditor: gutter comments - delete comment confirmation dialog
Aleksander Łukasz [Wed, 28 May 2014 09:17:18 +0000 (11:17 +0200)]
editor: gutter comments - delete comment confirmation dialog

10 years agoeditor: bring back summary view, this time in a main bar
Aleksander Łukasz [Tue, 27 May 2014 14:39:30 +0000 (16:39 +0200)]
editor: bring back summary view, this time in a main bar

10 years agoeditor: styling gutter comments
Aleksander Łukasz [Tue, 27 May 2014 12:41:32 +0000 (14:41 +0200)]
editor: styling gutter comments

10 years agoeditor: canvas gutter - fix dimensions
Aleksander Łukasz [Tue, 27 May 2014 10:46:31 +0000 (12:46 +0200)]
editor: canvas gutter - fix dimensions

10 years agoeditor: comments wip - inserting information about author
Aleksander Łukasz [Tue, 27 May 2014 08:09:14 +0000 (10:09 +0200)]
editor: comments wip - inserting information about author

10 years agoeditor: gutter comments - editing a comment
Aleksander Łukasz [Mon, 26 May 2014 11:22:16 +0000 (13:22 +0200)]
editor: gutter comments - editing a comment

10 years agoeditor: fixing handling nodeTextChange on text nodes belonging to custom-rendered...
Aleksander Łukasz [Mon, 26 May 2014 14:20:20 +0000 (16:20 +0200)]
editor: fixing handling nodeTextChange on text nodes belonging to custom-rendered parent

10 years agoeditor: refactoring canvas markup
Aleksander Łukasz [Mon, 26 May 2014 11:03:07 +0000 (13:03 +0200)]
editor: refactoring canvas markup

10 years agoeditor: refactoring - remove old unnecessary markup
Aleksander Łukasz [Mon, 26 May 2014 10:46:40 +0000 (12:46 +0200)]
editor: refactoring - remove old unnecessary markup

10 years agoeditor: comments in a gutter - first approach
Aleksander Łukasz [Wed, 28 May 2014 08:25:37 +0000 (10:25 +0200)]
editor: comments in a gutter - first approach

10 years agoeditor: introducing canvas gutter
Aleksander Łukasz [Wed, 28 May 2014 08:22:09 +0000 (10:22 +0200)]
editor: introducing canvas gutter

10 years agoeditor: show comment tip next to blocks containing comments
Aleksander Łukasz [Wed, 14 May 2014 14:10:25 +0000 (16:10 +0200)]
editor: show comment tip next to blocks containing comments

10 years agoeditor: make comment not visible on canvas
Aleksander Łukasz [Thu, 15 May 2014 08:29:54 +0000 (10:29 +0200)]
editor: make comment not visible on canvas

10 years agoeditor: canvas - support NullElements - elements that are not inserted into canvas
Aleksander Łukasz [Thu, 15 May 2014 08:27:10 +0000 (10:27 +0200)]
editor: canvas - support NullElements - elements that are not inserted into canvas

10 years agoeditor: refactoring canvas element state management
Aleksander Łukasz [Thu, 8 May 2014 13:37:38 +0000 (15:37 +0200)]
editor: refactoring canvas element state management

10 years agowlxml: Node.hasChild(query)
Aleksander Łukasz [Wed, 14 May 2014 14:05:22 +0000 (16:05 +0200)]
wlxml: Node.hasChild(query)

10 years agowlxml: comments
Aleksander Łukasz [Wed, 14 May 2014 14:20:14 +0000 (16:20 +0200)]
wlxml: comments

10 years agowlxml: Allow for setting non-function properties via extension
Aleksander Łukasz [Wed, 14 May 2014 13:40:13 +0000 (15:40 +0200)]
wlxml: Allow for setting non-function properties via extension

10 years agoeditor: plugins/core support for Node.object.describesParent
Aleksander Łukasz [Wed, 14 May 2014 14:19:50 +0000 (16:19 +0200)]
editor: plugins/core support for Node.object.describesParent

10 years agosmartxml: Support for Node.object.describesParent property
Aleksander Łukasz [Wed, 14 May 2014 13:34:58 +0000 (15:34 +0200)]
smartxml: Support for Node.object.describesParent property

10 years agosmartxml: Allow for describing node properties
Aleksander Łukasz [Wed, 14 May 2014 13:34:22 +0000 (15:34 +0200)]
smartxml: Allow for describing node properties

Those can be then used by the low level methods to change their behaviors

10 years agoeditor: remove unused code
Aleksander Łukasz [Wed, 28 May 2014 12:31:39 +0000 (14:31 +0200)]
editor: remove unused code

10 years agoeditor: canvas - stop using thrown away nodeMoved event, use 'move' flag instead
Aleksander Łukasz [Fri, 9 May 2014 14:12:27 +0000 (16:12 +0200)]
editor: canvas - stop using thrown away nodeMoved event, use 'move' flag instead

This approach always rerenders text nodes...

10 years agosmartxml: Getting rid of nodeMoved event in favor of `move` flag on nodeDetached...
Aleksander Łukasz [Fri, 9 May 2014 10:41:04 +0000 (12:41 +0200)]
smartxml: Getting rid of nodeMoved event in favor of `move` flag on nodeDetached/nodeAdded events

Moving nodes is now expressed in terms of detaching and adding events.

This simplifies implementation and api a little bit and makes it easier
for a client code to handle "move events".

10 years agosmartxml: fix
Aleksander Łukasz [Thu, 15 May 2014 10:23:40 +0000 (12:23 +0200)]
smartxml: fix

10 years agosmartxml: fix - merge newly adjacent text nodes on middle element node moved
Aleksander Łukasz [Thu, 15 May 2014 10:12:47 +0000 (12:12 +0200)]
smartxml: fix - merge newly adjacent text nodes on middle element node moved

Related: 25e14ce74de1ecdd95f36cb19e231b5a66898038

Also changing Node.split implementation which relied on this buggy
behavior.

10 years agosmartxml: minor refactoring to improve clarity
Aleksander Łukasz [Tue, 27 May 2014 10:09:05 +0000 (12:09 +0200)]
smartxml: minor refactoring to improve clarity

10 years agosmartxml: allow for removing node data for a specified key
Aleksander Łukasz [Tue, 27 May 2014 10:07:05 +0000 (12:07 +0200)]
smartxml: allow for removing node data for a specified key

10 years agoeditor: removing version number from main bar
Aleksander Łukasz [Tue, 27 May 2014 14:16:20 +0000 (16:16 +0200)]
editor: removing version number from main bar

10 years agoeditor: keep document properties on document instance, inform about changes via events
Aleksander Łukasz [Tue, 27 May 2014 14:09:27 +0000 (16:09 +0200)]
editor: keep document properties on document instance, inform about changes via events

10 years agocanvas: fix
Aleksander Łukasz [Tue, 27 May 2014 13:59:05 +0000 (15:59 +0200)]
canvas: fix

10 years agoeditor: plugins/core - better selecton restore after undoing/redoing link edition...
Aleksander Łukasz [Tue, 13 May 2014 10:41:22 +0000 (12:41 +0200)]
editor: plugins/core - better selecton restore after undoing/redoing link edition via link tool box

10 years agoeditor: plugins/core - restore selection after editing/deleting link via a link tool box
Aleksander Łukasz [Tue, 13 May 2014 10:39:29 +0000 (12:39 +0200)]
editor: plugins/core - restore selection after editing/deleting link via a link tool box

10 years agoeditor: plugins/core - support for undo/redo selection restore in most actions
Aleksander Łukasz [Tue, 13 May 2014 10:31:09 +0000 (12:31 +0200)]
editor: plugins/core - support for undo/redo selection restore in most actions

10 years agoeditor: plugins/core - undo/redo action support for restoring pre action canvas selection
Aleksander Łukasz [Tue, 13 May 2014 09:57:17 +0000 (11:57 +0200)]
editor: plugins/core - undo/redo action support for restoring pre action canvas selection

If a valid/restorable fragment is available in a transaction metadata it
gets passed to the callback where client code can handle selection restore.

10 years agocanvas: handle RangeFragments returned from actions - first simplistic take
Aleksander Łukasz [Mon, 12 May 2014 13:27:38 +0000 (15:27 +0200)]
canvas: handle RangeFragments returned from actions - first simplistic take

This should be expanded to actually make a selection.

10 years agosmartxml: Allow Fragments to refresh their node references using their initial paths
Aleksander Łukasz [Mon, 12 May 2014 13:24:52 +0000 (15:24 +0200)]
smartxml: Allow Fragments to refresh their node references using their initial paths

This allows client code to refresh Fragment object to reference
proper node instances after some potentially invalidating
changes to a document has been made while the logical structure
of the document is known to be the same.

An example of such a scenario would be a fragment instance created
before performing a transaction that was later undone using full
document reload.