upload.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. var maxSize = '512';
  2. var xhr = new XMLHttpRequest();
  3. xhr.onreadystatechange = function() {
  4. if (xhr.readyState == XMLHttpRequest.DONE) {
  5. if(xhr.responseText !== 'not-authorized'){
  6. document.getElementById('btnGithub').style.display = 'none';
  7. document.getElementById('dropzone').style.display = 'flex';
  8. }
  9. if(xhr.responseText.maxFileSize)
  10. maxSize = xhr.responseText.maxFileSize;
  11. }
  12. }
  13. xhr.open('GET', '/api/info', true);
  14. xhr.send(null);
  15. window.onload = function () {
  16. var previewNode = document.querySelector("#template");
  17. previewNode.id = "";
  18. var previewTemplate = previewNode.parentNode.innerHTML;
  19. previewNode.parentNode.removeChild(previewNode);
  20. var dropzone = new Dropzone('div#dropzone', {
  21. url: '/api/upload',
  22. paramName: 'file',
  23. maxFilesize: maxSize,
  24. parallelUploads: 2,
  25. uploadMultiple: false,
  26. previewsContainer: 'div#uploads',
  27. previewTemplate: previewTemplate,
  28. createImageThumbnails: false,
  29. maxFiles: 1000,
  30. autoProcessQueue: true
  31. });
  32. // Update the total progress bar
  33. dropzone.on("uploadprogress", function(file, progress) {
  34. file.previewElement.querySelector(".progress").style.width = progress + "%";
  35. });
  36. dropzone.on("success", function(file, response) {
  37. // Handle the responseText here. For example, add the text to the preview element:
  38. a = document.createElement('a');
  39. a.href = response.url;
  40. a.target = '_blank';
  41. a.innerHTML = response.filename;
  42. file.previewTemplate.querySelector(".progress").style.display = 'none';
  43. file.previewTemplate.querySelector(".link").appendChild(a);
  44. });
  45. };