electorrent
Version:
An Electron/Node/AngularJS remote client app for uTorrent server
53 lines (37 loc) • 1.48 kB
JavaScript
angular.module("torrentApp").directive('dragAndDrop', ['$rootScope', '$document', 'electron', function($rootScope, $document, electron) {
return function(scope, element /*, attrs*/) {
var dragging = 0;
document.ondragover = document.ondrop = function(event) {
event.preventDefault()
}
element.bind('click', function() {
dragging = 0;
$rootScope.$emit('show:draganddrop', false);
});
element.bind('dragenter', function(event /*, data*/) {
dragging++;
$rootScope.$emit('show:draganddrop', true);
event.stopPropagation();
event.preventDefault();
return false;
})
element.bind('dragleave', function (event /*, data*/) {
dragging--;
if (dragging === 0) {
$rootScope.$emit('show:draganddrop', false);
}
event.stopPropagation();
event.preventDefault();
return false;
})
element.bind('drop', function(event /*, data*/) {
var files = event.originalEvent.dataTransfer.files;
var paths = [];
for (var i = 0; i < files.length; i++) {
paths.push(files.item(i).path);
}
electron.torrents.readFiles(paths);
$rootScope.$emit('show:draganddrop', false);
});
}
}]);