tChange indentation in dz.js - partage - File upload system
(HTM) git clone git://git.z3bra.org/partage.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit d95545fd40ca9e4433a46741d548547b48d8a165
(DIR) parent ca9d0ce95d7260511ac0706f800e3e13feb86c0c
(HTM) Author: Willy Goiffon <dev@z3bra.org>
Date: Tue, 18 Jan 2022 07:01:58 +0100
Change indentation in dz.js
Diffstat:
M example/static/dz.js | 148 +++++++++++++++++--------------
1 file changed, 79 insertions(+), 69 deletions(-)
---
(DIR) diff --git a/example/static/dz.js b/example/static/dz.js
t@@ -4,85 +4,95 @@
// Only start once the DOM tree is ready
if(document.readyState === "complete") {
- setupzone();
+ setupzone();
} else {
- document.addEventListener("DOMContentLoaded", setupzone);
+ document.addEventListener("DOMContentLoaded", setupzone);
}
function setupzone() {
- let dropzone = document.getElementById("dropzone");
- let fileinput = document.getElementById("filebox");
- let fallbackform = document.getElementById("fallbackform");
+ let dropzone = document.getElementById("dropzone");
+ let fileinput = document.getElementById("filebox");
+ let fallbackform = document.getElementById("fallbackform");
- fallbackform.style.display = "none";
+ fallbackform.style.display = "none";
- dropzone.className = "dropzone";
- dropzone.innerHTML = "Click or drop file(s)";
+ dropzone.className = "dropzone";
+ dropzone.innerHTML = "Click or drop file(s)";
- dropzone.onclick = function() {
- fileinput.click()
+ dropzone.onclick = function() {
+ fileinput.click()
return false;
- }
-
- dropzone.ondragover = function() {
- this.className = "dropzone dragover";
- return false;
- }
-
- dropzone.ondragleave = function() {
- this.className = "dropzone";
- return false;
- }
-
- dropzone.ondrop = function(e) {
- // Stop browser from simply opening that was just dropped
- e.preventDefault();
- // Restore original dropzone appearance
- this.className = "dropzone";
- sendfiles(e.dataTransfer.files)
- }
-
- fileinput.onchange = function(e) {
- sendfiles(this.files)
- }
+ }
+
+ dropzone.ondragover = function() {
+ this.className = "dropzone dragover";
+ return false;
+ }
+
+ dropzone.ondragleave = function() {
+ this.className = "dropzone";
+ return false;
+ }
+
+ dropzone.ondrop = function(e) {
+ // Stop browser from simply opening that was just dropped
+ e.preventDefault();
+ // Restore original dropzone appearance
+ this.className = "dropzone";
+ sendfiles(e.dataTransfer.files)
+ }
+
+ fileinput.onchange = function(e) {
+ sendfiles(this.files)
+ }
}
function sendfiles(files) {
- let uploads = document.getElementById("uploads");
- let progressbar = document.createElement("progress");
- let uploadlist = document.createElement("ul");
- let formData = new FormData(), xhr = new XMLHttpRequest();
-
- uploads.appendChild(progressbar);
- uploads.appendChild(uploadlist);
-
- formData.append("expiry", 10);
- for(let i=0; i < files.length; i++) {
- formData.append("file", files[i]);
- }
-
- // triggers periodically
- xhr.upload.onprogress = function(e) {
- // e.loaded - how many bytes downloaded
- // e.lengthComputable = true if the server sent Content-Length header
- // e.total - total number of bytes (if lengthComputable)
- if (e.lengthComputable) {
- progressbar.max = e.total
+ let uploads = document.getElementById("uploads");
+ let progressbar = document.createElement("progress");
+ let uploadlist = document.createElement("ul");
+ let uploadtext = document.createElement("textarea");
+ let formData = new FormData(), xhr = new XMLHttpRequest();
+
+ // used for clipboard only
+ uploadtext.style.display = "none";
+
+ uploads.appendChild(progressbar);
+ uploads.appendChild(uploadlist);
+ uploads.appendChild(uploadtext);
+
+ formData.append("expiry", 10);
+ for(let i=0; i < files.length; i++) {
+ formData.append("file", files[i]);
+ }
+
+ // triggers periodically
+ xhr.upload.onprogress = function(e) {
+ // e.loaded - how many bytes downloaded
+ // e.lengthComputable = true if the server sent Content-Length header
+ // e.total - total number of bytes (if lengthComputable)
+
}
- progressbar.value = e.loaded
- }
-
- xhr.onreadystatechange = function() {
- if(xhr.readyState === XMLHttpRequest.DONE) {
- progressbar.remove();
- this.response.split(/\r?\n/).forEach(function(link) {
- let li = document.createElement("li");
- li.innerHTML = `<a href="${link}">${link}</a>`;
- uploadlist.appendChild(li);
- });
- }
- }
-
- xhr.open('POST', window.location.href, true); // async = true
- xhr.send(formData);
+
+ xhr.onreadystatechange = function() {
+ if(xhr.readyState === XMLHttpRequest.DONE) {
+ progressbar.remove();
+
+ this.response.split(/\r?\n/).forEach(function(link) {
+ let li = document.createElement("li");
+ li.innerHTML = `<a href="${link}">${link}</a>`;
+ uploadlist.appendChild(li);
+ });
+ let clippy = document.createElement("button");
+ uploads.appendChild(clippy);
+ clippy.innerText = " 📋 copy ";
+ clippy.onclick = function(e) {
+ uploadtext.select();
+ document.execCommand("copy");
+ }
+ }
+ }
+
+ xhr.open('POST', window.location.href, true); // async = true
+ xhr.send(formData);
}