Skip to content
Snippets Groups Projects
Commit b5118776 authored by Axel's avatar Axel
Browse files

Merge remote-tracking branch 'origin/peerfeedback' into development_master

# Conflicts:
#	gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/HeadLine.java
#	gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectDAO.java
#	gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Controller/PeerFeedbackController.java
#	gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Model/Peer2PeerFeedback.java
#	gemeinsamforschen/src/main/webapp/annotation/annotation-document.jsp
#	gemeinsamforschen/src/main/webapp/feedback/give-feedback.jsp
#	gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js
#	gemeinsamforschen/src/main/webapp/feedback/view-feedback.jsp
#	gemeinsamforschen/src/main/webapp/project-student.jsp
#	gemeinsamforschen/src/main/webapp/project/js/overview-student.js
#	gemeinsamforschen/src/main/webapp/project/overview-student.jsp
#	gemeinsamforschen/src/scripts/dbschema/createDummyCourses.sql
#	gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql
#	gemeinsamforschen/src/scripts/dbschema/peerfeedback
parents 20f92f43 238aba34
No related branches found
No related tags found
No related merge requests found
Showing
with 909 additions and 301 deletions
...@@ -36,47 +36,71 @@ public class PeerFeedbackController { ...@@ -36,47 +36,71 @@ public class PeerFeedbackController {
// close connection // close connection
connection.close(); connection.close();
// build response annotation String pair = feedback.getFeedbacksender();
//Annotation annotationResponse = getAnnotation(uuid); 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 ("wurde gesendet!"+ur);
//return null;
} }
//@Override public ArrayList<Peer2PeerFeedback> getsendedPeerfeedback(String sender) {
public Peer2PeerFeedback getPeer2PeerFeedback(String id) {
// establish connection ArrayList<Peer2PeerFeedback> fe = new ArrayList<>();
MysqlConnect connection = new MysqlConnect();
connection.connect(); connection.connect();
// build and execute request System.out.print("SENDER" + sender);
String request = "SELECT * FROM peerfeedback WHERE id = ?;";
VereinfachtesResultSet rs = connection.issueSelectStatement(request, id);
System.out.print(rs);
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 while (rss.next()) {
Peer2PeerFeedback feedback = getPeerfeedbackFromResultSet(rs); fe.add(getPeerfeedbackFromResultSet(rss));
System.out.print("FEEDBACKSSS" + fe);
}
// close connection connection.close();
connection.close(); System.out.print("FEEDBACKSSS" + fe);
System.out.print(feedback); return fe;
}
return feedback; public ArrayList<Peer2PeerFeedback> getRecievedPeerfeedback(String reciever) {
} else {
// close connection ArrayList<Peer2PeerFeedback> rf = new ArrayList<>();
connection.close();
System.out.print("null"); MysqlConnect connection = new MysqlConnect();
return null; 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<>(); ArrayList<Peer2PeerFeedback> feedbacks = new ArrayList<>();
...@@ -84,9 +108,9 @@ public class PeerFeedbackController { ...@@ -84,9 +108,9 @@ public class PeerFeedbackController {
connection.connect(); connection.connect();
// build and execute request String request = "SELECT * FROM peerfeedback WHERE reciever= ? AND sender= ?;";
String request = "SELECT * FROM peerfeedback WHERE sender= ?;"; VereinfachtesResultSet rs = connection.issueSelectStatement(request, reciever, sender);
VereinfachtesResultSet rs = connection.issueSelectStatement(request, sender); System.out.print("rsfb:"+rs);
while (rs.next()) { while (rs.next()) {
feedbacks.add(getPeerfeedbackFromResultSet(rs)); feedbacks.add(getPeerfeedbackFromResultSet(rs));
...@@ -96,6 +120,133 @@ public class PeerFeedbackController { ...@@ -96,6 +120,133 @@ public class PeerFeedbackController {
connection.close(); connection.close();
System.out.print(feedbacks); System.out.print(feedbacks);
return 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 { ...@@ -110,9 +261,38 @@ public class PeerFeedbackController {
Object category = rs.getObject("category"); Object category = rs.getObject("category");
String filename = rs.getString("filename"); 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"); String grID = rs.getString("groupId");
return new Peer2PeerFeedback(id, timestamp, Category.TITEL, reciever, sender, text, filename); 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);
}
} }
...@@ -13,48 +13,143 @@ import javax.ws.rs.PathParam; ...@@ -13,48 +13,143 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
@Path("/peerfeedback") @Path("/peerfeedback")
//@Consumes({"application/json"})
//@Produces({"application/json"})
//@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
//@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public class PeerFeedbackView { 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 @POST
@Path("/save") @Path("/save")
public Response createPeerfeedback(@FormParam("text") String text, @FormParam("student") String student, @FormParam("id") String id, @FormParam("reciever") String reciever, public Response createPeerfeedback(@FormParam("id") String id, @FormParam("timestamp") Timestamp timestamp, @FormParam("category") Category category,
@FormParam("sender") String sender, @FormParam("filename") String filename, @FormParam("category") Category category, @FormParam("timestamp") Long timestamp) { @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 System.out.print("VIEW:"+sender);
//PeerFeedbackController controller = new PeerFeedbackController(); Peer2PeerFeedback f = new Peer2PeerFeedback();
//Peer2PeerFeedback pf = controller.createPeer2PeerFeedback(feedback); f.setID(id);
//return Response.ok(pf).build(); 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(); 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 @GET
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Path("{sender}") @Path("/getUsers/{student}")
public Response getPeerfeedback(@PathParam("sender") String sender) { public Response getUsers(@PathParam("student") String token){
System.out.print("usersview:"+token);
PeerFeedbackController controller = new PeerFeedbackController(); PeerFeedbackController controller = new PeerFeedbackController();
ArrayList<Peer2PeerFeedback> fd = controller.getAllFeedbacks(sender); ArrayList<String> users = controller.getUserforFeedback(token);
return Response.ok(fd).build(); 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();
}
} }
.feedback-container {
border: 2px solid #dedede; .container{max-width:1170px; margin:auto;}
background-color: #f1f1f1; img{ max-width:100%;}
border-radius: 5px; .inbox_people {
padding: 10px; background: #f8f8f8 none repeat scroll 0 0;
margin: 10px 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; .recent_heading {width:40%;}
background-color: #ddd; .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 { .recent_heading h4 {
content: ""; color: #05728f;
clear: both; font-size: 21px;
display: table; 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; 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%; width: 100%;
margin-right: 20px; height: 50%;
border-radius: 50%;
} }
.inbox_chat { height: 550px; overflow-y: scroll;}
.feedback-container img.right { .active_chat{ background:#ebebeb;}
float: right;
margin-left: 20px; .incoming_msg_img {
margin-right: 0; 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; 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 { .type_msg {border-top: 1px solid #c4c4c4;position: relative;}
float: left; .msg_send_btn {
color: #999; 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
...@@ -8,93 +8,89 @@ ...@@ -8,93 +8,89 @@
<html> <html>
<head> <head>
<omniDependencies:omniDependencies hierarchy="1"/>
<script src="js/jquery.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
<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">
<script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> <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"> <link rel="stylesheet" type="text/css" href="../journal/css/create-journal.css">
<script src="js/peerfeedback.js"></script> <script src="js/givepeerfeedback.js"></script>
<omniDependencies:omniDependencies hierarchy="1"/>
</head> </head>
<body> <body>
<menu:menu hierarchy="1"/> <menu:menu hierarchy="1"/>
<div id="wrapper">
<div class="page-content-wrapper"> <div class="page-content-wrapper">
<headLine:headLine/> <headLine:headLine/>
<div> <div>
<table> <table>
<tr> <tr>
<h2> Gib dein Feedback ein!</h2> <h2 style="padding-left: 15px"> Schreibe dein Feedback ein!</h2>
<div class="line-spacer"></div> <div class="line-spacer"></div>
<p><span> Datei zum Feedback: SelectedFile.pdf </span></p> <hr />
<p class="text-primary"><span> Kategorie: Untersuchungskonzept </span></p> <div style="padding-left: 17px">
<hr/> <h3>Vorschläge für ein gutes Feedback:</h3>
<div class="form-check"> <div>1. Beginne das Feedback mit etwas Positiven</div>
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1"> <div>2. Äußere dein Feedback</div>
<label class="form-check-label" for="defaultCheck1"> <div>3. Beende das Feedback mit etwas Positiven</div>
Das fand ich gut <div style="height: 10px"></div>
</label> <div>Hilfestellungen für Formulierungen: </div>
</div> <div style="height: 10px"></div>
<div class="form-check"> <div> - das hat mir gut gefallen, weil ...</div>
<input class="form-check-input" type="checkbox" value="" id="defaultCheck2"> <div> - das habe ich nicht verstanden, weil ...</div>
<label class="form-check-label" for="defaultCheck1"> <div> - an diesem Punkt kam ich nicht weiter, weil ...</div>
Ich habe noch eine Frage <div> - das könnte man besser machen, z. B. durch ...</div>
</label> <div> - dabei habe ich noch eine Idee, z.B. ...</div>
</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/>
</div>
<hr>
<div> <div>
<table> <table>
<tr> <tr>
<td id="yourContent"> <td id="yourContent">
<h2> Schreibe dein Feedback! </h2>
<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="student" name="student">
<input type="hidden" id="project" name="project"> <input type="hidden" id="project" name="project">
<input type="hidden" id="feedbackid" name="id"> <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="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="filename" name="filename">
<input type="hidden" id="category" name="category"> <input type="hidden" id="zsm" name="zsm">
<input type="hidden" id="filename" name="filename">
<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-container">
<div class="journal-form-editor"> <div class="journal-form-editor" style="width: 150%">
<textarea id="editor" name="text"></textarea> <%--form="journalform"--%> <textarea id="editor" name="text" form="journalform"></textarea> <%--form="journalform"--%>
</div> </div>
<div class="journal-form-buttons"> <div class="journal-form-buttons">
<input class="btn btn-default btn-sm" type="submit"> <button id="backLink" class="btn btn-default btn-sm"> Zur&uuml;ck </button>
<a id="backLink" class="btn btn-default btn-sm"> Zur&uuml;ck </a> <button id="sub" class="btn btn-default btn-sm"> Speichern </button>
</div> </div>
<div>
<p id="as">Now what</p>
<input type="button" value="get txt" onclick="go()"/>
</div>
</div> </div>
</form> </form>
...@@ -103,22 +99,14 @@ ...@@ -103,22 +99,14 @@
</tr> </tr>
</table> </table>
</div> </div>
<script>
function goBack() {
window.history.back();
}
</script>
</tr> </tr>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
<footer:footer/>
</div> </div>
</body> </body>
......
var student = getQueryVariable("token"); var student = getQueryVariable("token");
var project = getQueryVariable("projectName"); 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 () { $(document).ready(function () {
$('#student').val(student); $('#student').val(student);
$('#project').val(project); $('#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({ $.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) { }).then(function (data) {
//$('#editor').append(data.descriptionMD); console.log("checkFeedback:"+data);
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);
}); });
// }
function loadFeedback(data) { function loadUsers(data) {
for (var feedback in data) {
/**var feedbackString = '<div class="pf-container">' + for (var user in data) {
'<div class="journal-date"> ' +
data[feedback].timestamp + var sender = [];
'</div>' + var name = [];
'<div class="journal-name">' + var pair = data[user].split("+");
// TODO id to name name.push(pair[0]);
data[feedback].text + sender.push(pair[1]);
'</div>' + console.log(name+sender);
'<div class="journal-category">' +
data[feedback].id + var newopt = document.createElement("OPTION");
'</div>' + newopt.insertAdjacentHTML('beforeend', name);
'<div class="journal-edit" align="right">'; newopt.value = data[user];
feedbackString = feedbackString + '</div>' + var currentdiv = document.getElementById("reciever");
'<div class="journal-text">' + currentdiv.appendChild(newopt);
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)
} }
};
}
}) })
\ No newline at end of file
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
...@@ -10,13 +10,11 @@ ...@@ -10,13 +10,11 @@
<head> <head>
<link rel="stylesheet" href="css/viewfeedback.css"> <link rel="stylesheet" href="css/viewfeedback.css">
<omniDependencies:omniDependencies hierarchy="1"/> <omniDependencies:omniDependencies hierarchy="1"/>
<script src="js/givepeerfeedback.js"></script> <script src="js/viewpeerfeedback.js"></script>
</head> </head>
<body> <body>
<menu:menu hierarchy="1"/> <menu:menu hierarchy="1"/>
<div id="wrapper">
<div class="page-content-wrapper"> <div class="page-content-wrapper">
<headLine:headLine/> <headLine:headLine/>
<div class="container-fluid"> <div class="container-fluid">
...@@ -72,99 +70,41 @@ ...@@ -72,99 +70,41 @@
<div class="feedback-container"> <div class="feedback-container">
<p>Hello. How are you today?</p> <p>Hello. How are you today?</p>
<span class="time-right">11:00</span> <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>
<div class="inbox_chat" id="inbox_chat">
<div class="feedback-container">
<p>Hey! I'm fine. Thanks for asking!</p>
<span class="time-left">11:01</span>
</div> </div>
</div>
<div class="feedback-container"> <div class="mesgs">
<p>Sweet! So, what do you wanna do today?</p> <div class="msg_history" id="msg_history">
<span class="time-right">11:02</span>
</div> </div>
<div id="div1"></div>
</div> </div>
</td> </div>
</div></div>
<button class="btn btn-secondary" onclick="goBack()">Zur&uuml;ck</button>
<button class="btn btn-secondary" onclick="goBack()">Zur&uuml;ck</button>
<script>
function goBack() {
window.history.back();
}
</script>
</td>
<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> </td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
<footer:footer/> <footer:footer/>
</div>
</body> </body>
</html> </html>
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> <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> <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"/> <omniDependencies:omniDependencies hierarchy="1"/>
<script src="js/create-journal.js"></script> <script src="journal/js/create-journal.js"></script>
</head> </head>
<body> <body>
......
gemeinsamforschen/src/main/webapp/libs/img/givefeedback.png

31.1 KiB

gemeinsamforschen/src/main/webapp/libs/img/projekt_uebersicht.png

316 KiB

gemeinsamforschen/src/main/webapp/libs/img/studenten_uebersicht.png

26.9 KiB

gemeinsamforschen/src/main/webapp/libs/img/viewfeedback_recieved.png

36.2 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment