Implement file upload

This commit is contained in:
Johannes Zellner
2020-07-09 15:59:06 +02:00
parent afc90817cf
commit 049a488e08
3 changed files with 53 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
'use strict';
/* global angular, $ */
/* global angular, $, async */
// create main application module
var app = angular.module('Application', ['angular-md5', 'ui-notification']);
@@ -82,6 +82,54 @@ app.controller('FileManagerController', ['$scope', 'Client', function ($scope, C
$scope.refresh();
}
$scope.uploadStatus = {
busy: false,
count: 0,
size: 0,
done: 0,
percentDone: 0
};
function uploadFiles(files) {
if (!files || !files.length) return;
$scope.uploadStatus.busy = true;
$scope.uploadStatus.count = files.length;
$scope.uploadStatus.size = 0;
$scope.uploadStatus.done = 0;
$scope.uploadStatus.percentDone = 0;
for (var i = 0; i < files.length; ++i) {
$scope.uploadStatus.size += files[i].size;
}
async.eachSeries(files, function (file, callback) {
var finishedUploadSize = $scope.uploadStatus.done;
var filePath = sanitize($scope.cwd + '/' + (file.webkitRelativePath || file.name));
Client.filesUpload($scope.appId, filePath, file, callback);
}, function (error) {
if (error) console.error(error);
$scope.uploadStatus.busy = false;
$scope.uploadStatus.count = 0;
$scope.uploadStatus.size = 0;
$scope.uploadStatus.done = 0;
$scope.uploadStatus.percentDone = 100;
$scope.refresh();
});
}
$('#uploadFileInput').on('change', function (e) {
uploadFiles(e.target.files || []);
});
$scope.uploadFile = function () {
$('#uploadFileInput').click();
};
$scope.newDirectory = {
busy: false,
error: null,