diff --git a/src/components/filetree.html b/src/components/filetree.html index 82b036909..473daa4ff 100644 --- a/src/components/filetree.html +++ b/src/components/filetree.html @@ -63,14 +63,14 @@ {{ 'filemanager.list.empty' | tr }} - + - {{ entry.fileName }}{{ 'filemanager.list.symlink' | tr:{ target: entry.target } }} - {{ entry.uid | prettyOwner }} - {{ entry.size | prettyByteSize }} - {{ entry.mtime | prettyDate }} + {{ entry.fileName }}{{ 'filemanager.list.symlink' | tr:{ target: entry.target } }} + {{ entry.uid | prettyOwner }} + {{ entry.size | prettyByteSize }} + {{ entry.mtime | prettyDate }} diff --git a/src/components/filetree.js b/src/components/filetree.js index 93a406d1d..8ae38affd 100644 --- a/src/components/filetree.js +++ b/src/components/filetree.js @@ -143,8 +143,8 @@ function FileTreeController($scope, $translate, $timeout, Client) { } $scope.dragStart = function ($event, entry) { - var filePath = sanitize($scope.cwd + '/' + entry.fileName); - $event.originalEvent.dataTransfer.setData('application/cloudron-filemanager', filePath); + var filePaths = $scope.selected.map(function (entry) { return sanitize($scope.cwd + '/' + entry.fileName); }); + $event.originalEvent.dataTransfer.setData('application/cloudron-filemanager', JSON.stringify(filePaths)); }; $scope.dragEnter = function ($event, entry) { @@ -191,11 +191,16 @@ function FileTreeController($scope, $translate, $timeout, Client) { if (dragContent) { var moved = 0; - // FIXME only one currently supported - var arr = [ dragContent ]; + // we expect a JSON.stringified Array here + try { + dragContent = JSON.parse(dragContent); + } catch (e) { + console.error('Wrong drag content.', e); + return; + } // move files - async.eachLimit(arr, 5, function (oldFilePath, callback) { + async.eachLimit(dragContent, 5, function (oldFilePath, callback) { var fileName = oldFilePath.split('/').slice(-1); var newFilePath = sanitize(targetFolder + '/' + fileName);