diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Controller/PeerFeedbackController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Controller/PeerFeedbackController.java index a37b51139bcd46b576221adc4721931e544e2c33..d9ffa981fbe5e30d333053ed04c3498cb4be8be7 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Controller/PeerFeedbackController.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Controller/PeerFeedbackController.java @@ -36,47 +36,71 @@ public class PeerFeedbackController { // close connection connection.close(); - // build response annotation - //Annotation annotationResponse = getAnnotation(uuid); + String pair = feedback.getFeedbacksender(); + String[] pp = pair.split("'+'"); + System.out.print("pair" + pp[0]); + String ur = "../give-feedback.jsp?token="+pp[0]; + try{ + URL url = new URL ("http://localhost:8080/feedback/give-feedback.jsp?token="); + URLConnection urlcon = url.openConnection(); + urlcon.connect(); + System.out.print("connect"); + } + catch (Exception exp){ + System.out.print("error to connect"); + } - // return Response.ok().build(); - //return null; + return ("wurde gesendet!"+ur); } - //@Override - public Peer2PeerFeedback getPeer2PeerFeedback(String id) { + public ArrayList<Peer2PeerFeedback> getsendedPeerfeedback(String sender) { - // establish connection + ArrayList<Peer2PeerFeedback> fe = new ArrayList<>(); + 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); + System.out.print("SENDER" + sender); - if (rs.next()) { + String request = "SELECT * FROM peerfeedback WHERE sender= ?;"; + VereinfachtesResultSet rss = connection.issueSelectStatement(request, sender); + System.out.print("rs:" + rss); + System.out.print("rs:" + rss.next()); - // save annotation - Peer2PeerFeedback feedback = getPeerfeedbackFromResultSet(rs); + while (rss.next()) { + fe.add(getPeerfeedbackFromResultSet(rss)); + System.out.print("FEEDBACKSSS" + fe); + } - // close connection - connection.close(); - System.out.print(feedback); + connection.close(); + System.out.print("FEEDBACKSSS" + fe); + return fe; + } - return feedback; - } else { + public ArrayList<Peer2PeerFeedback> getRecievedPeerfeedback(String reciever) { - // close connection - connection.close(); - System.out.print("null"); - return null; + ArrayList<Peer2PeerFeedback> rf = new ArrayList<>(); + + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + System.out.print("RECIEVER"+reciever); + + String request = "SELECT * FROM peerfeedback WHERE reciever= ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, reciever); + System.out.print("rs:"+rs); + + while (rs.next()) { + rf.add(getPeerfeedbackFromResultSet(rs)); } + connection.close(); + System.out.print("FEEDBACKSRR"+rf); + return rf; } - public ArrayList<Peer2PeerFeedback> getAllFeedbacks(String sender) { + public ArrayList<Peer2PeerFeedback> getFeedbacksBySender(String reciever, String sender) { ArrayList<Peer2PeerFeedback> feedbacks = new ArrayList<>(); @@ -84,9 +108,9 @@ public class PeerFeedbackController { connection.connect(); - // build and execute request - String request = "SELECT * FROM peerfeedback WHERE sender= ?;"; - VereinfachtesResultSet rs = connection.issueSelectStatement(request, sender); + String request = "SELECT * FROM peerfeedback WHERE reciever= ? AND sender= ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, reciever, sender); + System.out.print("rsfb:"+rs); while (rs.next()) { feedbacks.add(getPeerfeedbackFromResultSet(rs)); @@ -96,6 +120,133 @@ public class PeerFeedbackController { connection.close(); System.out.print(feedbacks); return feedbacks; + } + + public ArrayList<String> getSender(String token){ + + ArrayList<String> username = new ArrayList<>(); + ArrayList<String> tok = new ArrayList<>(); + + MysqlConnect connection1 = new MysqlConnect(); + connection1.connect(); + + String[] pair = token.split(","); + System.out.print("TOKEN,,"+pair[0]+pair.length); + System.out.print(pair[0].substring(token.indexOf("+")+1)); + + for(int j=0; j < pair.length; j++){ + pair[j] = pair[j].substring(token.indexOf("+")+1); + System.out.print("PAIR2 "+pair[j]); + } + System.out.print("pair"); + for(int i = 0; i < pair.length; i++) { + String request1 = "SELECT * FROM users WHERE token= ?;"; + VereinfachtesResultSet rs1 = connection1.issueSelectStatement(request1, pair[i]); + + while (rs1.next()) { + username.add(getNameFromResultSet(rs1)); + } + } + System.out.print("getSender:"+username); + return username; + } + + + + public ArrayList<String> getUserforFeedback(String token) { + + System.out.print("IN"); + + ArrayList<String> users = new ArrayList<>(); + ArrayList<String> email = new ArrayList<>(); + ArrayList<String> emails = new ArrayList<>(); + ArrayList<String> groupid = new ArrayList<>(); + + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + String request1 = "SELECT * FROM users WHERE token=?"; + VereinfachtesResultSet rs1 = connection.issueSelectStatement(request1, token); + while (rs1.next()) { + email.add(getMailFromResultSet(rs1)); + } + System.out.print("rs1:"+email); + String el = email.get(0); + System.out.print("email"+el); + + MysqlConnect connection1 = new MysqlConnect(); + connection1.connect(); + + String request2 = "SELECT * FROM groupuser WHERE userEmail=?"; + VereinfachtesResultSet rs2 = connection1.issueSelectStatement(request2, el); + + while (rs2.next()) { + groupid.add(getGroupIDFromResultSet(rs2)); + } + String us = groupid.get(0); + System.out.print("groupid"+us); + + MysqlConnect connection2 = new MysqlConnect(); + connection2.connect(); + + String request3 = "SELECT * FROM groupuser WHERE groupId=?"; + VereinfachtesResultSet rs3 = connection2.issueSelectStatement(request3, us); + + while (rs3.next()) { + emails.add(getEmailFromResultSet(rs3)); + } + String ems = emails.get(0); + System.out.print("emails:"+emails); + String[] e = ems.split(","); + System.out.print("emails:"+e); + + MysqlConnect connection3 = new MysqlConnect(); + connection3.connect(); + + for (int i = 0; i < emails.size(); i++) { + String pair = emails.get(i); + System.out.print("pair" + pair); + String request4 = "SELECT * FROM users WHERE email=? AND NOT token=?"; + VereinfachtesResultSet rs4 = connection3.issueSelectStatement(request4, pair, token); + + while (rs4.next()) { + users.add(getNameFromResultSet(rs4)); + } + + } + + System.out.print("rs4:" + users); + connection.close(); + connection1.close(); + connection2.close(); + connection3.close(); + System.out.print("userscontroller:"+users); + return users; + + } + + + public boolean checkFeedback(String checkFeedback) { + + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + String request = "SELECT * FROM peerfeedback WHERE sender = ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, checkFeedback); + System.out.print(rs); + + if (rs!=null) { + System.out.print("true"); + connection.close(); + + return true; + + } else { + System.out.print("false"); + connection.close(); + + return false; + } } @@ -110,9 +261,38 @@ public class PeerFeedbackController { Object category = rs.getObject("category"); String filename = rs.getString("filename"); - //AnnotationBody body = new AnnotationBody(title, comment, startCharacter, endCharacter); + return new Peer2PeerFeedback(id,timestamp,Category.valueOf(category),rec, sender, txt, filename); + } + + private String getGroupIDFromResultSet(VereinfachtesResultSet rs) { - //return new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", "test", "filename"); - return new Peer2PeerFeedback(id, timestamp, Category.TITEL, reciever, sender, text, filename); + String grID = rs.getString("groupId"); + return new String(grID); } + + private String getEmailFromResultSet(VereinfachtesResultSet rs) { + + String mail = rs.getString("userEmail"); + return new String(mail); + } + + private String getNameFromResultSet(VereinfachtesResultSet rs) { + + String name = rs.getString("name"); + String token = rs.getString("token"); + return new String(name+"+"+token); + } + + private String getMailFromResultSet(VereinfachtesResultSet rs) { + + String mail = rs.getString("email"); + return new String(mail); + } + + private String getTokenFromResultSet(VereinfachtesResultSet rs) { + + String token = rs.getString("sender"); + return new String(token); + } + } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/View/PeerFeedbackView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/View/PeerFeedbackView.java index 907730d447679f616bd74cc3e92d6bfd505946a3..382cdbb764d741ff89ad4a801056b1b90670f878 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/View/PeerFeedbackView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/View/PeerFeedbackView.java @@ -13,48 +13,143 @@ import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import java.sql.Timestamp; import java.util.ArrayList; @Path("/peerfeedback") -//@Consumes({"application/json"}) -//@Produces({"application/json"}) -//@Consumes(MediaType.APPLICATION_FORM_URLENCODED) -//@Produces(MediaType.TEXT_PLAIN) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces(MediaType.APPLICATION_JSON) public class PeerFeedbackView { - //private final Logger log = LoggerFactory.getLogger(PeerFeedbackView.class); - + /** + * Returns String + * @param 'id' ID for peerfeedback + * @param 'timestamp' time of given feedback + * @param 'category' category of the document + * @param 'sender' is feedbacksender + * @param 'reciever' is feedbackreciever + * @param 'text' text from editor + * @param 'filename' name of the document + * @return name of feedbacksenders or feedbackrecievers + */ @POST @Path("/save") - public Response createPeerfeedback(@FormParam("text") String text, @FormParam("student") String student, @FormParam("id") String id, @FormParam("reciever") String reciever, - @FormParam("sender") String sender, @FormParam("filename") String filename, @FormParam("category") Category category, @FormParam("timestamp") Long timestamp) { + public Response createPeerfeedback(@FormParam("id") String id, @FormParam("timestamp") Timestamp timestamp, @FormParam("category") Category category, + @FormParam("zsm") String sender, @FormParam("reciever") String reciever, @FormParam("text") String text, @FormParam("filename") String filename) { - // save peerfeedback request in database and receive the new peerfeedback object - //PeerFeedbackController controller = new PeerFeedbackController(); - //Peer2PeerFeedback pf = controller.createPeer2PeerFeedback(feedback); - //return Response.ok(pf).build(); + System.out.print("VIEW:"+sender); + Peer2PeerFeedback f = new Peer2PeerFeedback(); + f.setID(id); + f.setTimestamp(timestamp); + f.setFeedbackcategory(category); + f.setFeedbacksender(sender); + f.setFeedbackreceiver(reciever); + f.setText(text); + f.setFilename(filename); + System.out.print(f); - String message = text + student; - Peer2PeerFeedback feedback = new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", text, "filename"); PeerFeedbackController controller = new PeerFeedbackController(); - controller.createPeer2PeerFeedback(feedback); + String fp = controller.createPeer2PeerFeedback(f); + return Response.ok(fp).build(); + } + /** + * Returns the sender from feedback + * @param 'zsm' name and token of student + * @return name of senders + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/sendedfeedback/{zsm}") + public Response getSendedPeerfeedback(@PathParam("zsm") String sender){ + + PeerFeedbackController controller = new PeerFeedbackController(); + ArrayList<Peer2PeerFeedback> fd = controller.getsendedPeerfeedback(sender); + System.out.print("getallfd:"+fd); + return Response.ok(fd).build(); + } - return Response.ok().build(); //feedback + /** + * Returns the reciever from feedback + * @param 'zsm' name and token of student + * @return name of reciever + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/recievedfeedback/{zsm}") + public Response getRecievedPeerfeedback(@PathParam("zsm") String reciever){ + PeerFeedbackController controller = new PeerFeedbackController(); + ArrayList<Peer2PeerFeedback> rf = controller.getRecievedPeerfeedback(reciever); + System.out.print("getallfd:"+rf); + return Response.ok(rf).build(); } + /** + * Returns the names of feedbackreciever + * @param 'zsm' token of student + * @return name of feedbackreciever + */ @GET @Produces(MediaType.APPLICATION_JSON) - @Path("{sender}") - public Response getPeerfeedback(@PathParam("sender") String sender) { + @Path("/getUsers/{student}") + public Response getUsers(@PathParam("student") String token){ + System.out.print("usersview:"+token); PeerFeedbackController controller = new PeerFeedbackController(); - ArrayList<Peer2PeerFeedback> fd = controller.getAllFeedbacks(sender); - return Response.ok(fd).build(); + ArrayList<String> users = controller.getUserforFeedback(token); + System.out.print("usersview:"+users); + return Response.ok(users).build(); + } + + /** + * Returns true or false for given feedback + * @param 'zsm' name and token of student + * @return true(feedback was given) or false(feedback was not given) + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/checkFeedback/{zsm}") + public Response checkFeedback(@PathParam("zsm") String checkFeedback){ + + System.out.print("sendcf:"+checkFeedback); + PeerFeedbackController controller = new PeerFeedbackController(); + Boolean check = controller.checkFeedback(checkFeedback); + System.out.print("checkcf:"+check); + return Response.ok(check).build(); + } + + /** + * Returns names of feedbacksender or feedbackreciever + * @param 'list' name and token of feedbacksenders or feedbackrecievers + * @return name of feedbacksenders or feedbackrecievers + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/getSender/{list}") + public Response getSender(@PathParam("list") String token){ + + System.out.print("sendcf:"+token); + PeerFeedbackController controller = new PeerFeedbackController(); + ArrayList<String> name = controller.getSender(token); + System.out.print("checkcf:"+name); + return Response.ok(name).build(); } + /** + * Returns feedbacks + * @param 'student' is feedbackreciever and 'sender' is feedbacksender + * @return feedbacks + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/getfeedbackbysender/{student}/{sender}") + public Response getFeedbackBySender(@PathParam("student") String reciever, @PathParam("sender") String sender){ + System.out.print("fb:"+reciever+sender); + PeerFeedbackController controller = new PeerFeedbackController(); + ArrayList<Peer2PeerFeedback> fb = controller.getFeedbacksBySender(reciever, sender); + System.out.print("fb:"+fb); + return Response.ok(fb).build(); + } } diff --git a/gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css b/gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css index 65f5d525908983d27cc2eee7df001a4817bbf372..5966919480294bc623b8fbec5e4a99c2031f51ad 100644 --- a/gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css +++ b/gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css @@ -1,42 +1,146 @@ -.feedback-container { - border: 2px solid #dedede; - background-color: #f1f1f1; - border-radius: 5px; - padding: 10px; - margin: 10px 0; + +.container{max-width:1170px; margin:auto;} +img{ max-width:100%;} +.inbox_people { + background: #f8f8f8 none repeat scroll 0 0; + float: left; + overflow: hidden; + width: 40%; border-right:1px solid #c4c4c4; +} +.inbox_msg { + border: 1px solid #c4c4c4; + clear: both; + overflow: hidden; } +.top_spac{ margin: 20px 0 0;} -.darker { - border-color: #ccc; - background-color: #ddd; + +.recent_heading {width:40%;} +.srch_bar { + display: inline-block; + text-align: right; + width: 60%; } +.headind_srch{ padding:10px 29px 10px 20px; overflow:hidden; border-bottom:1px solid #c4c4c4;} -.feedback-container::after { - content: ""; - clear: both; - display: table; +.recent_heading h4 { + color: #05728f; + font-size: 21px; + margin: auto; } +.srch_bar input{ border:1px solid #cdcdcd; border-width:0 0 1px 0; width:80%; padding:2px 0 4px 6px; background:none;} +.srch_bar .input-group-addon button { + background: rgba(0, 0, 0, 0) none repeat scroll 0 0; + border: medium none; + padding: 0; + color: #707070; + font-size: 18px; +} +.srch_bar .input-group-addon { margin: 0 0 0 -27px;} -.feedback-container img { +.chat_ib h5{ font-size:17px; color:#464646; margin:0 0 8px 0;} +.chat_ib h5 span{ font-size:13px; float:right;} +.chat_ib p{ font-size:14px; color:#989898; margin:auto} +.chat_img { float: left; - max-width: 60px; + width: 19%; +} +.chat_ib { + float: left; + padding-top: 30px; + width: 88%; +} + +.chat_people{ overflow:hidden;} +.chat_list { + border-bottom: 1px solid #c4c4c4; + margin: 0; + padding: 18px 16px 10px; width: 100%; - margin-right: 20px; - border-radius: 50%; + height: 50%; } +.inbox_chat { height: 550px; overflow-y: scroll;} -.feedback-container img.right { - float: right; - margin-left: 20px; - margin-right: 0; +.active_chat{ background:#ebebeb;} + +.incoming_msg_img { + display: inline-block; + width: 6%; +} +.received_msg { + display: inline-block; + padding: 0 0 0 10px; + vertical-align: top; + width: 92%; +} +.received_withd_msg p { + background: #ebebeb none repeat scroll 0 0; + border-radius: 3px; + color: #646464; + font-size: 14px; + margin: 0; + padding: 5px 10px 5px 12px; + width: 100%; +} +.time_date { + color: #747474; + display: block; + font-size: 12px; + margin: 8px 0 0; +} +.received_withd_msg { width: 57%;} +.mesgs { + float: left; + padding: 30px 15px 0 25px; + width: 60%; } -.time-right { +.sent_msg p { + background: #05728f none repeat scroll 0 0; + border-radius: 3px; + font-size: 14px; + margin: 0; color:#fff; + padding: 5px 10px 5px 12px; + width:100%; +} +.outgoing_msg{ overflow:hidden; margin:26px 0 26px;} +.sent_msg { float: right; - color: #aaa; + width: 46%; +} +.input_msg_write input { + background: rgba(0, 0, 0, 0) none repeat scroll 0 0; + border: medium none; + color: #4c4c4c; + font-size: 15px; + min-height: 48px; + width: 100%; } -.time-left { - float: left; - color: #999; +.type_msg {border-top: 1px solid #c4c4c4;position: relative;} +.msg_send_btn { + background: #05728f none repeat scroll 0 0; + border: medium none; + border-radius: 50%; + color: #fff; + cursor: pointer; + font-size: 17px; + height: 33px; + position: absolute; + right: 0; + top: 11px; + width: 33px; +} +.messaging { padding: 0 0 50px 0;} +.msg_history { + height: 516px; + overflow-y: auto; +} +.img-reciever{ + width: 30%; + height: 30%; + border-radius: 50%; +} +.img-sender{ + border-radius: 50%; } \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/feedback/give-feedback.jsp b/gemeinsamforschen/src/main/webapp/feedback/give-feedback.jsp index 4a554ea1f49adca3cd387314f8d573b3fafb864e..e7b404e3333b42332d1741ad4d7596e75f701d83 100644 --- a/gemeinsamforschen/src/main/webapp/feedback/give-feedback.jsp +++ b/gemeinsamforschen/src/main/webapp/feedback/give-feedback.jsp @@ -8,93 +8,89 @@ <html> <head> - - <script src="js/jquery.min.js"></script> - <script src="../assets/bootstrap/js/bootstrap.min.js"></script> - <script src="js/Sidebar-Menu.js"></script> - <script src="js/create-journal.js"></script> - --%> - - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> + <omniDependencies:omniDependencies hierarchy="1"/> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> <link rel="stylesheet" type="text/css" href="../journal/css/create-journal.css"> - <script src="js/peerfeedback.js"></script> - <omniDependencies:omniDependencies hierarchy="1"/> + <script src="js/givepeerfeedback.js"></script> + </head> <body> <menu:menu hierarchy="1"/> -<div id="wrapper"> <div class="page-content-wrapper"> <headLine:headLine/> <div> <table> <tr> - <h2> Gib dein Feedback ein!</h2> + <h2 style="padding-left: 15px"> Schreibe dein Feedback ein!</h2> <div class="line-spacer"></div> - <p><span> Datei zum Feedback: SelectedFile.pdf </span></p> - <p class="text-primary"><span> Kategorie: Untersuchungskonzept </span></p> - <hr/> - <div class="form-check"> - <input class="form-check-input" type="checkbox" value="" id="defaultCheck1"> - <label class="form-check-label" for="defaultCheck1"> - Das fand ich gut - </label> - </div> - <div class="form-check"> - <input class="form-check-input" type="checkbox" value="" id="defaultCheck2"> - <label class="form-check-label" for="defaultCheck1"> - Ich habe noch eine Frage - </label> - </div> - <div class="form-check"> - <input class="form-check-input" type="checkbox" value="" id="defaultCheck3"> - <label class="form-check-label" for="defaultCheck1"> - Das wuerde ich anders machen - </label> - </div> - <div class="form-check"> - <input class="form-check-input" type="checkbox" value="" id="defaultCheck4"> - <label class="form-check-label" for="defaultCheck1"> - Ich habe eine Idee - </label> - </div> - <hr/> + <hr /> + <div style="padding-left: 17px"> + <h3>Vorschläge für ein gutes Feedback:</h3> + <div>1. Beginne das Feedback mit etwas Positiven</div> + <div>2. Äußere dein Feedback</div> + <div>3. Beende das Feedback mit etwas Positiven</div> + <div style="height: 10px"></div> + <div>Hilfestellungen für Formulierungen: </div> + <div style="height: 10px"></div> + <div> - das hat mir gut gefallen, weil ...</div> + <div> - das habe ich nicht verstanden, weil ...</div> + <div> - an diesem Punkt kam ich nicht weiter, weil ...</div> + <div> - das könnte man besser machen, z. B. durch ...</div> + <div> - dabei habe ich noch eine Idee, z.B. ...</div> + </div> + <hr> <div> <table> <tr> - <td id="yourContent"> - <h2> Schreibe dein Feedback! </h2> + <td id="yourContent"> + + <form style="padding-left: 20px" id= "journalform" method="POST" action="../rest/peerfeedback/save"> - <form id="form" method="POST" action="../rest/peerfeedback/save"> - <%--id="journalform" class="form-journal"--%> <input type="hidden" id="student" name="student"> <input type="hidden" id="project" name="project"> <input type="hidden" id="feedbackid" name="id"> - <input type="hidden" id="reciever" name="reciever"> + <input type="hidden" id="rec" name="rec"> <input type="hidden" id="sender" name="sender"> + <input type="hidden" id="timestamp" name="timestamp"> + <input type="hidden" id="category" name="cat"> <input type="hidden" id="filename" name="filename"> - <input type="hidden" id="category" name="category"> - <input type="hidden" id="filename" name="filename"> - + <input type="hidden" id="zsm" name="zsm"> + + + <div class="journal-form-category"> + Kategorie: + <select name="category" form="journalform"> + <option value="TITEL"> Titel</option> + <option value="RECHERCHE"> Recherche</option> + <option value="LITERATURVERZEICHNIS"> Literaturverzeichnis</option> + <option value="FORSCHUNGSFRAGE"> Forschungsfrage</option> + <option value="UNTERSUCHUNGSKONZEPT"> Untersuchungskonzept</option> + <option value="METHODIK"> Methodik</option> + <option value="DURCHFUEHRUNG"> Durchführung</option> + <option value="AUSWERTUNG"> Auswertung</option> + + </select> + </div> + <div style="height: 10px"></div> + <div class="journal-form-category"> + Feedbackempfänger: + <select name="reciever" id="reciever" form="journalform"> <%--form="journalform"--%> + </select> + </div> <div class="journal-form-container"> - <div class="journal-form-editor"> - <textarea id="editor" name="text"></textarea> <%--form="journalform"--%> + <div class="journal-form-editor" style="width: 150%"> + <textarea id="editor" name="text" form="journalform"></textarea> <%--form="journalform"--%> </div> <div class="journal-form-buttons"> - <input class="btn btn-default btn-sm" type="submit"> - <a id="backLink" class="btn btn-default btn-sm"> Zurück </a> + <button id="backLink" class="btn btn-default btn-sm"> Zurück </button> + <button id="sub" class="btn btn-default btn-sm"> Speichern </button> </div> - - <div> - <p id="as">Now what</p> - <input type="button" value="get txt" onclick="go()"/> - </div> - </div> </form> @@ -103,22 +99,14 @@ </tr> </table> </div> - - - <script> - function goBack() { - window.history.back(); - } - </script> </tr> </td> - </tr> - </table> - </div> - </div> - <footer:footer/> +</tr> +</table> +</div> +</div> </div> </body> diff --git a/gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js b/gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js index 2444caf95c3be8f8d6ce764353b940842ae5050b..bf16344cfdc24914d042aaff89662ee8ba97483a 100644 --- a/gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js +++ b/gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js @@ -1,83 +1,91 @@ var student = getQueryVariable("token"); var project = getQueryVariable("projectName"); + +/**function getQueryVariable(variable) { + let query = window.location.search.substring(1); + let vars = query.split("&"); + for (let i = 0; i < vars.length; i++) { + let pair = vars[i].split("="); + if (pair[0] === variable) { + return pair[1]; + } + } + return (false); +}*/ + $(document).ready(function () { $('#student').val(student); $('#project').val(project); + //$('#name').val(name); + var name = document.getElementById("user").innerHTML; + var zsm = name+"+"+student; + console.log(name) + $('#zsm').val(zsm); + console.log(zsm); + + + $('#viewfeedback').click(function () { + location.href="../feedback/view-feedback.jsp?token="+getUserTokenFromUrl(); + }); + + $('#backlink').click(function () { + window.history.back(); + }); + + new InscrybMDE({ + element: document.getElementById("editor"), + spellChecker: false, + forceSync: true, + }); + + + $('#sub').click(function () { + + $.ajax({ + url: "../rest/peerfeedback/save" + }).then(function (data) { + //console.log("save:"+data); + return location.href="../feedback/give-feedback.jsp?="+getUserTokenFromUrl(); + }); + location.href="../feedback/give-feedback.jsp?="+getUserTokenFromUrl(); + }); - var peerfeedbackID = getQueryVariable("Peerfeedback"); - console.log(peerfeedbackID); - var peerfeedbackID = "a3cef66d-e1b7-4030-8fcd-1413d6e77ba0"; - var sender = "sender"; - console.log(peerfeedbackID); - //if(peerfeedbackID) { $.ajax({ - url: "../rest/peerfeedback/" + sender //peerfeedbackID {id} + url: "../rest/peerfeedback/getUsers/" + student + }).then(function (data) { + console.log("getUsers:"+data); + loadUsers(data); + }); + + $.ajax({ + url: "../rest/peerfeedback/checkFeedback/" +student }).then(function (data) { - //$('#editor').append(data.descriptionMD); - console.log("function1"); - loadFeedback(data); - console.log("function2"); - - //document.getElementById("Peerfeedback").innerHTML = data.text +"text"; - //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"); - currentDiv.appendChild(newDiv); - //document.body.insertBefore(newDiv, currentDiv); - */ - //$('#peerfeedbackID').val(peerfeedbackID); - console.log(data); + console.log("checkFeedback:"+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>';*/ - - var newdiv = document.createElement("div"); - - - //newdiv.innerHTML = data[feedback].text; - //newdiv.append(data[feedback].text); - newdiv.insertAdjacentHTML('beforeend', data[feedback].text); - newdiv.className = "feedback-container"; - //var text = convertMarkdownToHtml(data[feedback].text); - //var newcontent = document.createTextNode(data[feedback].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"); - currentdiv.appendChild(newdiv); - //document.body.insertBefore(newDiv, currentDiv); - //document.getElementById("div").innerHTML = data[feedback].text; - - //$('.Peerfeedback').append(feedbackString) + + function loadUsers(data) { + + for (var user in data) { + + var sender = []; + var name = []; + var pair = data[user].split("+"); + name.push(pair[0]); + sender.push(pair[1]); + console.log(name+sender); + + var newopt = document.createElement("OPTION"); + newopt.insertAdjacentHTML('beforeend', name); + newopt.value = data[user]; + + var currentdiv = document.getElementById("reciever"); + currentdiv.appendChild(newopt); } - }; + + } + }) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/feedback/js/viewpeerfeedback.js b/gemeinsamforschen/src/main/webapp/feedback/js/viewpeerfeedback.js new file mode 100644 index 0000000000000000000000000000000000000000..1ef53774793b10febe1e315ec08f11eb972e57f1 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/feedback/js/viewpeerfeedback.js @@ -0,0 +1,293 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); +var name = getQueryVariable("user"); + + +$(document).ready(function(){ + $('#student').val(student); + $('#project').val(project); + $('#name').val(name); + + console.log(student); + var nme = document.getElementById("user").innerHTML; + var zsm = nme +"+"+ student; + $('#zsm').val(zsm); + console.log(zsm); + + $('#recieved').click(function () { + + //$("#msg_history").empty(); + + $.ajax({ + url: "../rest/peerfeedback/sendedfeedback/"+zsm + + }).then(function (data) { + console.log(data); + console.log("function1"); + var list = []; + for (var id in data) { + if (!list.includes(data[id].feedbackreceiver)) { + list.push(data[id].feedbackreceiver); + console.log(data[id].feedbackreceiver); + } + } + $('#list').val(list); + + console.log(list); + + $.ajax({ + url: "../rest/peerfeedback/getSender/" + list, + async: true + }).then(function (data) { + console.log("getSender:"+data); + var s = data[0]; + loadFeedbackSender(data); + }); + console.log("function2"); + console.log(list); + }); + }); + + $('#sended').click(function () { + + $("#msg_history").empty(); + $.ajax({ + url: "../rest/peerfeedback/recievedfeedback/"+zsm //peerfeedbackID {id} + + }).then(function (data) { + console.log(data); + console.log("function1"); + var list = []; + for (var id in data) { + if (!list.includes(data[id].feedbackrsender)) { + list.push(data[id].feedbacksender); + console.log(data[id].feedbacksender); + } + } + console.log(list); + + $.ajax({ + url: "../rest/peerfeedback/getSender/" + list + }).then(function (data) { + console.log("getSender:"+data); + console.log(list); + var s = data[0]; + loadFeedbackReciever(data); + }) + console.log("function2"); + console.log(data); + }); + }); + + function loadFeedback(data) { + + $("#msg_history").empty(); + + console.log(data); + + for (var feedback in data) { + + console.log(data[feedback]); + + var newdiv = document.createElement("div"); + newdiv.className = "incoming_msg"; + var newdiv4 = document.createElement("div"); + newdiv4.className = "chat_img"; + var newdiv5 = document.createElement("img"); + newdiv5.src = "../libs/img/noImg.png"; + newdiv5.alt="Avatar"; + newdiv5.className = "img-reciever"; + + var newdiv2 = document.createElement("div"); + newdiv2.className = "received_msg"; + var newdiv3 = document.createElement("div"); + newdiv3.className = "received_withd_msg"; + newdiv3.appendChild(newdiv5); + var newp = document.createElement("p"); + //newp.className = "received_withd_msg"; + newp.insertAdjacentHTML('beforeend', data[feedback].text) + var newspan = document.createElement("span"); + newspan.className = "chat_date"; + newspan.insertAdjacentHTML('beforeend',timestampToDateString(data[feedback].timestamp)); + var newspan1 = document.createElement("span"); + newspan1.className = "chat_date"; + newspan1.insertAdjacentHTML('beforeend',data[feedback].feedbackcategory); + var newspan2 = document.createElement("span"); + newspan2.className = "chat_date"; + newspan2.insertAdjacentHTML('beforeend',data[feedback].filename); + var newhr =document.createElement("hr"); + + newdiv2.insertBefore(newdiv4, newdiv.childNodes[0]); + newdiv.appendChild(newdiv2); + newdiv2.appendChild(newdiv3); + newdiv2.appendChild(newspan1); + newdiv3.appendChild(newp); + + newp.insertBefore(newspan1, newp.childNodes[0]); + newp.insertBefore(newspan2, newp.childNodes[1]); + newp.appendChild(newspan); + + var currentdiv = document.getElementById("msg_history"); + currentdiv.appendChild(newdiv); + currentdiv.appendChild(newhr); + + } + } + + function loadFeedbackSender(data) { + + $("#inbox_chat").empty(); + + console.log(zsm); + console.log(data); + $('#data').val(data); + + + for (var feedback in data) { + + console.log(data[feedback]); + var sender = []; + var name = []; + + var pair = data[feedback].split("+"); + name.push(pair[0]); + sender.push(pair[1]); + console.log(name); + + + var newdiv = document.createElement("button"); + newdiv.className = "chat_list"; + newdiv.id = data[feedback]; + + newdiv.onclick = function () { + var h = this.id; + myFunction(h, zsm); + + } + + var ddiv = document.createElement("div"); + ddiv.id = "ddiv"; + + var newdiv2 = document.createElement("div"); + newdiv2.className = "chat_people"; + var newdiv4 = document.createElement("div"); + newdiv4.className = "chat_img"; + var newdiv5 = document.createElement("img"); + newdiv5.src = "../libs/img/noImg.png"; + newdiv5.alt = "Avatar"; + newdiv5.className = "img-sender"; + newdiv4.appendChild(newdiv5); + var newdiv3 = document.createElement("div"); + newdiv3.className = "chat_ib"; + var newh = document.createElement("h5"); + newh.insertAdjacentHTML('beforeend', name.toString()) + var newspan = document.createElement("span"); + newspan.className = "chat_date"; + + ddiv.appendChild(newdiv); + newdiv.insertBefore(newdiv4, newdiv.childNodes[0]); + newdiv.appendChild(newdiv2); + newdiv2.appendChild(newdiv3); + newdiv3.appendChild(newh); + + newh.appendChild(newspan); + + var currentdiv = document.getElementById("inbox_chat"); + currentdiv.appendChild(ddiv); + } + } + + function loadFeedbackReciever(data) { + + $("#inbox_chat").empty(); + + console.log(student); + console.log(data); + + for (var feedback in data) { + + console.log(data[feedback]); + var sender = []; + var name = []; + var pair = data[feedback].split("+"); + name.push(pair[0]); + sender.push(pair[1]); + console.log(name+sender); + + var newdiv = document.createElement("button"); + newdiv.className = "chat_list"; + newdiv.id = data[feedback]; + + newdiv.onclick = function () { + var h = this.id; + console.log(h); + myFunction(zsm, h); + + } + + var ddiv = document.createElement("div"); + ddiv.id = "ddiv"; + var newdiv2 = document.createElement("div"); + newdiv2.className = "chat_people"; + var newdiv4 = document.createElement("div"); + newdiv4.className = "chat_img"; + var newdiv5 = document.createElement("img"); + newdiv5.src = "../libs/img/noImg.png"; + newdiv5.alt = "Avatar"; + newdiv5.className = "img-sender"; + newdiv4.appendChild(newdiv5); + var newdiv3 = document.createElement("div"); + newdiv3.className = "chat_ib"; + var newh = document.createElement("h5"); + newh.insertAdjacentHTML('beforeend', name) + var newspan = document.createElement("span"); + newspan.className = "chat_date"; + + ddiv.appendChild(newdiv); + newdiv.insertBefore(newdiv4, newdiv.childNodes[0]); + newdiv.appendChild(newdiv2); + newdiv2.appendChild(newdiv3); + newdiv3.appendChild(newh); + newh.appendChild(newspan); + + var currentdiv = document.getElementById("inbox_chat"); + currentdiv.appendChild(ddiv); + } + } + + function timestampToDateString(timestamp) { + var date = new Date(timestamp); + return date.toLocaleString("de-DE"); + } + + function myFunction(student, sender) { + console.log("YOU CLICKED ME!"); + console.log(student); + console.log(sender); + + $.ajax({ + url: "../rest/peerfeedback/getfeedbackbysender/" + student + "/" + sender + }).then(function (data) { + console.log("pffürsender:"+data); + loadFeedback(data); + //loadUsers(data); + }); + console.log("pffürsender"); + } + + /**function getsenderFunction(list) { + + console.log(list); + $.ajax({ + url: "../rest/peerfeedback/getSender/" + list, + async: true + }).then(function (data) { + console.log("getSender:"+data); + var s = data[0]; + //loadFeedbackSender(data); + loadFeedbackSender(data); + //loadUsers(data); + }); + console.log("getsenderFunction"); + }*/ +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/feedback/view-feedback.jsp b/gemeinsamforschen/src/main/webapp/feedback/view-feedback.jsp index 3ff1324a47d437f6c900e2d0a719fd446d21b206..784ba3b63a3e83dafadaa8aa65b3711bb3defe20 100644 --- a/gemeinsamforschen/src/main/webapp/feedback/view-feedback.jsp +++ b/gemeinsamforschen/src/main/webapp/feedback/view-feedback.jsp @@ -10,13 +10,11 @@ <head> <link rel="stylesheet" href="css/viewfeedback.css"> <omniDependencies:omniDependencies hierarchy="1"/> - <script src="js/givepeerfeedback.js"></script> - + <script src="js/viewpeerfeedback.js"></script> </head> <body> <menu:menu hierarchy="1"/> -<div id="wrapper"> <div class="page-content-wrapper"> <headLine:headLine/> <div class="container-fluid"> @@ -72,99 +70,41 @@ <div class="feedback-container"> <p>Hello. How are you today?</p> <span class="time-right">11:00</span> + <div class="container"> + <h3 class=" text-center">Feedback Nachrichten</h3> + <div class="messaging"> + <div class="inbox_msg"> + <div class="inbox_people"> + <div class="headind_srch"> + <div class="recent_heading" style="padding-left: 152px;"> + <h4>Ãœbersicht</h4> + </div> + <hr> + <div id="recieved" class="recent_heading" style="padding-left: 37px; width:50%; float: left; border-right: 1px solid #cdcdcd;"> + <h5>Empfangen</h5> + </div> + <input type="hidden" id="list" name="list"> + <div id="sended" class="recent_heading" style="float: right; padding-left: 37px;"> + <h5>Gesendet</h5> + </div> </div> - - <div class="feedback-container"> - <p>Hey! I'm fine. Thanks for asking!</p> - <span class="time-left">11:01</span> + <div class="inbox_chat" id="inbox_chat"> </div> - - <div class="feedback-container"> - <p>Sweet! So, what do you wanna do today?</p> - <span class="time-right">11:02</span> + </div> + <div class="mesgs"> + <div class="msg_history" id="msg_history"> </div> - - <div id="div1"></div> - </div> - </td> - - - <button class="btn btn-secondary" onclick="goBack()">Zurück</button> - - <script> - function goBack() { - window.history.back(); - } - </script> - - </td> - + </div> + </div></div> + <button class="btn btn-secondary" onclick="goBack()">Zurück</button> - <td id="chat"> - <div class="card"> - <div class="card-header"> - <h6 class="mb-0">Gruppen+Projekt Chat</h6> - </div> - <div class="card-body"> - <ul class="list-group"> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../libs/img/1.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Sara Doe:</a> This guy has been going - 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../libs/img/2.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Brennan Prill:</a> This guy has been - going 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - </ul> - <button class="btn btn-light"> - Add Comment - </button> - </div> - </div> </td> </tr> </table> </div> </div> <footer:footer/> -</div> </body> </html> diff --git a/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp b/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp index 0546575e0bfd3649cdb5d8d883c2501f0c84eff4..d66ec77f5570e31dabcd100c8431e51cc24648a1 100644 --- a/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp +++ b/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp @@ -8,9 +8,9 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <link rel="stylesheet" type="text/css" href="css/create-journal.css"> + <link rel="stylesheet" type="text/css" href="journal/css/create-journal.css"> <omniDependencies:omniDependencies hierarchy="1"/> - <script src="js/create-journal.js"></script> + <script src="journal/js/create-journal.js"></script> </head> <body> diff --git a/gemeinsamforschen/src/main/webapp/libs/img/givefeedback.png b/gemeinsamforschen/src/main/webapp/libs/img/givefeedback.png new file mode 100644 index 0000000000000000000000000000000000000000..00ab3d98860663b1faf192980f9e951c82b93894 Binary files /dev/null and b/gemeinsamforschen/src/main/webapp/libs/img/givefeedback.png differ diff --git a/gemeinsamforschen/src/main/webapp/libs/img/projekt_uebersicht.png b/gemeinsamforschen/src/main/webapp/libs/img/projekt_uebersicht.png new file mode 100644 index 0000000000000000000000000000000000000000..a5bde7a165f83478a30ba17a32eb309aa8b94347 Binary files /dev/null and b/gemeinsamforschen/src/main/webapp/libs/img/projekt_uebersicht.png differ diff --git a/gemeinsamforschen/src/main/webapp/libs/img/studenten_uebersicht.png b/gemeinsamforschen/src/main/webapp/libs/img/studenten_uebersicht.png new file mode 100644 index 0000000000000000000000000000000000000000..e536468b3e278aedec0713ed054e082d0a3dd2fc Binary files /dev/null and b/gemeinsamforschen/src/main/webapp/libs/img/studenten_uebersicht.png differ diff --git a/gemeinsamforschen/src/main/webapp/libs/img/viewfeedback_recieved.png b/gemeinsamforschen/src/main/webapp/libs/img/viewfeedback_recieved.png new file mode 100644 index 0000000000000000000000000000000000000000..426a4c0002befb86b499dc389a64be80fb864d9e Binary files /dev/null and b/gemeinsamforschen/src/main/webapp/libs/img/viewfeedback_recieved.png differ