Skip to content
Snippets Groups Projects
Select Git revision
  • 72da3e2e18e53931a8967b32a8e6821c92f01fa9
  • develop default
  • master
  • issue609_stub_nolink
  • hotfix/v2.9.3
  • issue608_journal_tristate
  • hotfix/v2.9.2
  • issue606_global_woes
  • issue299_add_subgroups
  • issue592_student_movement
  • issue606_globaldiscipline_bind
  • issue595_discipline_info
  • issue574_dash_norates
  • issue591_warn_global1c
  • issue593_1cexport_semester
  • issue327_admin_auth
  • issue590_issue_subject
  • issue589_tab_numbers
  • issue583_logaccount_formexport
  • issue584_block_formexport
  • issue527_exam_detached
  • v2.1.5
  • v2.0.3
  • v2.0.2
  • v2.0.1
  • v2.0.0
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v0.9.3
  • v0.9.1
  • v0.9.2
  • v1.03
  • v1.02
  • v1.01
  • v1.0
36 results

dz.js

Blame
  • 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);
            }
        }
    })();