From d116858f84ac9dd21c5272d2a594cd66abbb161e Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Tue, 4 Aug 2020 13:52:58 +0300 Subject: [PATCH] Enable track changes tool --- editors/editoria/src/config/config.js | 3 ++ .../EnableTrackChange.js | 32 +++++++++++++++++++ .../EnableTrackChangeService.js | 12 +++++++ .../TrackChangeService/TrackChangeService.js | 19 ++++++----- .../src/TrackChangeService/index.js | 3 ++ .../TrackChange.js | 4 +-- 6 files changed, 63 insertions(+), 10 deletions(-) create mode 100644 wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js create mode 100644 wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js create mode 100644 wax-prosemirror-services/src/TrackChangeService/index.js diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js index c37f64b13..2e195ed3a 100644 --- a/editors/editoria/src/config/config.js +++ b/editors/editoria/src/config/config.js @@ -23,6 +23,7 @@ import { CommentsService, CodeBlockService, CodeBlockToolGroupService, + TrackChangeToolGroupService, } from 'wax-prosemirror-services'; import { WaxSelectionPlugin } from 'wax-prosemirror-plugins'; @@ -48,6 +49,7 @@ export default { 'Images', 'CodeBlock', 'Tables', + 'TrackChange', ], }, { @@ -92,5 +94,6 @@ export default { new ListToolGroupService(), new CodeBlockService(), new CodeBlockToolGroupService(), + new TrackChangeToolGroupService(), ], }; diff --git a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js new file mode 100644 index 000000000..e753ad468 --- /dev/null +++ b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js @@ -0,0 +1,32 @@ +import React from 'react'; +import { injectable } from 'inversify'; +import { isEmpty } from 'lodash'; +import Tools from '../../lib/Tools'; + +export default +@injectable() +class EnableTrackChange extends Tools { + title = 'Select Options'; + content = 'table'; + + get run() { + return () => { + return true; + }; + } + + get enable() { + return state => { + return true; + }; + } + + select(state) { + return true; + } + + renderTool(view) { + if (isEmpty(view)) return null; + return this._isDisplayed ? <button type="button"> Track </button> : null; + } +} diff --git a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js new file mode 100644 index 000000000..0540b09e7 --- /dev/null +++ b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js @@ -0,0 +1,12 @@ +import Service from '../../Service'; +import EnableTrackChange from './EnableTrackChange'; + +class EnableTrackChangeService extends Service { + boot() {} + + register() { + this.container.bind('EnableTrackChange').to(EnableTrackChange); + } +} + +export default EnableTrackChangeService; diff --git a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js index 5d642d6d6..cc9ca5069 100644 --- a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js +++ b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js @@ -1,31 +1,34 @@ -import Service from "../Service"; -import { trackChangesMarks, trackChangesNodes } from "wax-prosemirror-schema"; +import { trackChangesMarks, trackChangesNodes } from 'wax-prosemirror-schema'; +import Service from '../Service'; +import TrackChangeServices from './index'; class TrackChangeService extends Service { boot() {} register() { - const createMark = this.container.get("CreateMark"); - const createNode = this.container.get("CreateNode"); + const createMark = this.container.get('CreateMark'); + const createNode = this.container.get('CreateNode'); Object.keys(trackChangesMarks).forEach(mark => { createMark( { - [mark]: trackChangesMarks[mark] + [mark]: trackChangesMarks[mark], }, - { toWaxSchema: true } + { toWaxSchema: true }, ); }); Object.keys(trackChangesNodes).forEach(node => { createNode( { - [node]: trackChangesNodes[node] + [node]: trackChangesNodes[node], }, - { toWaxSchema: true } + { toWaxSchema: true }, ); }); } + + dependencies = TrackChangeServices; } export default TrackChangeService; diff --git a/wax-prosemirror-services/src/TrackChangeService/index.js b/wax-prosemirror-services/src/TrackChangeService/index.js new file mode 100644 index 000000000..c46492337 --- /dev/null +++ b/wax-prosemirror-services/src/TrackChangeService/index.js @@ -0,0 +1,3 @@ +import EnableTrackChangeService from './EnableTrackChangeService/EnableTrackChangeService'; + +export default [new EnableTrackChangeService()]; diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js b/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js index f494b177f..a0358a588 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js +++ b/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js @@ -4,9 +4,9 @@ import ToolGroup from '../../lib/ToolGroup'; @injectable() class TrackChange extends ToolGroup { tools = []; - constructor() { + constructor(@inject('EnableTrackChange') enableTrackChange) { super(); - this.tools = []; + this.tools = [enableTrackChange]; } } -- GitLab