浏览代码

Merge branch 'master' into t/ckeditor5/742

Piotrek Koszuliński 7 年之前
父节点
当前提交
4f4ac4a463

+ 2 - 2
packages/ckeditor5-image/src/imageupload/imageuploadprogress.js

@@ -60,12 +60,12 @@ export default class ImageUploadProgress extends Plugin {
 		const modelImage = data.item;
 		const uploadId = modelImage.getAttribute( 'uploadId' );
 
-		if ( !conversionApi.consumable.consume( data.item, evt.name ) || !uploadId ) {
+		if ( !conversionApi.consumable.consume( data.item, evt.name ) ) {
 			return;
 		}
 
 		const fileRepository = editor.plugins.get( FileRepository );
-		const status = data.attributeNewValue;
+		const status = uploadId ? data.attributeNewValue : null;
 		const placeholder = this.placeholder;
 		const viewFigure = editor.editing.mapper.toViewElement( modelImage );
 		const viewWriter = conversionApi.writer;

+ 22 - 0
packages/ckeditor5-image/tests/imageupload/imageuploadprogress.js

@@ -137,6 +137,28 @@ describe( 'ImageUploadProgress', () => {
 		);
 	} );
 
+	it( 'should "clear" image when uploadId changes to null', () => {
+		setModelData( model, '<image></image>' );
+		const image = document.getRoot().getChild( 0 );
+
+		// Set attributes directly on image to simulate instant "uploading" status.
+		model.change( writer => {
+			writer.setAttribute( 'uploadStatus', 'uploading', image );
+			writer.setAttribute( 'uploadId', '12345', image );
+		} );
+
+		model.change( writer => {
+			writer.setAttribute( 'uploadStatus', null, image );
+			writer.setAttribute( 'uploadId', null, image );
+		} );
+
+		expect( getViewData( view ) ).to.equal(
+			'[<figure class="ck ck-widget image" contenteditable="false">' +
+			`<img src="data:image/svg+xml;utf8,${ imagePlaceholder }"></img>` +
+			'</figure>]'
+		);
+	} );
+
 	it( 'should update progressbar width on progress', done => {
 		setModelData( model, '<paragraph>[]foo</paragraph>' );
 		editor.execute( 'imageUpload', { file: createNativeFileMock() } );