From: Dan Brown Date: Wed, 9 Mar 2022 14:29:03 +0000 (+0000) Subject: Merge pull request #3298 from BookStackApp/wysiwyg_links X-Git-Tag: v22.03~1^2~19 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/fd26f54b9954cc2a44d9f5f71e4258decf90558e?ds=inline;hp=-c Merge pull request #3298 from BookStackApp/wysiwyg_links WYSIWYG editor link updates --- fd26f54b9954cc2a44d9f5f71e4258decf90558e diff --combined resources/js/wysiwyg/config.js index 692c5bce6,2da1e2c98..965b14d08 --- a/resources/js/wysiwyg/config.js +++ b/resources/js/wysiwyg/config.js @@@ -2,6 -2,7 +2,7 @@@ import {register as registerShortcuts} import {listen as listenForCommonEvents} from "./common-events"; import {scrollToQueryString} from "./scrolling"; import {listenForDragAndPaste} from "./drop-paste-handling"; + import {getPrimaryToolbar, registerAdditionalToolbars} from "./toolbars"; import {getPlugin as getCodeeditorPlugin} from "./plugin-codeeditor"; import {getPlugin as getDrawioPlugin} from "./plugin-drawio"; @@@ -58,48 -59,6 +59,6 @@@ function file_picker_callback(callback } - /** - * @param {WysiwygConfigOptions} options - * @return {{toolbar: string, groupButtons: Object}} - */ - function buildToolbar(options) { - const textDirPlugins = options.textDirection === 'rtl' ? 'ltr rtl' : ''; - - const groupButtons = { - formatoverflow: { - icon: 'more-drawer', - tooltip: 'More', - items: 'strikethrough superscript subscript inlinecode removeformat' - }, - listoverflow: { - icon: 'more-drawer', - tooltip: 'More', - items: 'outdent indent' - }, - insertoverflow: { - icon: 'more-drawer', - tooltip: 'More', - items: 'hr codeeditor drawio media details' - } - }; - - const toolbar = [ - 'undo redo', - 'styleselect', - 'bold italic underline forecolor backcolor formatoverflow', - 'alignleft aligncenter alignright alignjustify', - 'bullist numlist listoverflow', - textDirPlugins, - 'link table imagemanager-insert insertoverflow', - 'code about fullscreen' - ]; - - return { - toolbar: toolbar.filter(row => Boolean(row)).join(' | '), - groupButtons, - }; - } - /** * @param {WysiwygConfigOptions} options * @return {string} @@@ -218,18 -177,12 +177,16 @@@ export function build(options) // Set language window.tinymce.addI18n(options.language, options.translationMap); - // Build toolbar content - const {toolbar, groupButtons: toolBarGroupButtons} = buildToolbar(options); + // BookStack Version + const version = document.querySelector('script[src*="/dist/app.js"]').getAttribute('src').split('?version=')[1]; + // Return config object return { width: '100%', height: '100%', selector: '#html-editor', + cache_suffix: '?version=' + version, content_css: [ window.baseUrl('/dist/styles.css'), ], @@@ -243,7 -196,6 +200,7 @@@ remove_script_host: false, document_base_url: window.baseUrl('/'), end_container_on_empty_block: true, + remove_trailing_brs: false, statusbar: false, menubar: false, paste_data_images: false, @@@ -261,7 -213,7 +218,7 @@@ plugins: gatherPlugins(options), imagetools_toolbar: 'imageoptions', contextmenu: false, - toolbar: toolbar, + toolbar: getPrimaryToolbar(options), content_style: getContentStyle(options), style_formats, style_formats_merge: false, @@@ -281,9 -233,7 +238,7 @@@ head.innerHTML += fetchCustomHeadContent(); }, setup(editor) { - for (const [key, config] of Object.entries(toolBarGroupButtons)) { - editor.ui.registry.addGroupToolbarButton(key, config); - } + registerAdditionalToolbars(editor, options); getSetupCallback(options)(editor); }, };