38 lines
824 B
JavaScript
38 lines
824 B
JavaScript
angular.module("robware").directive('dragDrop', function() {
|
|
return {
|
|
restrict: 'A',
|
|
scope: {
|
|
dragDrop:'='
|
|
},
|
|
link: function(scope, element) {
|
|
function handleEvent(e){
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
}
|
|
|
|
element.on('dragover', function(e) {
|
|
handleEvent(e);
|
|
});
|
|
element.on('dragenter', function(e) {
|
|
handleEvent(e);
|
|
$(element).addClass("dragOver");
|
|
});
|
|
element.on('dragleave', function(e) {
|
|
handleEvent(e);
|
|
$(element).removeClass("dragOver");
|
|
});
|
|
element.on('drop', function(e){
|
|
handleEvent(e);
|
|
$(element).removeClass("dragOver");
|
|
|
|
if (e.originalEvent.dataTransfer){
|
|
if (e.originalEvent.dataTransfer.files.length > 0) {
|
|
scope.dragDrop(e.originalEvent.dataTransfer.files);
|
|
scope.$apply();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
};
|
|
});
|
|
|