filemanager: Prepare for multiselect drag'n'drop but don't use it yet

This commit is contained in:
Johannes Zellner
2021-02-01 19:59:45 +01:00
parent ccd481e64a
commit 567f430b7b

View File

@@ -205,16 +205,28 @@ app.controller('FileManagerController', ['$scope', '$translate', '$timeout', 'Cl
var targetFolder = sanitize($scope.cwd + '/' + (entry && entry.isDirectory ? entry.fileName : ''));
var dataTransfer = event.originalEvent.dataTransfer;
// check if we have internal drag'n'drop
if (dataTransfer.getData('application/cloudron-filemanager')) {
var oldFilePath = sanitize($scope.cwd + '/' + dataTransfer.getData('application/cloudron-filemanager'));
var newFilePath = sanitize(targetFolder + '/' + dataTransfer.getData('application/cloudron-filemanager'));
if ($scope.selected.length === 0) return;
if (oldFilePath === newFilePath) return;
// move files
async.eachLimit($scope.selected, 5, function (entry, callback) {
var newFilePath = sanitize(targetFolder + '/' + entry.fileName);
var oldFilePath = sanitize($scope.cwd + '/' + entry.fileName);
return Client.filesRename($scope.id, $scope.type, oldFilePath, newFilePath, function (error) {
if (newFilePath === oldFilePath) return callback();
// TODO this will overwrite files in destination!
Client.filesRename($scope.id, $scope.type, oldFilePath, newFilePath, callback);
}, function (error) {
if (error) return Client.error(error);
$scope.selected = [];
$scope.refresh();
});
return;
}
// figure if a folder was dropped on a modern browser, in this case the first would have to be a directory