From 81e3a6d77907d63875bce87e66dbd0011efe4df6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sven=20K=C3=A4stle?= <sven.kaestle@gmx.de> Date: Wed, 8 Aug 2018 21:28:52 +0200 Subject: [PATCH] feat: Save unstructured user input in database --- .../webapp/assets/js/unstructuredUpload.js | 37 +++++++++++++++++- .../assets/js/unstructuredUploadRest.js | 39 +++++++++++++++++++ .../main/webapp/pages/unstructured-upload.jsp | 4 +- 3 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 gemeinsamforschen/src/main/webapp/assets/js/unstructuredUploadRest.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUpload.js b/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUpload.js index eee1a0da..0eeb2e90 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUpload.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUpload.js @@ -5,12 +5,45 @@ $(document).ready(function() { $('#btnNext').click(function () { if ($('#upload-textarea-form').valid()) { - location.href="project-student.jsp?token="+getUserTokenFromUrl(); + + // fetch user and text + let user = getUserTokenFromUrl(); + let text = $('#upload-textarea').val(); + + // build request + var fullSubmissionPostRequest = { + user: user, + text: text + }; + + // save request in database + createFullSubmission(fullSubmissionPostRequest, function (response) { + // clear textarea + $('#upload-textarea').val(""); + + // jump to next page + location.href="project-student.jsp?token=" + getUserTokenFromUrl() + "&submission=" + response.id; + }); } }); $('#btnBack').click(function () { - location.href="project-student.jsp?token="+getUserTokenFromUrl(); + // if there is text inside the textarea + if ($('#upload-textarea').val().trim().length > 0) { + // show user alert message that the text will be lost + if (window.confirm("Möchten Sie zur vorherigen Seite zurückkehren? \nIhr bisheriger Text wird nicht gespeichert.")) { + // clear textarea + $('#upload-textarea').val(""); + + // jump to previous page + location.href="project-student.jsp?token="+getUserTokenFromUrl(); + } + } + // nothing to check + else { + // jump to previous page + location.href="project-student.jsp?token="+getUserTokenFromUrl(); + } }); /** diff --git a/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUploadRest.js b/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUploadRest.js new file mode 100644 index 00000000..e3fab82b --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUploadRest.js @@ -0,0 +1,39 @@ +/** + * POST: Save an full submission in the database + * + * @param fullSubmissionPostRequest The post request + * @param responseHandler The response handler + */ +function createFullSubmission(fullSubmissionPostRequest, responseHandler) { + var url = "../rest/submissions/full/"; + var json = JSON.stringify(fullSubmissionPostRequest); + $.ajax({ + url: url, + type: "POST", + data: json, + contentType: "application/json", + dataType: "json", + success: function (response) { + responseHandler(response); + } + }); +} + +/** + * GET: Get a specific full submission for a given id + * + * @param id The id of the full submission + * @param responseHandler The response handler + */ +function getAnnotation(id, responseHandler) { + var url = "../rest/submissions/full/" + id; + $.ajax({ + url: url, + type: "GET", + dataType: "json", + success: function (response) { + // handle the response + responseHandler(response); + } + }) +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/unstructured-upload.jsp b/gemeinsamforschen/src/main/webapp/pages/unstructured-upload.jsp index 562b0340..b8746eab 100644 --- a/gemeinsamforschen/src/main/webapp/pages/unstructured-upload.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/unstructured-upload.jsp @@ -16,8 +16,10 @@ <!-- css - upload-unstructured --> <link rel="stylesheet" type="text/css" href="../assets/css/unstructured-upload.css"> - <!-- js - annotationScript --> + <!-- js - unstructuredUpload --> <script src="../assets/js/unstructuredUpload.js"></script> + <!-- js - unstructuredUploadRest --> + <script src="../assets/js/unstructuredUploadRest.js"></script> </head> -- GitLab