From 7725091a7b35acd5352d1c40c9bd3cf3050e1759 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Wed, 22 Feb 2017 15:39:36 +0200 Subject: [PATCH] Activate / deactivate track changes working plus fixes --- app/components/SimpleEditor/Editor.js | 18 +++++++++++++----- app/components/SimpleEditor/SimpleEditor.scss | 4 +--- .../track_change/TrackChangeComponent.js | 2 +- .../track_change/TrackChangeControlTool.js | 15 +-------------- .../track_change/TrackChangePackage.js | 7 ++++--- .../track_change/TrackChangesProvider.js | 6 ++---- 6 files changed, 22 insertions(+), 30 deletions(-) diff --git a/app/components/SimpleEditor/Editor.js b/app/components/SimpleEditor/Editor.js index 1f5977b..66c140b 100644 --- a/app/components/SimpleEditor/Editor.js +++ b/app/components/SimpleEditor/Editor.js @@ -3,6 +3,7 @@ import { includes, some } from 'lodash' import { ProseEditor, TOCProvider, + Toolbar } from 'substance' import Comments from './panes/Comments/CommentBoxList' @@ -34,10 +35,12 @@ class Editor extends ProseEditor { this.extendProps({ trackChanges: !this.props.trackChanges }) - + // this.props.updateTrackChangesStatus(!this.props.trackChanges) - this.extendState({ trackChanges: !this.props.trackChanges }) + this.refs.toolbar.extendProps({ + trackChanges: this.props.trackChanges + }) } willUpdateState () {} @@ -141,8 +144,14 @@ class Editor extends ProseEditor { // TODO -- use this to insert read-only mode alert _renderToolbar ($$) { - const toolbar = super._renderToolbar($$) - return toolbar + let commandStates = this.commandManager.getCommandStates() + return $$('div').addClass('se-toolbar-wrapper').append( + $$(Toolbar, { + commandStates: commandStates, + trackChanges: this.props.trackChanges, + toolGroups: ['text', 'document', 'annotations', 'default', 'track-change-enable', 'track-change-toggle-view'] + }).ref('toolbar') + ) } _renderEditor ($$) { @@ -163,7 +172,6 @@ class Editor extends ProseEditor { getInitialState () { return { editorReady: false, - trackChanges: this.props.trackChanges, trackChangesView: true } } diff --git a/app/components/SimpleEditor/SimpleEditor.scss b/app/components/SimpleEditor/SimpleEditor.scss index a5376e9..e841653 100644 --- a/app/components/SimpleEditor/SimpleEditor.scss +++ b/app/components/SimpleEditor/SimpleEditor.scss @@ -119,7 +119,6 @@ $active-blue: #4a90e2; } // end dropdown .sm-target-track-change-enable { - border-right: 1px solid $border; button { background-color: $inactive-grey; @@ -174,8 +173,7 @@ $active-blue: #4a90e2; border-left: 1px solid $border; } - .sm-target-track-change-enable, - .sm-target-track-change-toggle-view { + .sm-target-track-change-enable { padding: 0 9px; } diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js index 30215e3..9fe65a5 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js @@ -96,7 +96,7 @@ class TrackChangeComponent extends AnnotationComponent { const selection = surface.editorSession.getSelection() - if (selection.isNull() || selection.isCollapsed()) return false + if (selection.isNodeSelection || selection.isNull() || selection.isCollapsed()) return false const overlaps = selection.overlaps(annotationSelection) const contains = selection.contains(annotationSelection) diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js b/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js index 63a14be..cb65285 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangeControlTool.js @@ -2,10 +2,6 @@ import { Tool } from 'substance' class TrackChangeControlTool extends Tool { - getClassNames () { - return 'sm-target-track-change-enable' - } - renderButton ($$) { const el = super.renderButton($$) @@ -16,21 +12,12 @@ class TrackChangeControlTool extends Tool { return el } - getSurface () { - const surfaceManager = this.context.surfaceManager - // const containerId = this.context.controller.props.containerId - return surfaceManager.getSurface('body') - } - isTrackChangesOn () { - const surface = this.getSurface() - if (!surface) return - return surface.props.trackChanges + return this.parent._owner.props.trackChanges } canAct () { const provider = this.context.trackChangesProvider - // console.log('can act?', provider.canAct()) return provider.canAct() } } diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js index ce01b0c..40b630f 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js @@ -11,17 +11,18 @@ export default { name: 'track-change', configure: function (config, { toolGroup }) { config.addNode(TrackChange) - + config.addToolGroup('track-change-enable') + config.addToolGroup('track-change-toggle-view') config.addComponent(TrackChange.type, TrackChangeComponent) config.addConverter('html', TrackChangeHTMLConverter) // TODO -- both tools should go to the same target config.addTool('track-change-enable', TrackChangeControlTool, { - toolGroup: 'default' + toolGroup: 'track-change-enable' }) config.addTool('track-change-toggle-view', TrackChangeControlViewTool, { - toolGroup: 'default' + toolGroup: 'track-change-toggle-view' }) 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 e890b09..6a762e6 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js @@ -17,7 +17,6 @@ import { import { annotationHelpers, - truncateAnnotation, TOCProvider } from 'substance' @@ -529,11 +528,10 @@ class TrackChangesProvider extends TOCProvider { truncateTrackAnnotation (selection, annotation) { const surface = this.getSurface() const info = this.getInfo() + const doc = this.getDocument() const transformation = (tx, args) => { - args.anno = annotation - args.selection = selection - truncateAnnotation(tx, args) + annotationHelpers.truncateAnnotation(doc, annotation, selection) } surface.transaction(transformation, info) -- GitLab