Changeset 56 in code for trunk/example/static


Ignore:
Timestamp:
Jan 18, 2022, 6:01:58 AM (3 years ago)
Author:
dev
Message:

Change indentation in dz.js

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/example/static/dz.js

    r50 r56  
    55// Only start once the DOM tree is ready
    66if(document.readyState === "complete") {
    7     setupzone();
     7        setupzone();
    88} else {
    9     document.addEventListener("DOMContentLoaded", setupzone);
     9        document.addEventListener("DOMContentLoaded", setupzone);
    1010}
    1111
    1212function setupzone() {
    13     let dropzone = document.getElementById("dropzone");
    14     let fileinput = document.getElementById("filebox");
    15     let fallbackform = document.getElementById("fallbackform");
     13        let dropzone = document.getElementById("dropzone");
     14        let fileinput = document.getElementById("filebox");
     15        let fallbackform = document.getElementById("fallbackform");
    1616
    17     fallbackform.style.display = "none";
     17        fallbackform.style.display = "none";
    1818
    19     dropzone.className = "dropzone";
    20     dropzone.innerHTML = "Click or drop file(s)";
     19        dropzone.className = "dropzone";
     20        dropzone.innerHTML = "Click or drop file(s)";
    2121
    22     dropzone.onclick = function() {
    23         fileinput.click()
     22        dropzone.onclick = function() {
     23                fileinput.click()
    2424        return false;
    25     }
     25        }
    2626
    27     dropzone.ondragover = function() {
    28         this.className = "dropzone dragover";
    29         return false;
    30     }
    31    
    32     dropzone.ondragleave = function() {
    33         this.className = "dropzone";
    34         return false;
    35     }
     27        dropzone.ondragover = function() {
     28                this.className = "dropzone dragover";
     29                return false;
     30        }
    3631
    37     dropzone.ondrop = function(e) {
    38         // Stop browser from simply opening that was just dropped
    39         e.preventDefault(); 
    40         // Restore original dropzone appearance
    41         this.className = "dropzone";
    42         sendfiles(e.dataTransfer.files)
    43     }
     32        dropzone.ondragleave = function() {
     33                this.className = "dropzone";
     34                return false;
     35        }
    4436
    45     fileinput.onchange = function(e) {
    46         sendfiles(this.files)
    47     }
     37        dropzone.ondrop = function(e) {
     38                // Stop browser from simply opening that was just dropped
     39                e.preventDefault();
     40                // Restore original dropzone appearance
     41                this.className = "dropzone";
     42                sendfiles(e.dataTransfer.files)
     43        }
     44
     45        fileinput.onchange = function(e) {
     46                sendfiles(this.files)
     47        }
    4848}
    4949
    5050function sendfiles(files) {
    51     let uploads = document.getElementById("uploads");
    52     let progressbar = document.createElement("progress");
    53     let uploadlist = document.createElement("ul");
    54     let formData = new FormData(), xhr = new XMLHttpRequest();
     51        let uploads = document.getElementById("uploads");
     52        let progressbar = document.createElement("progress");
     53        let uploadlist = document.createElement("ul");
     54        let uploadtext = document.createElement("textarea");
     55        let formData = new FormData(), xhr = new XMLHttpRequest();
    5556
    56     uploads.appendChild(progressbar);
    57     uploads.appendChild(uploadlist);
     57        // used for clipboard only
     58        uploadtext.style.display = "none";
    5859
    59     formData.append("expiry", 10);
    60     for(let i=0; i < files.length; i++) {
    61         formData.append("file", files[i]);
    62     }
     60        uploads.appendChild(progressbar);
     61        uploads.appendChild(uploadlist);
     62        uploads.appendChild(uploadtext);
    6363
    64     // triggers periodically
    65     xhr.upload.onprogress = function(e) {
    66         // e.loaded - how many bytes downloaded
    67         // e.lengthComputable = true if the server sent Content-Length header
    68         // e.total - total number of bytes (if lengthComputable)
    69         if (e.lengthComputable) {
    70                 progressbar.max = e.total
     64        formData.append("expiry", 10);
     65        for(let i=0; i < files.length; i++) {
     66                formData.append("file", files[i]);
    7167        }
    72         progressbar.value = e.loaded
    73     }
    7468
    75     xhr.onreadystatechange = function() {
    76         if(xhr.readyState === XMLHttpRequest.DONE) {
    77                 progressbar.remove();
    78                 this.response.split(/\r?\n/).forEach(function(link) {
    79                         let li = document.createElement("li");
    80                         li.innerHTML = `<a href="${link}">${link}</a>`;
    81                         uploadlist.appendChild(li);
    82                 });
    83         }
    84     }
     69        // triggers periodically
     70        xhr.upload.onprogress = function(e) {
     71                // e.loaded - how many bytes downloaded
     72                // e.lengthComputable = true if the server sent Content-Length header
     73                // e.total - total number of bytes (if lengthComputable)
    8574
    86     xhr.open('POST', window.location.href, true); // async = true
    87     xhr.send(formData);
     75        }
     76
     77        xhr.onreadystatechange = function() {
     78                if(xhr.readyState === XMLHttpRequest.DONE) {
     79                        progressbar.remove();
     80
     81                        this.response.split(/\r?\n/).forEach(function(link) {
     82                                let li = document.createElement("li");
     83                                li.innerHTML = `<a href="${link}">${link}</a>`;
     84                                uploadlist.appendChild(li);
     85                        });
     86                        let clippy = document.createElement("button");
     87                        uploads.appendChild(clippy);
     88                        clippy.innerText = " 📋 copy ";
     89                        clippy.onclick = function(e) {
     90                                uploadtext.select();
     91                                document.execCommand("copy");
     92                        }
     93                }
     94        }
     95
     96        xhr.open('POST', window.location.href, true); // async = true
     97        xhr.send(formData);
    8898}
Note: See TracChangeset for help on using the changeset viewer.