aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/js
diff options
context:
space:
mode:
authorJohannes Zellner <johannes@cloudron.io>2017-02-05 08:21:02 -0800
committerJohannes Zellner <johannes@cloudron.io>2017-02-05 08:21:02 -0800
commitfea6789c72b7ef5b69281d8866f4ae0475135d4a (patch)
tree34956c830d65ef36a10a6ecb6b866ac3e8956dfd /frontend/js
parent74c0064c7dca1c0a96eef4962adb6cd61f33ec6c (diff)
downloadSurfer-fea6789c72b7ef5b69281d8866f4ae0475135d4a.tar.gz
Surfer-fea6789c72b7ef5b69281d8866f4ae0475135d4a.tar.zst
Surfer-fea6789c72b7ef5b69281d8866f4ae0475135d4a.zip
Show upload progress per files
Diffstat (limited to 'frontend/js')
-rw-r--r--frontend/js/app.js32
1 files changed, 25 insertions, 7 deletions
diff --git a/frontend/js/app.js b/frontend/js/app.js
index 9a2e532..e0464f8 100644
--- a/frontend/js/app.js
+++ b/frontend/js/app.js
@@ -124,13 +124,16 @@ function up() {
124 124
125function upload() { 125function upload() {
126 $(app.$els.upload).on('change', function () { 126 $(app.$els.upload).on('change', function () {
127 app.busy = true;
128 127
129 // detach event handler 128 // detach event handler
130 $(app.$els.upload).off('change'); 129 $(app.$els.upload).off('change');
131 130
132 var length = app.$els.upload.files.length; 131 app.uploadStatus = {
133 var done = 0; 132 busy: true,
133 count: app.$els.upload.files.length,
134 done: 0,
135 percentDone: 0
136 };
134 137
135 function uploadFile(file) { 138 function uploadFile(file) {
136 var path = encode(sanitize(app.path + '/' + file.name)); 139 var path = encode(sanitize(app.path + '/' + file.name));
@@ -143,16 +146,25 @@ function upload() {
143 if (result && result.statusCode !== 201) console.error('Error uploading file: ', result.statusCode); 146 if (result && result.statusCode !== 201) console.error('Error uploading file: ', result.statusCode);
144 if (error) console.error(error); 147 if (error) console.error(error);
145 148
146 ++done; 149 app.uploadStatus.done += 1;
150 app.uploadStatus.percentDone = Math.round(app.uploadStatus.done / app.uploadStatus.count * 100);
151
152 console.log(Math.round(app.uploadStatus.done / app.uploadStatus.count * 100))
153
154 if (app.uploadStatus.done >= app.uploadStatus.count) {
155 app.uploadStatus = {
156 busy: false,
157 count: 0,
158 done: 0,
159 percentDone: 100
160 };
147 161
148 if (done >= length) {
149 app.busy = false;
150 refresh(); 162 refresh();
151 } 163 }
152 }); 164 });
153 } 165 }
154 166
155 for(var i = 0; i < length; i++) { 167 for(var i = 0; i < app.uploadStatus.count; ++i) {
156 uploadFile(app.$els.upload.files[i]); 168 uploadFile(app.$els.upload.files[i]);
157 } 169 }
158 }); 170 });
@@ -233,6 +245,12 @@ var app = new Vue({
233 el: '#app', 245 el: '#app',
234 data: { 246 data: {
235 busy: true, 247 busy: true,
248 uploadStatus: {
249 busy: false,
250 count: 0,
251 done: 0,
252 percentDone: 50
253 },
236 path: '/', 254 path: '/',
237 pathParts: [], 255 pathParts: [],
238 session: { 256 session: {