From 4de0b4b79812c80c9f8443ca1f39c76f3060305a Mon Sep 17 00:00:00 2001 From: Alexandros Georgantas <alexgeorg86@gmail.com> Date: Wed, 22 Feb 2017 11:42:37 +0200 Subject: [PATCH] Track changes in document working --- .../track_change/TrackChangeComponent.js | 1 + .../track_change/TrackChangesProvider.js | 31 ++++++++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js index 77d2d06..f8d023a 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js @@ -64,6 +64,7 @@ class TrackChangeComponent extends AnnotationComponent { resolve (action) { const annotation = this.props.node const provider = this.getProvider() + console.log('provider', provider) provider.resolve(annotation, action) } diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js index c51a421..900b498 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js @@ -17,9 +17,6 @@ import { import { annotationHelpers, - deleteCharacter as deleteChar, - deleteNode, - deleteSelection as deleteSel, truncateAnnotation, TOCProvider } from 'substance' @@ -28,7 +25,7 @@ class TrackChangesProvider extends TOCProvider { constructor (document, config) { super(document, config) // config.documentSession.on('didUpdate', this.handleUndoRedo, this) - + console.log('this track provider', this) // HACK -- use TOCProvider's event to capture new / deleted changes this.on('toc:updated', this.reComputeEntries, this) @@ -474,7 +471,7 @@ class TrackChangesProvider extends TOCProvider { const transformation = (tx, args) => { args.direction = direction - return deleteChar(tx, args) + return tx.deleteCharacter(direction) } surface.editorSession.transaction(transformation, info) @@ -483,10 +480,15 @@ class TrackChangesProvider extends TOCProvider { deleteSelection (selection) { const surface = this.getSurface() const info = { action: 'delete' } - const transformation = (tx, args) => { - args.selection = selection - return deleteSel(tx, args) + tx.setSelection({ + type: 'property', + path: selection.path, + surfaceId: 'body', + startOffset: selection.start.offset, + endOffset: selection.end.offset + }) + return tx.deleteSelection() } surface.editorSession.transaction(transformation, info) @@ -521,11 +523,10 @@ class TrackChangesProvider extends TOCProvider { const surface = this.getSurface() const transformation = (tx, args) => { - args.nodeId = annotation.id - deleteNode(tx, args) + tx.delete(annotation.id) } - surface.transaction(transformation) + surface.editorSession.transaction(transformation) } truncateTrackAnnotation (selection, annotation) { @@ -552,6 +553,8 @@ class TrackChangesProvider extends TOCProvider { const selection = annotation.getSelection() const status = annotation.status + console.log('resolve', this) + this.removeTrackAnnotation(annotation) if ( @@ -573,6 +576,7 @@ class TrackChangesProvider extends TOCProvider { }) const entries = this.sortNodes(changes) + console.log('entries', entries) return entries } @@ -624,7 +628,8 @@ class TrackChangesProvider extends TOCProvider { controller.scrollTo(annotation.id) const selection = annotation.getSelection() - surface.setSelection(selection) + + surface.editorSession.setSelection(selection) this.moveCursorTo('start') } @@ -808,6 +813,8 @@ class TrackChangesProvider extends TOCProvider { // TODO -- use substance's selection.collapse(direction) if (point === 'start') { + selection.start.offset -= 1 + selection.end.offset -= 1 selection.end.offset = selection.start.offset } else if (point === 'end') { selection.start.offset = selection.end.offset -- GitLab