diff --git a/app/components/SimpleEditor/elements/note/EditNoteTool.js b/app/components/SimpleEditor/elements/note/EditNoteTool.js index b443fefffb9ab336c606525600706383609c1b24..5f74ba65c7790ea1d01fe1dcb61b85cfe6692cdc 100644 --- a/app/components/SimpleEditor/elements/note/EditNoteTool.js +++ b/app/components/SimpleEditor/elements/note/EditNoteTool.js @@ -58,6 +58,7 @@ class EditNoteTool extends Tool { const allowed = ['comment', 'redo', 'save', 'switch-text-type', 'undo', 'note'] if (!includes(allowed, key)) commandStates[key].disabled = true }) + this.rerender() } saveNote (source) { diff --git a/app/components/SimpleEditor/miniEditor/config.js b/app/components/SimpleEditor/miniEditor/config.js index a1080f360c2e687956c0eab1f91c9c4b4bc4bba1..e4157d52834d571e43ed166825a3da8c92ca3488 100644 --- a/app/components/SimpleEditor/miniEditor/config.js +++ b/app/components/SimpleEditor/miniEditor/config.js @@ -5,8 +5,6 @@ import { PersistencePackage, ProseArticle, StrongPackage, - SubscriptPackage, - SuperscriptPackage, SpellCheckPackage } from 'substance' @@ -26,8 +24,6 @@ let config = { config.import(ParagraphPackage) config.import(EmphasisPackage) config.import(StrongPackage) - config.import(SubscriptPackage) - config.import(SuperscriptPackage) config.import(PersistencePackage) config.import(SpellCheckPackage) } diff --git a/app/components/SimpleEditor/panes/Notes/Notes.js b/app/components/SimpleEditor/panes/Notes/Notes.js index 250d0dbf54c8d4de295557179903fd1276234818..be97a2b8c1ef5f0f95b4b4e3f69bbce187fccf1e 100644 --- a/app/components/SimpleEditor/panes/Notes/Notes.js +++ b/app/components/SimpleEditor/panes/Notes/Notes.js @@ -12,24 +12,66 @@ class Notes extends Component { let self = this const listItems = entries.map(function (entry, i) { + let extractedElement = '' + if (entry.content) { + extractedElement = self.parseEntryContent($$, entry.content) + return extractedElement + .attr('data-id', entry.id) + .addClass('sc-notes-footer-item') + } return $$('li') .attr('data-id', entry.id) .addClass('sc-notes-footer-item') - .append(self.parseEntryContent(entry.content)) + .append(extractedElement) }) if (listItems.length === 0) return $$('div') - return $$('ol') .addClass('sc-notes-footer') .append(listItems) } - parseEntryContent (content) { - // return content + parseEntryContent ($$, content) { let parser = new DOMParser() - // - return parser.parseFromString(content, 'text/html').body.childNodes[0].innerText + let parsedContent = parser.parseFromString(content, 'text/html').body + let parentElement = parsedContent.childNodes[0] + let children = parentElement.childNodes + let constructedElement = $$('li') + + for (let i = 0; i < children.length; i++) { + if (children[i].nodeName === '#text') { + constructedElement.append(children[i].data) + } else { + let contructedChildElement = $$(children[i].nodeName) + // Case of nested styling, first contruct the sub child node + if (children[i].children.length === 1) { + let contructedSubChildElement = $$(children[i].children[0].nodeName) + this.assignVirtualElementClass(children[i].children[0], contructedSubChildElement) + this.assignVirtualElementClass(children[i], contructedChildElement) + + contructedSubChildElement.append(children[i].children[0].innerText) + contructedChildElement.append(contructedSubChildElement) + } else { + this.assignVirtualElementClass(children[i], contructedChildElement) + contructedChildElement.append(children[i].innerText) + } + + constructedElement.append(contructedChildElement) + } + } + + return constructedElement + } + + assignVirtualElementClass (DOMElement, virtualElement) { + switch (DOMElement.nodeName) { + case 'STRONG': + virtualElement.addClass('sc-strong') + break + case 'EM': + virtualElement.addClass('sc-emphasis') + break + } } getProvider () {