Implement file upload
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user