|
|
@@ -0,0 +1,69 @@
|
|
|
+/**
|
|
|
+ * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
|
|
|
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
|
+ */
|
|
|
+
|
|
|
+/* globals window, document */
|
|
|
+
|
|
|
+import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
|
|
|
+import ArticlePluginSet from '@ckeditor/ckeditor5-core/tests/_utils/articlepluginset';
|
|
|
+import Table from '@ckeditor/ckeditor5-table/src/table';
|
|
|
+
|
|
|
+import StandardEditingMode from '../../src/standardeditingmode';
|
|
|
+import RestrictedEditingMode from '../../src/restrictededitingmode';
|
|
|
+
|
|
|
+const restrictedModeButton = document.getElementById( 'mode-restricted' );
|
|
|
+const standardModeButton = document.getElementById( 'mode-standard' );
|
|
|
+
|
|
|
+restrictedModeButton.addEventListener( 'change', handleModeChange );
|
|
|
+standardModeButton.addEventListener( 'change', handleModeChange );
|
|
|
+
|
|
|
+startMode( document.querySelector( 'input[name="mode"]:checked' ).value );
|
|
|
+
|
|
|
+async function handleModeChange( evt ) {
|
|
|
+ await startMode( evt.target.value );
|
|
|
+}
|
|
|
+
|
|
|
+async function startMode( selectedMode ) {
|
|
|
+ if ( selectedMode === 'standard' ) {
|
|
|
+ await startStandardEditingMode();
|
|
|
+ } else {
|
|
|
+ await startRestrictedEditingMode();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+async function startStandardEditingMode() {
|
|
|
+ await reloadEditor( {
|
|
|
+ plugins: [ ArticlePluginSet, Table, StandardEditingMode ],
|
|
|
+ toolbar: [
|
|
|
+ 'heading', '|', 'bold', 'italic', 'link', '|',
|
|
|
+ 'bulletedList', 'numberedList', 'blockQuote', 'insertTable', '|',
|
|
|
+ 'restrictedEditingException', '|', 'undo', 'redo'
|
|
|
+ ],
|
|
|
+ image: {
|
|
|
+ toolbar: [ 'imageStyle:full', 'imageStyle:side', '|', 'imageTextAlternative' ]
|
|
|
+ },
|
|
|
+ table: {
|
|
|
+ contentToolbar: [
|
|
|
+ 'tableColumn',
|
|
|
+ 'tableRow',
|
|
|
+ 'mergeTableCells'
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ } );
|
|
|
+}
|
|
|
+
|
|
|
+async function startRestrictedEditingMode() {
|
|
|
+ await reloadEditor( {
|
|
|
+ plugins: [ ArticlePluginSet, Table, RestrictedEditingMode ],
|
|
|
+ toolbar: [ 'bold', 'italic', 'link', '|', 'restrictedEditing', '|', 'undo', 'redo' ]
|
|
|
+ } );
|
|
|
+}
|
|
|
+
|
|
|
+async function reloadEditor( config ) {
|
|
|
+ if ( window.editor ) {
|
|
|
+ await window.editor.destroy();
|
|
|
+ }
|
|
|
+
|
|
|
+ window.editor = await ClassicEditor.create( document.querySelector( '#editor' ), config );
|
|
|
+}
|