creator-multi.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* global console:false */
  6. 'use strict';
  7. import CKEDITOR from '/ckeditor.js';
  8. import MultiCreator from '/tests/ckeditor5/creator/manual/_utils/creator/multicreator.js';
  9. import testUtils from '/tests/utils/_utils/utils.js';
  10. let editor, editables, observer;
  11. function initEditor() {
  12. CKEDITOR.create( '.editor', {
  13. creator: MultiCreator,
  14. toolbar: [ 'bold', 'italic' ]
  15. } )
  16. .then( ( newEditor ) => {
  17. console.log( 'Editor was initialized', newEditor );
  18. console.log( 'You can now play with it using global `editor` and `editables` variables.' );
  19. window.editor = editor = newEditor;
  20. window.editables = editables = editor.editables;
  21. const editable1 = editables.get( 'editable1' );
  22. const editable2 = editables.get( 'editable2' );
  23. editable1.toString = editable2.toString = function() {
  24. return `Editable(${ this.name })`;
  25. };
  26. observer = testUtils.createObserver();
  27. observer.observe( 'Editable 1', editable1 );
  28. observer.observe( 'Editable 2', editable2 );
  29. observer.observe( 'EditableCollection', editables );
  30. document.getElementById( 'editorContainer' ).appendChild( editor.ui.view.element );
  31. } );
  32. }
  33. function destroyEditor() {
  34. editor.destroy()
  35. .then( () => {
  36. window.editor = editor = null;
  37. window.editables = editables = null;
  38. observer.stopListening();
  39. observer = null;
  40. document.getElementById( 'editorContainer' ).innerHTML = '';
  41. console.log( 'Editor was destroyed' );
  42. } );
  43. }
  44. document.getElementById( 'initEditor' ).addEventListener( 'click', initEditor );
  45. document.getElementById( 'destroyEditor' ).addEventListener( 'click', destroyEditor );