From da2380040250c404e9064f41239d996108c09344 Mon Sep 17 00:00:00 2001 From: KKlaue <kathariina.klaue@gmail.com> Date: Sat, 8 Sep 2018 16:49:04 +0200 Subject: [PATCH] #78 added functionality to view feedback #79 improved peerfeedback interface implementation --- .../Controller/PeerFeedbackController.java | 63 ++++++++++++++++--- .../peerfeedback/View/PeerFeedbackView.java | 12 +++- .../main/webapp/assets/js/givepeerfeedback.js | 63 +++++++++++++++++++ .../src/main/webapp/assets/js/peerfeedback.js | 16 ++--- .../src/main/webapp/pages/viewfeedback.jsp | 12 +++- 5 files changed, 144 insertions(+), 22 deletions(-) create mode 100644 gemeinsamforschen/src/main/webapp/assets/js/givepeerfeedback.js diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java index 3270ee54..ad34e00a 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java @@ -1,20 +1,24 @@ package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Controller; import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.modules.annotation.model.Annotation; +import unipotsdam.gf.modules.annotation.model.AnnotationBody; +import unipotsdam.gf.modules.peer2peerfeedback.Category; import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback; import java.util.UUID; -public class PeerFeedbackController{ +public class PeerFeedbackController { //@Override public void createPeer2PeerFeedback(Peer2PeerFeedback feedback) { // create a new id if we found no id. String uuid = UUID.randomUUID().toString(); - // while (existsfeedbackId(uuid)) { //Todo: existsfeedbackId - // uuid = UUID.randomUUID().toString(); - // } + // while (existsfeedbackId(uuid)) { //Todo: existsfeedbackId + // uuid = UUID.randomUUID().toString(); + // } // establish connection MysqlConnect connection = new MysqlConnect(); @@ -22,19 +26,64 @@ public class PeerFeedbackController{ // build and execute request String request = "INSERT INTO peerfeedback (`id`, `reciever`, `sender`, `text`, `category`, `filename`) VALUES (?,?,?,?,?,?);"; - connection.issueInsertOrDeleteStatement(request, uuid, feedback.getFeedbackreceiver(), feedback.getFeedbacksender(), feedback.getText(), feedback.getFeedbackcategory(),feedback.getFilename()); + connection.issueInsertOrDeleteStatement(request, uuid, feedback.getFeedbackreceiver(), feedback.getFeedbacksender(), feedback.getText(), feedback.getFeedbackcategory(), feedback.getFilename()); // close connection connection.close(); // build response annotation - //Annotation annotationResponse = getAnnotation(uuid); + //Annotation annotationResponse = getAnnotation(uuid); - // return Response.ok().build(); + // return Response.ok().build(); //return null; } + //@Override + public Peer2PeerFeedback getPeer2PeerFeedback(String id) { + + // establish connection + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + // build and execute request + String request = "SELECT * FROM peerfeedback WHERE id = ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, id); + System.out.print(rs); + + if (rs.next()) { + + // save annotation + Peer2PeerFeedback feedback = getPeerfeedbackFromResultSet(rs); + // close connection + connection.close(); + System.out.print(feedback); + return feedback; + } else { + + // close connection + connection.close(); + System.out.print("null"); + return null; + } + + } + + private Peer2PeerFeedback getPeerfeedbackFromResultSet(VereinfachtesResultSet rs) { + + String id = rs.getString("id"); + long timestamp = rs.getTimestamp(2).getTime(); + String reciever = rs.getString("reciever"); + String sender = rs.getString("sender"); + String text = rs.getString("text"); + Object category = rs.getObject("category"); + String filename = rs.getString("filename"); + + //AnnotationBody body = new AnnotationBody(title, comment, startCharacter, endCharacter); + + //return new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", "test", "filename"); + return new Peer2PeerFeedback(id,timestamp,Category.TITEL,reciever, sender, text, filename); + } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java index 0423a20e..478ff7ba 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java @@ -38,9 +38,19 @@ public class PeerFeedbackView { controller.createPeer2PeerFeedback(feedback); - return Response.ok(feedback).build(); + return Response.ok().build(); //feedback } + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("{id}") + public Response getPeerfeedback(@PathParam("id") String id){ + + PeerFeedbackController controller = new PeerFeedbackController(); + Peer2PeerFeedback fd = controller.getPeer2PeerFeedback(id); + return Response.ok(fd).build(); + } + } diff --git a/gemeinsamforschen/src/main/webapp/assets/js/givepeerfeedback.js b/gemeinsamforschen/src/main/webapp/assets/js/givepeerfeedback.js new file mode 100644 index 00000000..3d9e1cc6 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/assets/js/givepeerfeedback.js @@ -0,0 +1,63 @@ + +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + + + var peerfeedbackID = getQueryVariable("Peerfeedback"); + console.log(peerfeedbackID); + var peerfeedbackID = "a3cef66d-e1b7-4030-8fcd-1413d6e77ba0"; + console.log(peerfeedbackID); + //if(peerfeedbackID) { + $.ajax({ + url: "../rest/peerfeedback/"+peerfeedbackID //{id} + + }).then(function (data) { + //$('#editor').append(data.descriptionMD); + console.log("function1"); + loadFeedback(data); + console.log("function2"); + + document.getElementById("Peerfeedback").innerHTML = data; + //document.write(data); + //console.log(data); + + var newDiv = document.createElement("div"); + var newContent = document.createTextNode(data.text); + newDiv.appendChild(newContent); // füge den Textknoten zum neu erstellten div hinzu. + + // füge das neu erstellte Element und seinen Inhalt ins DOM ein + var currentDiv = document.getElementById("div1"); + document.body.insertBefore(newDiv, currentDiv); + + //$('#peerfeedbackID').val(peerfeedbackID); + console.log(data); + }); + // } + function loadFeedback(data) { + for (var feedback in data) { + var feedbackString = '<div class="pf-container">' + + '<div class="journal-date"> ' + + data[feedback].timestamp + + '</div>' + + '<div class="journal-name">' + + // TODO id to name + data[feedback].text + + '</div>' + + '<div class="journal-category">' + + data[feedback].id + + '</div>' + + '<div class="journal-edit" align="right">'; + + feedbackString = feedbackString + '</div>' + + '<div class="journal-text">' + + data[feedback].entryHTML + + '</div>' + + '</div><br><br>'; + + $('.Peerfeedback').append(feedbackString) + }}; +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/peerfeedback.js b/gemeinsamforschen/src/main/webapp/assets/js/peerfeedback.js index 37e18190..beb297c9 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/peerfeedback.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/peerfeedback.js @@ -29,13 +29,6 @@ function go(){ //b = document.getElementById("editor").innerHTML; - if ($('#form').valid()) { - // get title and comment from form - var text = $('#editor').val(); - - // save the new annotation in db and display it - //saveNewAnnotation(title, comment, startCharacter, endCharacter); - } } @@ -48,14 +41,15 @@ $(document).ready(function() { }).then(function (data) { $('#editor').append(data.descriptionMD); - //TODO preselet in select tags + /** //TODO preselet in select tags new InscrybMDE({ element: document.getElementById("editor"), spellChecker: false, forceSync: true, - }); - - console.log(data); + });*/ + //console.log(data); + location.href="givefeedback.jsp?token=" + getUserTokenFromUrl(); + alert("Feedback wurde gesendet!"); }); }) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp index 3f4b20ad..13bc2ff4 100644 --- a/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp @@ -7,10 +7,11 @@ <html> <head> - + <omniDependencies:omniDependencies/> <script src="../assets/js/utility.js"></script> <script src="../assets/js/project-student.js"></script> - <omniDependencies:omniDependencies/> + <script src="../assets/js/givepeerfeedback.js"></script> + </head> <body> @@ -45,7 +46,12 @@ <td id="Peerfeedback"> <h2>Feedback Nachrichten von Student X</h2> - <iframe width="90%" height="200%" src="http://rocketchat.westeurope.cloudapp.azure.com/channel/general?layout=embedded"></iframe> + <%--<iframe width="90%" height="200%" src="http://rocketchat.westeurope.cloudapp.azure.com/channel/general?layout=embedded"></iframe> + --%> + <%--<p id="view"></p> type="hidden"--%> + <input name="peerfeedbackID" id="peerfeedbackID-input" value=""/> + + <div id="div1"></div> <button class="btn btn-secondary" onclick="goBack()">Zurück</button> -- GitLab