diff --git a/gui/app/components/section/wysiwyg/type-editor.js b/gui/app/components/section/wysiwyg/type-editor.js index 35feaaa7..29e9531d 100644 --- a/gui/app/components/section/wysiwyg/type-editor.js +++ b/gui/app/components/section/wysiwyg/type-editor.js @@ -11,6 +11,7 @@ import $ from 'jquery'; import { computed, set } from '@ember/object'; +import { schedule } from '@ember/runloop'; import Component from '@ember/component'; import { inject as service } from '@ember/service'; @@ -24,98 +25,105 @@ export default Component.extend({ }), didReceiveAttrs() { + this._super(...arguments); this.set('pageBody', this.get('meta.rawBody')); }, didInsertElement() { - let options = { - selector: "#" + this.get('editorId'), - relative_urls: false, - cache_suffix: "?v=475", - browser_spellcheck: true, - gecko_spellcheck: false, - theme: "modern", - skin: 'documize', - statusbar: false, - inline: true, - entity_encoding: "raw", - paste_data_images: true, - image_advtab: true, - image_caption: true, - media_live_embeds: true, - fontsize_formats: "8px 10px 12px 14px 17px 18px 24px 36px 40px 50px 60px", - formats: { - bold: { - inline: 'b' + this._super(...arguments); + + schedule('afterRender', () => { + let options = { + cache_suffix: "?v=454", + selector: "#" + this.get('editorId'), + relative_urls: false, + browser_spellcheck: true, + gecko_spellcheck: false, + statusbar: false, + inline: true, + // fixed_toolbar_container: '#mytoolbar', + paste_data_images: true, + image_advtab: true, + image_caption: true, + media_live_embeds: true, + theme: "modern", + skin: 'lightgray-gradient', + entity_encoding: "raw", + extended_valid_elements: "b,i,b/strong,i/em", + fontsize_formats: "8px 10px 12px 14px 17px 18px 24px 36px 40px 50px 60px", + formats: { + bold: { + inline: 'b' + }, + italic: { + inline: 'i' + } }, - italic: { - inline: 'i' + codesample_languages: [ + {text: 'C', value: 'c'}, + {text: 'C#', value: 'csharp'}, + {text: 'C++', value: 'cpp'}, + {text: 'CSS', value: 'css'}, + {text: 'Docker', value: 'docker'}, + {text: 'Elixir', value: 'elixir'}, + {text: 'Erlang', value: 'erlang'}, + {text: 'Fsharp', value: 'fsharp'}, + {text: 'Git', value: 'git'}, + {text: 'Go', value: 'go'}, + {text: 'Haskell', value: 'haskell'}, + {text: 'HTML', value: 'markup'}, + {text: 'HTTP', value: 'http'}, + {text: 'Java', value: 'java'}, + {text: 'JavaScript', value: 'javascript'}, + {text: 'JSON', value: 'json'}, + {text: 'Less', value: 'less'}, + {text: 'Makefile', value: 'makefile'}, + {text: 'Markdown', value: 'markdown'}, + {text: 'nginx', value: 'nginx'}, + {text: 'Objective C', value: 'objectivec'}, + {text: 'Perl', value: 'perl'}, + {text: 'PHP', value: 'php'}, + {text: 'Powershell', value: 'powershell'}, + {text: 'Python', value: 'python'}, + {text: 'Ruby', value: 'ruby'}, + {text: 'Rust', value: 'rust'}, + {text: 'Sass SCSS', value: 'scss'}, + {text: 'SQL', value: 'sql'}, + {text: 'Swift', value: 'swift'}, + {text: 'TypeScript', value: 'typescript'}, + {text: 'XML', value: 'markup'}, + {text: 'YAML', value: 'yaml'}, + ], + plugins: [ + 'advlist autolink lists link image charmap print hr anchor pagebreak', + 'searchreplace wordcount visualblocks visualchars code codesample fullscreen', + 'insertdatetime media nonbreaking save table directionality', + 'template paste textcolor colorpicker textpattern imagetools' + ], + menu: {}, + menubar: false, + toolbar1: "formatselect fontsizeselect | bold italic underline strikethrough superscript subscript | forecolor backcolor link unlink", + toolbar2: "outdent indent bullist numlist | alignleft aligncenter alignright alignjustify | table image media codesample", + save_onsavecallback: function () { + Mousetrap.trigger('ctrl+s'); } - }, - codesample_languages: [ - {text: 'C', value: 'c'}, - {text: 'C#', value: 'csharp'}, - {text: 'C++', value: 'cpp'}, - {text: 'CSS', value: 'css'}, - {text: 'Docker', value: 'docker'}, - {text: 'Elixir', value: 'elixir'}, - {text: 'Erlang', value: 'erlang'}, - {text: 'Fsharp', value: 'fsharp'}, - {text: 'Git', value: 'git'}, - {text: 'Go', value: 'go'}, - {text: 'Haskell', value: 'haskell'}, - {text: 'HTML', value: 'markup'}, - {text: 'HTTP', value: 'http'}, - {text: 'Java', value: 'java'}, - {text: 'JavaScript', value: 'javascript'}, - {text: 'JSON', value: 'json'}, - {text: 'Less', value: 'less'}, - {text: 'Makefile', value: 'makefile'}, - {text: 'Markdown', value: 'markdown'}, - {text: 'nginx', value: 'nginx'}, - {text: 'Objective C', value: 'objectivec'}, - {text: 'Perl', value: 'perl'}, - {text: 'PHP', value: 'php'}, - {text: 'Powershell', value: 'powershell'}, - {text: 'Python', value: 'python'}, - {text: 'Ruby', value: 'ruby'}, - {text: 'Rust', value: 'rust'}, - {text: 'Sass SCSS', value: 'scss'}, - {text: 'SQL', value: 'sql'}, - {text: 'Swift', value: 'swift'}, - {text: 'TypeScript', value: 'typescript'}, - {text: 'XML', value: 'markup'}, - {text: 'YAML', value: 'yaml'}, - ], - extended_valid_elements: "b,i,b/strong,i/em", - plugins: [ - 'advlist autolink lists link image charmap print preview hr anchor pagebreak', - 'searchreplace wordcount visualblocks visualchars code codesample fullscreen', - 'insertdatetime media nonbreaking save table directionality', - 'template paste textcolor colorpicker textpattern imagetools' - ], - menu: {}, - menubar: false, - toolbar1: "formatselect fontsizeselect | bold italic underline strikethrough superscript subscript | forecolor backcolor link unlink", - toolbar2: "outdent indent bullist numlist | alignleft aligncenter alignright alignjustify | table image media codesample", - save_onsavecallback: function () { - Mousetrap.trigger('ctrl+s'); - } - }; - - if (typeof tinymce === 'undefined') { - $.getScript("/tinymce/tinymce.min.js?v=443", function () { - window.tinymce.dom.Event.domLoaded = true; - tinymce.baseURL = "//" + window.location.host + "/tinymce"; - tinymce.suffix = ".min"; + }; + + if (typeof tinymce === 'undefined') { + $.getScript("/tinymce/tinymce.min.js?v=454", function () { + window.tinymce.dom.Event.domLoaded = true; + tinymce.baseURL = "//" + window.location.host + "/tinymce"; + tinymce.suffix = ".min"; + tinymce.init(options); + }); + } else { tinymce.init(options); - }); - } else { - tinymce.init(options); - } + } + }); }, willDestroyElement() { + this._super(...arguments); tinymce.EditorManager.execCommand('mceRemoveEditor', true, this.get('editorId')); }, diff --git a/gui/app/templates/components/section/wysiwyg/type-editor.hbs b/gui/app/templates/components/section/wysiwyg/type-editor.hbs index 46cfda9f..a75100a6 100644 --- a/gui/app/templates/components/section/wysiwyg/type-editor.hbs +++ b/gui/app/templates/components/section/wysiwyg/type-editor.hbs @@ -1,6 +1,7 @@ {{#section/base-editor-inline document=document folder=folder page=page blockMode=blockMode contentLinkerButton=true onInsertLink=(action 'onInsertLink') isDirty=(action 'isDirty') onCancel=(action 'onCancel') onAction=(action 'onAction')}} +
{{{pageBody}}}