From 0097ccaf345cbc423df415322357e1f574e19140 Mon Sep 17 00:00:00 2001 From: oweissbarth Date: Sat, 19 Jul 2014 16:17:49 +0200 Subject: added d&d multifile upload --- www/static/js/dropzone.js | 91 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 www/static/js/dropzone.js (limited to 'www/static/js/dropzone.js') diff --git a/www/static/js/dropzone.js b/www/static/js/dropzone.js new file mode 100644 index 0000000..bfc5c1a --- /dev/null +++ b/www/static/js/dropzone.js @@ -0,0 +1,91 @@ +var vfs_upload_queue = []; + function dragover(e){ + e.preventDefault(); + var dropzone = document.getElementById("dropzone"); + dropzone.style.backgroundColor = "#E6E6FF"; + } + + function dragout(e){ + var dropzone = document.getElementById("dropzone"); + dropzone.style.backgroundColor = "white"; + } + + function drop(e){ + e.preventDefault(); + var dropzone = document.getElementById("dropzone"); + dropzone.style.backgroundColor = "white"; + for(file of e.dataTransfer.files){ + try { + reader = new FileReader(); + reader.readAsBinaryString(file); + } catch (NS_ERROR_FILE_ACCESS_DENIED) { + //file is a directory. Dropping of directories is only implemented in chrome > v21. + alert("file is a directory. Dropping of directories is only implemented in chrome > v21."); + break; + + } + var filelist = document.getElementById("filelist"); + var entry = document.createElement("tr"); + + var filename = document.createElement("td"); + filename.appendChild(document.createTextNode(file.name)); + + var filesize = document.createElement("td"); + filesize.appendChild(document.createTextNode(Math.floor(file.size/1024*100)/100+"KB")); + filesize.className = "filesize"; + + var progressBar = document.createElement("progress"); + progressBar.id="progressBar-"+file.name; + progressBar.className="progressBar"; + var progressCol = document.createElement("td"); + progressCol.className="progressCol"; + progressCol.appendChild(progressBar); + + var publicCol = document.createElement("td"); + var public_at = document.createElement("input"); + public_at.type = "checkbox"; + public_at.id = "public-"+file.name; + publicCol.appendChild(public_at); + + entry.appendChild(filename); + entry.appendChild(filesize); + entry.appendChild(publicCol); + entry.appendChild(progressCol); + + filelist.appendChild(entry); + vfs_upload_queue.push(file); + } + } + + function upload(){ + for(i = 0; i