8
0
Просмотр исходного кода

Merge branch 'master' into t/245

Piotrek Koszuliński 7 лет назад
Родитель
Сommit
5a9c3b6151

+ 1 - 1
packages/ckeditor5-image/docs/_snippets/features/image-caption.js

@@ -14,7 +14,7 @@ ClassicEditor
 			toolbar: [ 'imageTextAlternative' ]
 		},
 		toolbar: {
-			viewportTopOffset: 100
+			viewportTopOffset: window.getViewportTopOffsetConfig()
 		},
 		cloudServices: CS_CONFIG
 	} )

+ 1 - 1
packages/ckeditor5-image/docs/_snippets/features/image-style-custom.js

@@ -24,7 +24,7 @@ ClassicEditor
 			toolbar: [ 'imageTextAlternative', '|', 'imageStyle:alignLeft', 'imageStyle:full', 'imageStyle:alignRight' ]
 		},
 		toolbar: {
-			viewportTopOffset: 100
+			viewportTopOffset: window.getViewportTopOffsetConfig()
 		},
 		cloudServices: CS_CONFIG
 	} )

+ 1 - 1
packages/ckeditor5-image/docs/_snippets/features/image-style.js

@@ -10,7 +10,7 @@ import { CS_CONFIG } from '@ckeditor/ckeditor5-cloud-services/tests/_utils/cloud
 ClassicEditor
 	.create( document.querySelector( '#snippet-image-style' ), {
 		toolbar: {
-			viewportTopOffset: 100
+			viewportTopOffset: window.getViewportTopOffsetConfig()
 		},
 		cloudServices: CS_CONFIG
 	} )

+ 1 - 1
packages/ckeditor5-image/docs/_snippets/features/image-toolbar.js

@@ -14,7 +14,7 @@ ClassicEditor
 			toolbar: [ 'imageTextAlternative' ]
 		},
 		toolbar: {
-			viewportTopOffset: 100
+			viewportTopOffset: window.getViewportTopOffsetConfig()
 		},
 		cloudServices: CS_CONFIG
 	} )

+ 1 - 1
packages/ckeditor5-image/docs/_snippets/features/image.js

@@ -11,7 +11,7 @@ ClassicEditor
 	.create( document.querySelector( '#snippet-image' ), {
 		removePlugins: [ 'ImageToolbar', 'ImageCaption', 'ImageStyle' ],
 		toolbar: {
-			viewportTopOffset: 100
+			viewportTopOffset: window.getViewportTopOffsetConfig()
 		},
 		cloudServices: CS_CONFIG
 	} )

+ 8 - 1
packages/ckeditor5-image/src/imageupload/imageuploadediting.js

@@ -55,7 +55,14 @@ export default class ImageUploadEditing extends Plugin {
 				return;
 			}
 
-			const images = Array.from( data.dataTransfer.files ).filter( isImageType );
+			const images = Array.from( data.dataTransfer.files ).filter( file => {
+				// See https://github.com/ckeditor/ckeditor5-image/pull/254.
+				if ( !file ) {
+					return false;
+				}
+
+				return isImageType( file );
+			} );
 
 			const ranges = data.targetRanges.map( viewRange => editor.editing.mapper.toModelRange( viewRange ) );
 

+ 14 - 0
packages/ckeditor5-image/tests/imageupload/imageuploadediting.js

@@ -197,6 +197,20 @@ describe( 'ImageUploadEditing', () => {
 		expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph>' );
 	} );
 
+	it( 'should not insert image when file is null', () => {
+		const viewDocument = editor.editing.view.document;
+		const dataTransfer = new DataTransfer( { files: [ null ], types: [ 'Files' ] } );
+
+		setModelData( model, '<paragraph>foo[]</paragraph>' );
+
+		const targetRange = doc.selection.getFirstRange();
+		const targetViewRange = editor.editing.mapper.toViewRange( targetRange );
+
+		viewDocument.fire( 'clipboardInput', { dataTransfer, targetRanges: [ targetViewRange ] } );
+
+		expect( getModelData( model ) ).to.equal( '<paragraph>foo[]</paragraph>' );
+	} );
+
 	it( 'should not insert image when there is non-empty HTML content pasted', () => {
 		const fileMock = createNativeFileMock();
 		const dataTransfer = new DataTransfer( {

+ 1 - 1
packages/ckeditor5-image/tests/manual/imagestyle.js

@@ -56,7 +56,7 @@ ClassicEditor
 		],
 		toolbar: [ 'heading', '|', 'undo', 'redo' ],
 		image: {
-			styles: [ 'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight' ],
+			styles: [ 'alignLeft', 'alignCenter', 'alignRight' ],
 			toolbar: [ 'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight' ]
 		}
 	} )

+ 3 - 1
packages/ckeditor5-image/tests/manual/imageupload.js

@@ -3,7 +3,7 @@
  * For licensing, see LICENSE.md.
  */
 
-/* globals document, console */
+/* globals window, document, console */
 
 import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
 import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';
@@ -36,6 +36,8 @@ ClassicEditor
 		}
 	} )
 	.then( editor => {
+		window.editor = editor;
+
 		// Register fake adapter.
 		editor.plugins.get( 'FileRepository' ).createUploadAdapter = loader => {
 			const adapterMock = new UploadAdapterMock( loader );

+ 1 - 1
packages/ckeditor5-image/theme/icons/image_placeholder.svg

@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 250"><g fill="#FAFAFA" fill-rule="evenodd"><rect width="700" height="250" rx="4"/></g></svg>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 250"><rect rx="4"/></svg>

+ 3 - 0
packages/ckeditor5-image/theme/image.css

@@ -7,6 +7,9 @@
 	clear: both;
 	text-align: center;
 
+	/* Make sure there is some space between the content and the image. */
+	margin: 1em 0;
+
 	& > img {
 		/* Prevent unnecessary margins caused by line-height (see #44). */
 		display: block;