From ecfbca9fd86e73ab6ae949e49578906ceda12a5b Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 15 Nov 2016 16:56:03 +0100 Subject: [PATCH] Support multifile upload via the webinterface --- app/index.html | 2 +- app/js/app.js | 33 ++++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/index.html b/app/index.html index b1c7da6..80f9bdd 100644 --- a/app/index.html +++ b/app/index.html @@ -108,7 +108,7 @@
- +
diff --git a/app/js/app.js b/app/js/app.js index 739e9b1..9a2e532 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -129,21 +129,32 @@ function upload() { // detach event handler $(app.$els.upload).off('change'); - var file = app.$els.upload.files[0]; - var path = encode(sanitize(app.path + '/' + file.name)); + var length = app.$els.upload.files.length; + var done = 0; - var formData = new FormData(); - formData.append('file', file); + function uploadFile(file) { + var path = encode(sanitize(app.path + '/' + file.name)); - superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password }).send(formData).end(function (error, result) { - app.busy = false; + var formData = new FormData(); + formData.append('file', file); - if (result && result.statusCode === 401) return logout(); - if (result && result.statusCode !== 201) return console.error('Error uploading file: ', result.statusCode); - if (error) return console.error(error); + superagent.put('/api/files' + path).query({ username: app.session.username, password: app.session.password }).send(formData).end(function (error, result) { + if (result && result.statusCode === 401) return logout(); + if (result && result.statusCode !== 201) console.error('Error uploading file: ', result.statusCode); + if (error) console.error(error); - refresh(); - }); + ++done; + + if (done >= length) { + app.busy = false; + refresh(); + } + }); + } + + for(var i = 0; i < length; i++) { + uploadFile(app.$els.upload.files[i]); + } }); // reset the form first to make the change handler retrigger even on the same file selected -- 2.41.0