Add upload progress dialog

This commit is contained in:
Johannes Zellner
2020-07-10 19:10:29 +02:00
parent 4564e501d3
commit 779c3ba75b
4 changed files with 66 additions and 18 deletions

View File

@@ -94,7 +94,9 @@ app.controller('FileManagerController', ['$scope', 'Client', function ($scope, C
$scope.uploadStatus = {
busy: false,
fileName: '',
count: 0,
countDone: 0,
size: 0,
done: 0,
percentDone: 0
@@ -103,8 +105,15 @@ app.controller('FileManagerController', ['$scope', 'Client', function ($scope, C
function uploadFiles(files) {
if (!files || !files.length) return;
// prevent it from getting closed
$('#uploadModal').modal({
backdrop: 'static',
keyboard: false
});
$scope.uploadStatus.busy = true;
$scope.uploadStatus.count = files.length;
$scope.uploadStatus.countDone = 0;
$scope.uploadStatus.size = 0;
$scope.uploadStatus.done = 0;
$scope.uploadStatus.percentDone = 0;
@@ -114,16 +123,28 @@ app.controller('FileManagerController', ['$scope', 'Client', function ($scope, C
}
async.eachSeries(files, function (file, callback) {
$scope.uploadStatus.done += file.size;
$scope.uploadStatus.percentDone = $scope.uploadStatus.done * 100 / $scope.uploadStatus.size;
var filePath = sanitize($scope.cwd + '/' + (file.webkitRelativePath || file.name));
Client.filesUpload($scope.appId, filePath, file, callback);
$scope.uploadStatus.fileName = file.name;
Client.filesUpload($scope.appId, filePath, file, function (loaded) {
$scope.uploadStatus.percentDone = ($scope.uploadStatus.done+loaded) * 100 / $scope.uploadStatus.size;
}, function (error) {
if (error) return callback(error);
$scope.uploadStatus.done += file.size;
$scope.uploadStatus.percentDone = $scope.uploadStatus.done * 100 / $scope.uploadStatus.size;
$scope.uploadStatus.countDone++;
callback();
});
}, function (error) {
if (error) console.error(error);
$('#uploadModal').modal('hide');
$scope.uploadStatus.busy = false;
$scope.uploadStatus.fileName = '';
$scope.uploadStatus.count = 0;
$scope.uploadStatus.size = 0;
$scope.uploadStatus.done = 0;