arnaucube
arnaucube/comunicationLeapPublic Self-hosted repository
comunicationLeap/node_modules/ws/examples/fileapi/public/app.js
node_modules/ws/examples/fileapi/public/app.jsRaw
 1function onFilesSelected(e) {
 2  var button = e.srcElement;
 3  button.disabled = true;
 4  var progress = document.querySelector('div#progress');
 5  progress.innerHTML = '0%';
 6  var files = e.target.files;
 7  var totalFiles = files.length;
 8  var filesSent = 0;
 9  if (totalFiles) {
10    var uploader = new Uploader('ws://localhost:8080', function () {
11      Array.prototype.slice.call(files, 0).forEach(function(file) {
12        if (file.name == '.') {
13          --totalFiles;
14          return;
15        }
16        uploader.sendFile(file, function(error) {
17          if (error) {
18            console.log(error);
19            return;
20          }
21          ++filesSent;
22          progress.innerHTML = ~~(filesSent / totalFiles * 100) + '%';
23          console.log('Sent: ' + file.name);
24        });
25      });
26    });
27  }
28  uploader.ondone = function() {
29    uploader.close();
30    progress.innerHTML = '100% done, ' + totalFiles + ' files sent.';
31  }
32}
33
34window.onload = function() {
35  var importButtons = document.querySelectorAll('[type="file"]');
36  Array.prototype.slice.call(importButtons, 0).forEach(function(importButton) {
37    importButton.addEventListener('change', onFilesSelected, false);
38  });
39}