egroupware/phpgwapi/js/ckeditor/plugins/uploadwidget/dev/filereaderplugin.js

56 lines
1.4 KiB
JavaScript
Raw Normal View History

/**
* @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
'use strict';
( function() {
CKEDITOR.plugins.add( 'filereader', {
requires: 'uploadwidget',
init: function( editor ) {
var fileTools = CKEDITOR.fileTools;
fileTools.addUploadWidget( editor, 'filereader', {
onLoaded: function( upload ) {
var data = upload.data;
if ( data && data.indexOf( ',' ) >= 0 && data.indexOf( ',' ) < data.length - 1 ) {
this.replaceWith( atob( upload.data.split( ',' )[ 1 ] ) );
} else {
editor.widgets.del( this );
}
}
} );
editor.on( 'paste', function( evt ) {
var data = evt.data,
dataTransfer = data.dataTransfer,
filesCount = dataTransfer.getFilesCount(),
file, i;
if ( data.dataValue || !filesCount ) {
return;
}
for ( i = 0; i < filesCount; i++ ) {
file = dataTransfer.getFile( i );
if ( fileTools.isTypeSupported( file, /text\/(plain|html)/ ) ) {
var el = new CKEDITOR.dom.element( 'span' ),
loader = editor.uploadRepository.create( file );
el.setText( '...' );
loader.load();
fileTools.markElement( el, 'filereader', loader.id );
fileTools.bindNotifications( editor, loader );
data.dataValue += el.getOuterHtml();
}
}
} );
}
} );
} )();