From ffc2e8f75aeacca4b89bf95bff143bad6b804591 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Tue, 20 Dec 2016 14:45:46 +0200
Subject: [PATCH] add track-change annotation on toolbar for now

---
 .../SimpleEditor/ContainerEditor.js           |  3 +--
 app/components/SimpleEditor/config.js         |  3 ++-
 .../SimpleEditor/elements/elements.scss       |  1 +
 .../elements/track_change/TrackChange.js      |  7 +++++++
 .../track_change/TrackChangeCommand.js        |  7 +++++++
 .../track_change/TrackChangeComponent.js      | 19 ++++++++++++++++++
 .../track_change/TrackChangeHTMLConverter.js  |  4 ++++
 .../track_change/TrackChangePackage.js        | 20 +++++++++++++++++++
 .../elements/track_change/trackChange.scss    |  3 +++
 9 files changed, 64 insertions(+), 3 deletions(-)
 create mode 100644 app/components/SimpleEditor/elements/track_change/TrackChange.js
 create mode 100644 app/components/SimpleEditor/elements/track_change/TrackChangeCommand.js
 create mode 100644 app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
 create mode 100644 app/components/SimpleEditor/elements/track_change/TrackChangeHTMLConverter.js
 create mode 100644 app/components/SimpleEditor/elements/track_change/TrackChangePackage.js
 create mode 100644 app/components/SimpleEditor/elements/track_change/trackChange.scss

diff --git a/app/components/SimpleEditor/ContainerEditor.js b/app/components/SimpleEditor/ContainerEditor.js
index 71fb5c3..ed1fe2f 100644
--- a/app/components/SimpleEditor/ContainerEditor.js
+++ b/app/components/SimpleEditor/ContainerEditor.js
@@ -43,8 +43,7 @@ class ContainerEditor extends SubstanceContainerEditor {
     // if (this.isReadOnlyMode()) {
     //   const documentSession = this.getDocumentSession()
     //   documentSession.on('didUpdate', this.disableToolbar, this)
-    // }
-
+    //
     return el
   }
 
diff --git a/app/components/SimpleEditor/config.js b/app/components/SimpleEditor/config.js
index a637603..0a80dcf 100644
--- a/app/components/SimpleEditor/config.js
+++ b/app/components/SimpleEditor/config.js
@@ -20,7 +20,7 @@ import CommentPackage from './elements/comment/CommentPackage'
 import ExtractPackage from './elements/extract/ExtractPackage'
 import NotePackage from './elements/note/NotePackage'
 import SourceNotePackage from './elements/source_note/SourceNotePackage'
-
+import TrackChangePackage from './elements/track_change/TrackChangePackage'
 // var DialoguePackage = require('./elements/dialogue/DialoguePackage')
 // var NumberedListPackage = require('./elements/numbered_list/NumberedListPackage')
 // var NoStyleListPackage = require('./elements/no_style_list/NoStyleListPackage')
@@ -56,6 +56,7 @@ let config = {
     config.import(NotePackage)
     config.import(SourceNotePackage)
     config.import(CommentPackage)
+    config.import(TrackChangePackage)
 
     // config.import(DialoguePackage)
     // config.import(NoStyleListPackage)
diff --git a/app/components/SimpleEditor/elements/elements.scss b/app/components/SimpleEditor/elements/elements.scss
index 786bf0a..8105d4e 100644
--- a/app/components/SimpleEditor/elements/elements.scss
+++ b/app/components/SimpleEditor/elements/elements.scss
@@ -7,3 +7,4 @@
 // @import './no_style_list/noStyleList';
 // @import './numbered_list/numberedList';
 @import './source_note/sourceNote';
+@import './track_change/trackChange';
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChange.js b/app/components/SimpleEditor/elements/track_change/TrackChange.js
new file mode 100644
index 0000000..2de7707
--- /dev/null
+++ b/app/components/SimpleEditor/elements/track_change/TrackChange.js
@@ -0,0 +1,7 @@
+import { PropertyAnnotation } from 'substance'
+
+class TrackChange extends PropertyAnnotation {}
+
+TrackChange.type = 'track-change'
+
+export default TrackChange
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeCommand.js b/app/components/SimpleEditor/elements/track_change/TrackChangeCommand.js
new file mode 100644
index 0000000..f40692e
--- /dev/null
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangeCommand.js
@@ -0,0 +1,7 @@
+import {AnnotationCommand} from 'substance'
+
+class TrackChangeCommand extends AnnotationCommand {}
+
+TrackChangeCommand.type = 'track-change'
+
+export default TrackChangeCommand
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
new file mode 100644
index 0000000..0373ac2
--- /dev/null
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
@@ -0,0 +1,19 @@
+import { AnnotationComponent } from 'substance'
+
+class TrackChangeComponent extends AnnotationComponent {
+  render ($$) {
+    const user = this.context.controller.props.user
+
+    var el = $$('span')
+      .attr('data-id', this.props.node.id)
+      .attr('data-user', user.username)
+      .attr('data-role', user.teams[0].name)
+      .addClass(this.getClassNames())
+
+    el.append(this.props.children)
+    return el
+  }
+
+}
+
+export default TrackChangeComponent
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeHTMLConverter.js b/app/components/SimpleEditor/elements/track_change/TrackChangeHTMLConverter.js
new file mode 100644
index 0000000..ff00a90
--- /dev/null
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangeHTMLConverter.js
@@ -0,0 +1,4 @@
+export default {
+  type: 'track-change',
+  tagName: 'track-change'
+}
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js
new file mode 100644
index 0000000..246cce5
--- /dev/null
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangePackage.js
@@ -0,0 +1,20 @@
+import TrackChange from './TrackChange'
+import TrackChangeCommand from './TrackChangeCommand'
+import TrackChangeComponent from './TrackChangeComponent'
+import TrackChangeHTMLConverter from './TrackChangeHTMLConverter'
+import { AnnotationTool } from 'substance'
+export default {
+  name: 'track-change',
+  configure: function (config) {
+    config.addNode(TrackChange)
+
+    config.addComponent(TrackChange.type, TrackChangeComponent)
+    config.addConverter('html', TrackChangeHTMLConverter)
+    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', {
+      en: 'track-change'
+    })
+  }
+}
diff --git a/app/components/SimpleEditor/elements/track_change/trackChange.scss b/app/components/SimpleEditor/elements/track_change/trackChange.scss
new file mode 100644
index 0000000..d0c9aff
--- /dev/null
+++ b/app/components/SimpleEditor/elements/track_change/trackChange.scss
@@ -0,0 +1,3 @@
+.sc-track-change {
+  background-color: blue;
+}
-- 
GitLab