From 02b333a5cb6c998a8708ca2cfd4853cd9d6b408c Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Mon, 20 Feb 2017 20:40:22 +0200 Subject: [PATCH] initial track changes --- app/components/SimpleEditor/Editor.js | 20 +++++++++---------- app/components/SimpleEditor/config.js | 4 ++-- .../elements/note/EditNoteTool.js | 3 --- .../track_change/TrackChangeControlTool.js | 9 +++++++-- .../TrackChangeControlViewTool.js | 7 ++++++- .../track_change/TrackChangePackage.js | 6 +++--- .../track_change/TrackChangesProvider.js | 15 +++++++------- .../panes/TableOfContents/TableOfContents.js | 1 + 8 files changed, 37 insertions(+), 28 deletions(-) diff --git a/app/components/SimpleEditor/Editor.js b/app/components/SimpleEditor/Editor.js index a325e1d..7629652 100644 --- a/app/components/SimpleEditor/Editor.js +++ b/app/components/SimpleEditor/Editor.js @@ -2,7 +2,7 @@ import { includes, some } from 'lodash' import { ProseEditor, - TOCProvider + TOCProvider, } from 'substance' import Comments from './panes/Comments/CommentBoxList' @@ -11,7 +11,7 @@ import ContainerEditor from './ContainerEditor' import Notes from './panes/Notes/Notes' import NotesProvider from './panes/Notes/NotesProvider' import TableOfContents from './panes/TableOfContents/TableOfContents' -// import TrackChangesProvider from './elements/track_change/TrackChangesProvider' +import TrackChangesProvider from './elements/track_change/TrackChangesProvider' class Editor extends ProseEditor { constructor (parent, props) { @@ -221,14 +221,14 @@ class Editor extends ProseEditor { // TODO -- do I need all of these? // track changes provider - // const trackChangesProvider = new TrackChangesProvider(doc, { - // commandManager: this.commandManager, - // containerId: this.props.containerId, - // controller: this, - // documentSession: this.documentSession, - // surfaceManager: this.surfaceManager, - // user: this.props.user - // }) + const trackChangesProvider = new TrackChangesProvider(doc, { + commandManager: this.commandManager, + containerId: this.props.containerId, + controller: this, + documentSession: this.documentSession, + surfaceManager: this.surfaceManager, + user: this.props.user + }) // attach all to context return { diff --git a/app/components/SimpleEditor/config.js b/app/components/SimpleEditor/config.js index e613737..4b8d772 100644 --- a/app/components/SimpleEditor/config.js +++ b/app/components/SimpleEditor/config.js @@ -25,7 +25,7 @@ import NotePackage from './elements/note/NotePackage' // import SourceNotePackage from './elements/source_note/SourceNotePackage' import ImagePackage from './elements/images/ImagePackage' // -// import TrackChangePackage from './elements/track_change/TrackChangePackage' +import TrackChangePackage from './elements/track_change/TrackChangePackage' // var DialoguePackage = require('./elements/dialogue/DialoguePackage') // var NumberedListPackage = require('./elements/numbered_list/NumberedListPackage') @@ -66,7 +66,7 @@ let config = { config.import(CommentPackage) config.import(ImagePackage) // - // config.import(TrackChangePackage) + config.import(TrackChangePackage) // config.import(DialoguePackage) // config.import(NoStyleListPackage) diff --git a/app/components/SimpleEditor/elements/note/EditNoteTool.js b/app/components/SimpleEditor/elements/note/EditNoteTool.js index d0bc289..7aeae8a 100644 --- a/app/components/SimpleEditor/elements/note/EditNoteTool.js +++ b/app/components/SimpleEditor/elements/note/EditNoteTool.js @@ -61,9 +61,6 @@ class EditNoteTool extends Tool { const path = [selected.node.id, 'note-content'] tx.set(path, noteContent) }) - - this.el.addClass('hidden') - console.log(this.el) } getSelection () { diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js b/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js index 78761b1..63a14be 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js @@ -1,6 +1,11 @@ import { Tool } from 'substance' class TrackChangeControlTool extends Tool { + + getClassNames () { + return 'sm-target-track-change-enable' + } + renderButton ($$) { const el = super.renderButton($$) @@ -13,8 +18,8 @@ class TrackChangeControlTool extends Tool { getSurface () { const surfaceManager = this.context.surfaceManager - const containerId = this.context.controller.props.containerId - return surfaceManager.getSurface(containerId) + // const containerId = this.context.controller.props.containerId + return surfaceManager.getSurface('body') } isTrackChangesOn () { diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewTool.js b/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewTool.js index cfcaef4..59b8ca3 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewTool.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewTool.js @@ -1,6 +1,10 @@ import { Tool } from 'substance' class TrackChangeControlViewTool extends Tool { + + getClassNames () { + return 'sm-target-track-change-toggle-view' + } renderButton ($$) { const el = super.renderButton($$) if (this.getViewMode()) el.addClass('track-changes-view-active') @@ -15,7 +19,8 @@ class TrackChangeControlViewTool extends Tool { getViewMode () { const editor = this.context.controller - const { trackChangesView } = editor.state + var trackChangesView = true + // const { trackChangesView } = editor.state return trackChangesView } } diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js index ae4eef1..ce01b0c 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js @@ -9,7 +9,7 @@ import TrackChangeControlViewCommand from './TrackChangeControlViewCommand' export default { name: 'track-change', - configure: function (config) { + configure: function (config, { toolGroup }) { config.addNode(TrackChange) config.addComponent(TrackChange.type, TrackChangeComponent) @@ -17,11 +17,11 @@ export default { // TODO -- both tools should go to the same target config.addTool('track-change-enable', TrackChangeControlTool, { - target: 'track-change-enable' + toolGroup: 'default' }) config.addTool('track-change-toggle-view', TrackChangeControlViewTool, { - target: 'track-change-toggle-view' + toolGroup: 'default' }) config.addCommand('track-change-enable', TrackChangeControlCommand) diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js index 92cc99b..6cca43f 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js @@ -28,7 +28,7 @@ import { class TrackChangesProvider extends TOCProvider { constructor (document, config) { super(document, config) - config.documentSession.on('didUpdate', this.handleUndoRedo, this) + // config.documentSession.on('didUpdate', this.handleUndoRedo, this) // HACK -- use TOCProvider's event to capture new / deleted changes this.on('toc:updated', this.reComputeEntries, this) @@ -653,14 +653,14 @@ class TrackChangesProvider extends TOCProvider { } // getExistingAnnotation () { - // const documentSession = this.getDocumentSession() + // const documentSession = this.getEditorSession() // const selectionState = documentSession.getSelectionState() // const annotations = selectionState.getAnnotationsForType('track-change') // return annotations[0] // } getAllExistingTrackAnnotations () { - const documentSession = this.getDocumentSession() + const documentSession = this.getEditorSession() const selectionState = documentSession.getSelectionState() const annotations = selectionState.getAnnotationsForType('track-change') return annotations @@ -752,12 +752,12 @@ class TrackChangesProvider extends TOCProvider { const deletedOp = deleted[keys(deleted)[0]] if (!deletedOp.type === 'track-change') return - const documentSession = this.getDocumentSession() + const documentSession = this.getEditorSession() documentSession.undo() } handleRedo () { - const documentSession = this.getDocumentSession() + const documentSession = this.getEditorSession() const undoneChanges = documentSession.undoneChanges const lastChange = last(undoneChanges) const op = last(lastChange.ops) @@ -850,8 +850,8 @@ class TrackChangesProvider extends TOCProvider { return this.config.user.id } - getDocumentSession () { - return this.config.documentSession + getEditorSession () { + return this.config.editorSession } getMode () { @@ -861,6 +861,7 @@ class TrackChangesProvider extends TOCProvider { getSelection () { const surface = this.getSurface() + console.log('surface', surface) return surface.getSelection() } diff --git a/app/components/SimpleEditor/panes/TableOfContents/TableOfContents.js b/app/components/SimpleEditor/panes/TableOfContents/TableOfContents.js index 53e7981..6cd695e 100644 --- a/app/components/SimpleEditor/panes/TableOfContents/TableOfContents.js +++ b/app/components/SimpleEditor/panes/TableOfContents/TableOfContents.js @@ -12,6 +12,7 @@ class TableOfContents extends Toc { this.rerender() }) + // this.on('toc:updated', this.reComputeEntries, this) } render ($$) { -- GitLab