From 150c06a1171be1ad965afc37beeec9863818b508 Mon Sep 17 00:00:00 2001 From: Matt Strapp Date: Mon, 14 Feb 2022 15:39:22 -0600 Subject: maybe achieve feature parity Signed-off-by: Matt Strapp --- src/public/js/form.js | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) (limited to 'src/public/js') diff --git a/src/public/js/form.js b/src/public/js/form.js index 7085422..f58a27f 100644 --- a/src/public/js/form.js +++ b/src/public/js/form.js @@ -1,5 +1,14 @@ +window.onload = function () { + document.getElementById('nojs').hidden = true; + document.getElementById('block').hidden = false; +}; + // File submit AJAX request document.getElementById('upload').onsubmit = function () { + // Reset error message + document.getElementById('upload-err').innerText = ''; + document.getElementById('actuate-err').innerText = ''; + // Make AJAX request let xhr = new XMLHttpRequest(); xhr.open('POST', '/api/v1/upload'); let formData = new FormData(this); @@ -8,11 +17,41 @@ document.getElementById('upload').onsubmit = function () { if (xhr.readyState === 4) { let response = JSON.parse(xhr.responseText); if (xhr.status === 200) { - console.log(response); + actuate(response); } else { - console.log(response.error); + // Display upload error message to the user + document.getElementById('upload-err').innerText = response.error; + // DEBUG: Print full error if unknown error occurs + if (xhr.status === 500) + console.error(response.error_msg); } } }; return false; -}; \ No newline at end of file +}; + +function actuate(file) { + let xhr = new XMLHttpRequest(); + xhr.open('POST', '/api/v1/actuate'); + let data = { + name: file.name, + path: file.path, + }; + xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); + xhr.setRequestHeader('X-CSRF-TOKEN', file.csrf); + xhr.send(JSON.stringify(data)); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + let response = JSON.parse(xhr.responseText); + if (xhr.status === 200) { + console.log(response); + } else { + // Display upload error message to the user + document.getElementById('actuate-err').innerText = response.error; + // DEBUG: Print full error if unknown error occurs + if (xhr.status === 500) + console.error(response.error_msg); + } + } + }; +} \ No newline at end of file -- cgit v1.2.3