43 lines
850 B
JavaScript
43 lines
850 B
JavaScript
/*global define*/
|
|
define(
|
|
function()
|
|
{
|
|
var signals;
|
|
var reader;
|
|
var feature;
|
|
|
|
function init( shared )
|
|
{
|
|
feature = shared.feature;
|
|
signals = shared.signals;
|
|
|
|
if ( feature['drag-drop' ] && feature['file-api' ] )
|
|
{
|
|
document.addEventListener( 'drop', dropped, false );
|
|
document.addEventListener( 'dragover', preventDefault, false );
|
|
document.addEventListener( 'dragleave', preventDefault, false );
|
|
|
|
reader = new FileReader();
|
|
reader.addEventListener( 'load', fileLoaded, false );
|
|
}
|
|
}
|
|
|
|
function preventDefault( event )
|
|
{
|
|
event.preventDefault();
|
|
}
|
|
|
|
function dropped( event )
|
|
{
|
|
event.preventDefault();
|
|
reader.readAsDataURL( event.dataTransfer.files[0] );
|
|
}
|
|
|
|
function fileLoaded( event )
|
|
{
|
|
signals['set-new-src'].dispatch( event.target.result );
|
|
}
|
|
|
|
return { init: init };
|
|
}
|
|
); |