Something went wrong on our end
Select Git revision
Forked from
it-lab / grade
Source project has a limited visibility.
dz.js 1.76 KiB
var Dropzone = (function () {
var $dropzone, readerClbks = [];
var handlerOf = {
dragOver: function (e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
$dropzone.addClass('hover');
},
dragLeave: function (e) {
$dropzone.removeClass('hover');
},
dragDrop: function (e) {
e.stopPropagation();
e.preventDefault();
$dropzone.removeClass('hover');
processFiles(e.dataTransfer.files);
},
fileSelect: function (evt) {
processFiles(evt.target.files);
}
};
function processFiles(files) {
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
reader.onload = (function (file) {
return function (e) {
readerClbks.forEach(function (callback) {
callback(file, e.target.result);
});
};
})(f);
reader.readAsText(f);
}
}
return {
init: function (listeners) {
readerClbks = listeners || [];
var $input = document.getElementById('files');
$input.addEventListener('change', handlerOf.fileSelect, false);
$dropzone = document.getElementsByClassName('b-dropzone')[0];
$dropzone.addEventListener('dragover', handlerOf.dragOver, false);
$dropzone.addEventListener('dragleave', handlerOf.dragLeave, false);
$dropzone.addEventListener('drop', handlerOf.dragDrop, false);
$dropzone.addEventListener('click', function () {
$input.click();
}, false);
}
}
})();