diff options
Diffstat (limited to 'loggedin.js')
-rw-r--r-- | loggedin.js | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/loggedin.js b/loggedin.js index 8980586..436719f 100644 --- a/loggedin.js +++ b/loggedin.js @@ -1,21 +1,42 @@ +var FORM_ASYNC = false; + const upload_form = document.getElementById("upload_form"); const the_file = document.getElementById("the_file"); const filename_input = document.getElementById("filename"); const upload_btn = document.getElementById("upload_btn"); +const current_directory = document.getElementById("current_directory"); the_file.onchange = on_file_added; -function on_file_added(e) { +const files = []; + +const pending_uploads = []; + +function on_file_added(_e) { if (the_file.files.length >= 1) { filename_input.value = the_file.files[0].name; + if (!FORM_ASYNC) { + upload_form.submit(); + return; + } + // Send the form asynchronously through the fetch api fetch(upload_form.action, { method: upload_form.method, body: new FormData(upload_form) - }) + }).then((resp) => { + if (resp.status == 200) { + add_file_visuals(filename_input.value, true); + } + else { + alert("Upload failed"); + } + }, () => { + alert("Upload failed") + }); + - alert("Sent the upload request"); } else { alert("No files selected"); @@ -23,6 +44,27 @@ function on_file_added(e) { } +function add_file_visuals(name, pending) { + var fileDiv = document.createElement('div'); + + var img = document.createElement('img'); + var filename = document.createElement('div'); + + img.src="/mimeicons/application-pdf.png"; + fileDiv.classList.add('file'); + filename.classList.add('filename'); + filename.innerText = name; + + fileDiv.appendChild(img); + fileDiv.appendChild(filename); + + current_directory.appendChild(fileDiv); + + files.push([name, fileDiv]); + + return fileDiv; +} + function begin_upload() { the_file.click(); } |