]> BookStack Code Mirror - bookstack/commitdiff
Merge pull request #3298 from BookStackApp/wysiwyg_links
authorDan Brown <redacted>
Wed, 9 Mar 2022 14:29:03 +0000 (14:29 +0000)
committerGitHub <redacted>
Wed, 9 Mar 2022 14:29:03 +0000 (14:29 +0000)
WYSIWYG editor link updates

1  2 
resources/js/wysiwyg/config.js

index 692c5bce647c2f64fa41be87ca04e88ab4f91af4,2da1e2c989d704bb8961bc330494b66c360c47a7..965b14d083699d6c5bb1ce6adb1b38c3eeee4ea2
@@@ -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<string, 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'),
          ],
          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,
          plugins: gatherPlugins(options),
          imagetools_toolbar: 'imageoptions',
          contextmenu: false,
-         toolbar: toolbar,
+         toolbar: getPrimaryToolbar(options),
          content_style: getContentStyle(options),
          style_formats,
          style_formats_merge: false,
              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);
          },
      };