summaryrefslogtreecommitdiff
path: root/share/static/js/receive.js
blob: 8047f987922496248c836aa4dcad536f9684c0a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var form = document.getElementById('send');
var fileSelect = document.getElementById('file-select');
var uploadButton = document.getElementById('send-button');

form.onsubmit = function(event) {
  event.preventDefault();

  // Disable button, and update text
  uploadButton.disabled = true;
  uploadButton.innerHTML = 'Uploading ...';

  // Create form data
  var files = fileSelect.files;
  var formData = new FormData();
  for (var i = 0; i < files.length; i++) {
    var file = files[i];
    formData.append('file[]', file, file.name);
  }

  // Set up the request
  var ajax = new XMLHttpRequest();

  ajax.upload.addEventListener('progress', function(event){
    console.log('upload progress', 'uploaded '+event.loaded+' bytes / '+event.total+' bytes');
    var percent = Math.ceil(event.loaded / event.total) * 100;
    uploadButton.innerHTML = 'Uploading '+percent+'%';
  }, false);

  ajax.addEventListener("load", function(event){
    console.log("upload finished");
    if(ajax.status == 200) {
      // Re-enable button, and update text
      uploadButton.innerHTML = 'Send Files';
      uploadButton.disabled = false;
    }
  }, false);

	ajax.addEventListener("error", function(event){
    console.log('error', event);
  }, false);

  ajax.addEventListener("abort", function(event){
    console.log('abort', event);
  }, false);

  // Send the request
  ajax.open('POST', window.location.pathname + '/upload', true);
  ajax.send(formData);
  console.log("upload started");
}