From 6933ff6b385d6a8f3d010d1c3570d9466debb7de Mon Sep 17 00:00:00 2001 From: Alexandros Georgantas <alexgeorg86@gmail.com> Date: Fri, 17 Feb 2017 16:25:13 +0200 Subject: [PATCH] Notes in progress --- .../SimpleEditor/ContainerEditor.js | 1 + app/components/SimpleEditor/Editor.js | 19 +++++++++---------- app/components/SimpleEditor/SimpleEditor.scss | 17 +++++++---------- app/components/SimpleEditor/config.js | 4 ++-- .../elements/note/EditNoteTool.js | 13 +++++++------ .../SimpleEditor/elements/note/Note.js | 2 +- .../SimpleEditor/elements/note/NotePackage.js | 6 ++---- .../SimpleEditor/elements/note/NoteTool.js | 3 +-- .../elements/note/PromptTextArea.js | 4 ++-- .../SimpleEditor/panes/Notes/NotesProvider.js | 2 +- 10 files changed, 33 insertions(+), 38 deletions(-) diff --git a/app/components/SimpleEditor/ContainerEditor.js b/app/components/SimpleEditor/ContainerEditor.js index 81e3b66..a7a68f2 100644 --- a/app/components/SimpleEditor/ContainerEditor.js +++ b/app/components/SimpleEditor/ContainerEditor.js @@ -10,6 +10,7 @@ import { class ContainerEditor extends SubstanceContainerEditor { render ($$) { let el = super.render($$) + el.addClass('my-custom-class') // native spellcheck el.attr('spellcheck', this.props.spellcheck === 'native') // var doc = this.getDocument() diff --git a/app/components/SimpleEditor/Editor.js b/app/components/SimpleEditor/Editor.js index ff269a4..0fec6f1 100644 --- a/app/components/SimpleEditor/Editor.js +++ b/app/components/SimpleEditor/Editor.js @@ -5,11 +5,11 @@ import { TOCProvider } from 'substance' -import Comments from './panes/Comments/CommentBoxList' -import CommentsProvider from './panes/Comments/CommentsProvider' +// import Comments from './panes/Comments/CommentBoxList' +// import CommentsProvider from './panes/Comments/CommentsProvider' import ContainerEditor from './ContainerEditor' -// import Notes from './panes/Notes/Notes' -// import NotesProvider from './panes/Notes/NotesProvider' +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' @@ -74,8 +74,7 @@ class Editor extends ProseEditor { let ContextMenu = this.componentRegistry.get('context-menu') // new what does it do? let Dropzones = this.componentRegistry.get('dropzones') // new what does it do? - // var footerNotes = $$(Notes) - const footerNotes = $$('div') + const footerNotes = $$(Notes) const toc = $$(TableOfContents) @@ -204,8 +203,8 @@ class Editor extends ProseEditor { props: props }) - // // notes provider - // const notesProvider = new NotesProvider(doc) + // notes provider + const notesProvider = new NotesProvider(doc) // // comments provider // const commentsProvider = new CommentsProvider(doc, { @@ -234,8 +233,8 @@ class Editor extends ProseEditor { // attach all to context return { ...oldContext, - tocProvider - // notesProvider, + tocProvider, + notesProvider // commentsProvider, // trackChangesProvider } diff --git a/app/components/SimpleEditor/SimpleEditor.scss b/app/components/SimpleEditor/SimpleEditor.scss index 2c431a7..b3055b7 100644 --- a/app/components/SimpleEditor/SimpleEditor.scss +++ b/app/components/SimpleEditor/SimpleEditor.scss @@ -226,10 +226,16 @@ $active-blue: #4a90e2; } - .se-content { + div.se-content { color: $transparent-black; font-family: 'Fira Sans'; word-wrap: break-word; + background-color: $white; + box-shadow: 0 0 8px $dark-gray; + margin: 1.5% 14% 7%; + min-height: 100vh; + padding: 3% 4% 1%; + transition: .3s; ::selection { background: $light-gray; @@ -243,15 +249,6 @@ $active-blue: #4a90e2; background: none; } - &:first-child { - background-color: $white; - box-shadow: 0 0 8px $dark-gray; - margin: 1.5% 14% 7%; - min-height: 100vh; - padding: 3% 4% 1%; - transition: .3s; - } - .sc-split-pane { position: relative; } diff --git a/app/components/SimpleEditor/config.js b/app/components/SimpleEditor/config.js index e7c1bc9..6d72420 100644 --- a/app/components/SimpleEditor/config.js +++ b/app/components/SimpleEditor/config.js @@ -20,7 +20,7 @@ import { // import CodeblockPackage from './elements/codeblock/CodeblockPackage' // import CommentPackage from './elements/comment/CommentPackage' // import ExtractPackage from './elements/extract/ExtractPackage' -// import NotePackage from './elements/note/NotePackage' +import NotePackage from './elements/note/NotePackage' // import SourceNotePackage from './elements/source_note/SourceNotePackage' // import ImagePackage from './elements/images/ImagePackage' // @@ -59,7 +59,7 @@ let config = { // config.import(CodeblockPackage) // // config.import(DialoguePackage) // config.import(ExtractPackage) - // config.import(NotePackage) + config.import(NotePackage) // config.import(SourceNotePackage) // config.import(CommentPackage) // config.import(ImagePackage) diff --git a/app/components/SimpleEditor/elements/note/EditNoteTool.js b/app/components/SimpleEditor/elements/note/EditNoteTool.js index 804bcae..2d88913 100644 --- a/app/components/SimpleEditor/elements/note/EditNoteTool.js +++ b/app/components/SimpleEditor/elements/note/EditNoteTool.js @@ -42,9 +42,9 @@ class EditNoteTool extends Tool { saveNote (event) { const selected = this.getSelection() const noteContent = this.el.find('textarea').val() - const documentSession = this.context.documentSession + const editorSession = this.context.editorSession - documentSession.transaction(function (tx, args) { + editorSession.transaction(function (tx, args) { const path = [selected.node.id, 'note-content'] tx.set(path, noteContent) }) @@ -55,10 +55,10 @@ class EditNoteTool extends Tool { const surface = this.context.surfaceManager.getFocusedSurface() if (!surface) return {} - const commandStates = this.context.commandManager.getCommandStates() - const session = this.context.documentSession + const commandStates = this.context.commandManager.commandStates + const session = this.context.editorSession const sel = session.getSelection() - + console.log('this', this) const note = documentHelpers.getPropertyAnnotationsForSelection( session.getDocument(), sel, @@ -66,10 +66,11 @@ class EditNoteTool extends Tool { ) // disable when larger selection that just includes a note as well - const selectionLength = (sel.endOffset - sel.startOffset === 1) + const selectionLength = (sel.end.offset - sel.start.offset === 1) if (typeof note[0] !== 'undefined' && selectionLength) { // disable commands that don't make sense on a note + console.log('commandStates', commandStates) each(keys(commandStates), (key) => { const allowed = ['comment', 'redo', 'save', 'switch-text-type', 'undo'] if (!includes(allowed, key)) commandStates[key].disabled = true diff --git a/app/components/SimpleEditor/elements/note/Note.js b/app/components/SimpleEditor/elements/note/Note.js index 51af949..82579d2 100644 --- a/app/components/SimpleEditor/elements/note/Note.js +++ b/app/components/SimpleEditor/elements/note/Note.js @@ -6,7 +6,7 @@ Note.define({ 'type': 'note', 'note-content': { type: 'string', - default: '' + optional: true } }) diff --git a/app/components/SimpleEditor/elements/note/NotePackage.js b/app/components/SimpleEditor/elements/note/NotePackage.js index 548d304..53ac142 100644 --- a/app/components/SimpleEditor/elements/note/NotePackage.js +++ b/app/components/SimpleEditor/elements/note/NotePackage.js @@ -12,11 +12,9 @@ export default { config.addComponent(Note.type, NoteComponent) config.addConverter('html', NoteHTMLConverter) - config.addCommand(Note.type, NoteCommand, { nodeType: Note.type }) - config.addTool('note', NoteTool, { target: 'insert' }) - config.addTool('note', EditNoteTool, { target: 'overlay' }) - + config.addTool('note', NoteTool, { toolGroup: 'annotations' }) + config.addTool('note', EditNoteTool, { toolGroup: 'overlay' }) config.addIcon('note', { 'fontawesome': 'fa-bookmark' }) config.addLabel('note', { en: 'Note' diff --git a/app/components/SimpleEditor/elements/note/NoteTool.js b/app/components/SimpleEditor/elements/note/NoteTool.js index ab792f1..fdd2d84 100644 --- a/app/components/SimpleEditor/elements/note/NoteTool.js +++ b/app/components/SimpleEditor/elements/note/NoteTool.js @@ -4,14 +4,13 @@ class NoteTool extends AnnotationTool { renderButton ($$) { const el = super.renderButton($$) const readOnly = this.isSurfaceReadOnly() - if (readOnly === true) el.attr('disabled', 'true') return el } getSurface () { const surfaceManager = this.context.surfaceManager - const containerId = this.context.controller.props.containerId + const containerId = this.context.editor.props.containerId return surfaceManager.getSurface(containerId) } diff --git a/app/components/SimpleEditor/elements/note/PromptTextArea.js b/app/components/SimpleEditor/elements/note/PromptTextArea.js index fc6ca23..a431f57 100644 --- a/app/components/SimpleEditor/elements/note/PromptTextArea.js +++ b/app/components/SimpleEditor/elements/note/PromptTextArea.js @@ -6,8 +6,8 @@ class TextArea extends Component { render ($$) { const { disabled, path, placeholder, rows } = this.props - const documentSession = this.context.documentSession - const doc = documentSession.getDocument() + const editorSession = this.context.editorSession + const doc = editorSession.getDocument() const val = doc.get(path) const el = $$('textarea') diff --git a/app/components/SimpleEditor/panes/Notes/NotesProvider.js b/app/components/SimpleEditor/panes/Notes/NotesProvider.js index 31ecabd..ba3fe34 100644 --- a/app/components/SimpleEditor/panes/Notes/NotesProvider.js +++ b/app/components/SimpleEditor/panes/Notes/NotesProvider.js @@ -28,7 +28,7 @@ class NotesProvider extends TOCProvider { notes = _.map(notes, function (note) { const blockId = note.path[0] const blockPosition = container.getPosition(blockId) - const nodePosition = note.startOffset + const nodePosition = note.start.offset return { id: note.id, -- GitLab