From a8b4cc660b180f0f188877333b9ea041cd5c93eb Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Tue, 20 Dec 2016 17:50:04 +0200 Subject: [PATCH] create track-change annotation on keydown --- .../SimpleEditor/ContainerEditor.js | 35 +++++++++++++++++-- .../track_change/TrackChangePackage.js | 4 +-- .../elements/track_change/trackChange.scss | 2 +- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/app/components/SimpleEditor/ContainerEditor.js b/app/components/SimpleEditor/ContainerEditor.js index ed1fe2f..5cc6ebd 100644 --- a/app/components/SimpleEditor/ContainerEditor.js +++ b/app/components/SimpleEditor/ContainerEditor.js @@ -2,7 +2,7 @@ import { each, keys, includes } from 'lodash' import { ContainerEditor as SubstanceContainerEditor, Surface, - uuid + uuid, createAnnotation } from 'substance' class ContainerEditor extends SubstanceContainerEditor { @@ -43,7 +43,38 @@ class ContainerEditor extends SubstanceContainerEditor { // if (this.isReadOnlyMode()) { // const documentSession = this.getDocumentSession() // documentSession.on('didUpdate', this.disableToolbar, this) - // + // } + + // Start + if (this.props.trackChanges) { + el.addEventListener('keydown', function (e) { + const surface = this.context.surfaceManager.getSurface('body') + const session = this.context.documentSession + const sel = session.getSelection() + + const path = sel.path + const startOffset = sel.startOffset - 1 + const endOffset = sel.endOffset + 1 + + const createAnno = session.createSelection(path, startOffset, endOffset) + + const newNode = { + selection: createAnno, + node: { type: 'track-change' } + } + + surface.transaction((tx, args) => { + createAnnotation(tx, newNode) + }) + if (e.keyCode === 8) { + console.log('newNode', newNode) + let elem = document.querySelectorAll('[data-id=' + newNode.node.id + ']') + elem[0].style.backgroundColor = 'transparent' + elem[0].style.textDecoration = 'line-through' + } + }) + } + // END return el } diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js index 246cce5..a3f3ac5 100644 --- a/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js +++ b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js @@ -2,7 +2,7 @@ import TrackChange from './TrackChange' import TrackChangeCommand from './TrackChangeCommand' import TrackChangeComponent from './TrackChangeComponent' import TrackChangeHTMLConverter from './TrackChangeHTMLConverter' -import { AnnotationTool } from 'substance' +// import { AnnotationTool } from 'substance' export default { name: 'track-change', configure: function (config) { @@ -10,7 +10,7 @@ export default { config.addComponent(TrackChange.type, TrackChangeComponent) config.addConverter('html', TrackChangeHTMLConverter) - config.addTool('track-change', AnnotationTool, { target: 'insert' }) + // config.addTool('track-change', AnnotationTool, { target: 'insert' }) config.addCommand(TrackChange.type, TrackChangeCommand, { nodeType: TrackChange.type }) config.addIcon('track-change', { 'fontawesome': 'fa-eye' }) config.addLabel('track-change', { diff --git a/app/components/SimpleEditor/elements/track_change/trackChange.scss b/app/components/SimpleEditor/elements/track_change/trackChange.scss index d0c9aff..d995404 100644 --- a/app/components/SimpleEditor/elements/track_change/trackChange.scss +++ b/app/components/SimpleEditor/elements/track_change/trackChange.scss @@ -1,3 +1,3 @@ .sc-track-change { - background-color: blue; + background-color: #f7f70c; } -- GitLab