Skip to content
Snippets Groups Projects
Commit f16c1f87 authored by KKlaue's avatar KKlaue
Browse files

#62 import new taglibs

#77 create Table for Peer2PeerFeedback
#78 db communication (create new entry)
#79 implement createPeer2PeerFeedback
#80 adjust view for student (givefeedback)
parent 12564d19
No related branches found
No related tags found
No related merge requests found
Showing
with 321 additions and 203 deletions
package unipotsdam.gf.interfaces;
import unipotsdam.gf.core.management.project.Project;
import unipotsdam.gf.core.management.user.User;
import unipotsdam.gf.modules.peer2peerfeedback.Peer2PeerFeedback;
import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
import unipotsdam.gf.modules.researchreport.ResearchReport;
import java.io.File;
......@@ -17,12 +17,20 @@ public interface Feedback {
/**
* create Peer2PeerFeedback Object
*
* @param feedbackuser: The student who is creating the feedback
* @param selectedstudent: The student who receive the feedback
* @param document: The selected document to give feedback about
* @param feedback:
* @return Returns the Peer2PeerFeedback Object
*/
Peer2PeerFeedback createPeer2PeerFeedback (Peer2PeerFeedback feedback);
//(String id, String reciever, String sender, String text, Category category, String filename);
/**
* create Peer2PeerFeedback Object
*
* @param feedbackuser:
* @param selectedstudent:
* @param document:
* **/
Peer2PeerFeedback createPeer2PeerFeedbackmask(User feedbackuser, User selectedstudent, File document);
/**
......
package unipotsdam.gf.modules.peer2peerfeedback;
import org.mockito.Mockito;
import uk.co.jemos.podam.api.PodamFactory;
import uk.co.jemos.podam.api.PodamFactoryImpl;
import unipotsdam.gf.assignments.Assignee;
......@@ -8,6 +7,7 @@ import unipotsdam.gf.assignments.NotImplementedLogger;
import unipotsdam.gf.core.management.project.Project;
import unipotsdam.gf.core.management.user.User;
import unipotsdam.gf.interfaces.Feedback;
import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
import unipotsdam.gf.modules.researchreport.ResearchReport;
import java.io.File;
......@@ -33,6 +33,8 @@ public class DummyFeedback implements Feedback {
return null;
}
public Peer2PeerFeedback createPeer2PeerFeedback (Peer2PeerFeedback feedback){return null; }
@Override
public Boolean giveFeedback(Peer2PeerFeedback feedback, ResearchReport document) {
return null;
......
package unipotsdam.gf.modules.peer2peerfeedback;
import unipotsdam.gf.core.management.user.User;
import java.io.File;
/**
Peer2PeerFeedback example
created by Katharina
*/
public class ExampleFeedback {
String feedbacktopic = "Vorschlag zur Methodik";
String feedbacktype = "Text";
Category feedbackcategory = Category.METHODIK;
User feedbackrec = new User();
User feedbacksend = new User();
File file = new File("src/main/resources/example.txt"); //gibt erstmal nur einen Pfad an
//String path = file.getAbsolutePath();
public Peer2PeerFeedback examplePeerFeedback (){
Peer2PeerFeedback example = new Peer2PeerFeedback(feedbacktopic, feedbacktype,
feedbackcategory, file, feedbacksend, feedbackrec);
return example;
}
}
package unipotsdam.gf.modules.peer2peerfeedback;
import unipotsdam.gf.core.management.user.User;
import java.io.File;
/**
Peer2PeerFeedback Object
created by Katharina
*/
public class Peer2PeerFeedback{
private String feedbacktopic;
private String feedbacktype;
private Category feedbackcategory;
private File document;
private User feedbacksender;
private User feedbackreceiver;
public Peer2PeerFeedback(String feedbacktopic, String feedbacktype, Category feedbackcategory, File document, User feedbacksender, User feedbackreceiver) {
this.feedbacktopic = feedbacktopic;
this.feedbacktype = feedbacktype;
this.feedbackcategory = feedbackcategory;
this.document = document;
this.feedbacksender = feedbacksender;
this.feedbackreceiver = feedbackreceiver;
}
public String getFeedbacktopic() {
return feedbacktopic;
}
public void setFeedbacktopic(String feedbacktopic) {
this.feedbacktopic = feedbacktopic;
}
public String getFeedbacktype() {
return feedbacktype;
}
public void setFeedbacktype(String feedbacktype) {
this.feedbacktype = feedbacktype;
}
public Category getFeedbackcategory() {
return feedbackcategory;
}
public void setFeedbackcategory(Category feedbackcategory) {
this.feedbackcategory = feedbackcategory;
}
public File getDocument() {
return document;
}
public void setDocument(File document) {
this.document = document;
}
public User getFeedbacksender() {
return feedbacksender;
}
public void setFeedbacksender(User feedbacksender) {
this.feedbacksender = feedbacksender;
}
public User getFeedbackreceiver() {
return feedbackreceiver;
}
public void setFeedbackreceiver(User feedbackreceiver) {
this.feedbackreceiver = feedbackreceiver;
}
@Override
public String toString() {
return "Peer2PeerFeedback{" +
"feedbacktopic=" + feedbacktopic +
", feedbacktype=" + feedbacktype +
", feedbackreference=" + feedbackcategory +
", feedbacksender='" + feedbacksender +
", feedbackreceiver=" + feedbackreceiver +
", document=" + document.toString() +
'}';
}
}
\ No newline at end of file
package unipotsdam.gf.modules.peer2peerfeedback;
public interface PeerFeedbackService {
}
package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Controller;
import unipotsdam.gf.core.database.mysql.MysqlConnect;
import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
import java.util.UUID;
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();
// }
// establish connection
MysqlConnect connection = new MysqlConnect();
connection.connect();
// 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());
// close connection
connection.close();
// build response annotation
//Annotation annotationResponse = getAnnotation(uuid);
// return Response.ok().build();
//return null;
}
}
package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model;
import unipotsdam.gf.core.management.user.User;
import unipotsdam.gf.modules.peer2peerfeedback.Category;
import java.io.File;
/**
Peer2PeerFeedback Object
created by Katharina
*/
public class Peer2PeerFeedback{
private String id;
private long timestamp;
private Category category;
private String text;
private String sender;
private String receiver;
private String filename;
public Peer2PeerFeedback(String id, long timestamp, Category category, String text, String sender, String receiver, String filename) {
this.id = id;
this.timestamp = timestamp;
this.category = category;
this.text = text;
this.sender = sender;
this.receiver = receiver;
this.filename = filename;
}
public Peer2PeerFeedback(){
}
public String getID() { return id; }
public void setID(String id) { this.id = id; }
public long getTimestamp() { return timestamp; }
public void setTimestamp(long timestamp) { this.timestamp = timestamp; }
public Category getFeedbackcategory() {
return category;
}
public void setFeedbackcategory(Category category) {
this.category = category;
}
public String getText() { return text; }
public void setText(String text) { this.text = text; }
public String getFilename() { return filename; }
public void setFilename(String filename) { this.filename = filename; }
public String getFeedbacksender() {
return sender;
}
public void setFeedbacksender(String feedbacksender) {
this.sender = sender;
}
public String getFeedbackreceiver() {
return receiver;
}
public void setFeedbackreceiver(String feedbackreceiver) {
this.receiver = receiver;
}
@Override
public String toString() {
return "Peer2PeerFeedback{" +
"id=" + id +
", timestamp=" + timestamp +
", category=" + category +
", sender='" + sender +
", receiver=" + receiver +
", text=" + text +
", filename=" + filename +
'}';
}
}
\ No newline at end of file
package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.View;
import com.sun.tools.xjc.model.Model;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import unipotsdam.gf.modules.peer2peerfeedback.Category;
import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Controller.PeerFeedbackController;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@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);
@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) {
// 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();
String message = text + student;
Peer2PeerFeedback feedback = new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", text, "filename");
PeerFeedbackController controller = new PeerFeedbackController();
controller.createPeer2PeerFeedback(feedback);
return Response.ok(feedback).build();
}
}
/**
* POST: Save an peerfeedback in the database
*
* @param Peer2PeerFeedback The post request
* @param responseHandler The response handler
*/
/**function createPeerfeedback(Peer2PeerFeedback, responseHandler) {
var url = "../rest/peerfeedback/save";
var json = JSON.stringify(Peer2PeerFeedback);
$.ajax({
url: url,
type: "POST",
data: json,
contentType: "application/json",
dataType: "json",
success: function (response) {
responseHandler(response);
}
});
}*/
var student = getQueryVariable("token");
var project = getQueryVariable("projectId");
function go(){
var a = document.getElementById("editor").valueOf().toString();
var b = document.getElementById("as");
b.innerHTML = a.toString();
//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);
}
}
$(document).ready(function() {
$('#student').val(student);
$('#project').val(project);
$.ajax({
url: "../rest/peerfeedback/save"
}).then(function (data) {
$('#editor').append(data.descriptionMD);
//TODO preselet in select tags
new InscrybMDE({
element: document.getElementById("editor"),
spellChecker: false,
forceSync: true,
});
console.log(data);
});
})
\ No newline at end of file
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
<!DOCTYPE html>
<html>
<head>
<%--
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>muster-gemeinsam-forschen</title>
......@@ -26,37 +29,22 @@
<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
<script src="../assets/js/Sidebar-Menu.js"></script>
<script src="../assets/js/editDescription.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>
<link rel="stylesheet" type="text/css" href="../assets/css/create-journal.css">
<script src="../assets/js/utility.js"></script>
<script src="../assets/js/project-student.js"></script>
<script src="../assets/js/peerfeedback.js"></script>
<omniDependencies:omniDependencies/>
</head>
<body>
<div id="wrapper">
<menu:menu></menu:menu>
<menu:menu/>
<div class="page-content-wrapper">
<div class="container-fluid">
<h1 id="projectId"> PeerFeedback</h1>
</div>
<div align="right" class="dropdown" >
<button style= "position: absolute; right: 50px;" class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
<i class="glyphicon glyphicon-envelope"></i>
</button>
<ul class="dropdown-menu">
<li><a class="viewfeedback" role="button">Feedback A</a></li>
<li><a class="viewfeedback" role="button">Feedback B</a></li>
<li><a class="viewfeedback" role="button">Feedback C</a></li>
</ul>
<a href="#">
<span class="glyphicon glyphicon-cog" style="font-size:29px;margin-right:30px;margin-top:3px;"></span>
</a>
</div>
<div>
</div>
<headLine:headLine/>
<div>
<table>
<tr>
......@@ -97,26 +85,32 @@
<td id="yourContent">
<h2> Schreibe dein Feedback! </h2>
<form id="descriptionform" class="form-journal" method="POST" action="../rest/projectdescription/saveText">
<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="sender" name="sender">
<input type="hidden" id="filename" name="filename">
<input type="hidden" id="category" name="category">
<input type="hidden" id="filename" name="filename">
<input type="hidden" name="student" value="0">
<input type="hidden" name="project" value="0">
<div class="description-form-container">
<div class="journal-form-container">
<div class ="description-form-editor">
<textarea id = "editor" name="text" form="descriptionform" >
</textarea>
<div class="journal-form-editor">
<textarea id="editor" name="text"></textarea> <%--form="journalform"--%>
</div>
<div class="description-form-buttons">
<button type="button" onclick="goBack()">Zur&uuml;ck</button>
<button type="button" class="viewprojectstudent">Speichern</button>
<div class="journal-form-buttons">
<input class="btn btn-default btn-sm" type="submit">
<a id="backLink" class="btn btn-default btn-sm"> Zur&uuml;ck </a>
</div>
<div>
<div>
<p id="as">Now what</p>
<input type="button" value="get txt" onclick="go()" />
</div>
</div>
......@@ -148,6 +142,7 @@
<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
<script src="../assets/js/Sidebar-Menu.js"></script>
<script src="../assets/js/createJournal.js"></script>
</body>
</html>
\ No newline at end of file
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>muster-gemeinsam-forschen</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="../assets/css/styles.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
<link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
<link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
<link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
<script src="../assets/js/utility.js"></script>
<script src="../assets/js/project-student.js"></script>
<omniDependencies:omniDependencies/>
</head>
<body>
<div id="wrapper">
<menu:menu></menu:menu>
<menu:menu/>
<div class="page-content-wrapper">
<headLine:headLine/>
<div class="container-fluid">
<h1 id="projectId"> PeerFeedback</h1>
</div>
......
USE `fltrail`;
CREATE TABLE if not exists `peerfeedback` (
`id` varchar(130) NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
`reciever` varchar(400) NOT NULL,
`sender` varchar(400) NOT NULL,
`text` varchar(1000) NOT NULL,
`category` varchar(400) NOT NULL,
`filename` varchar(400) NOT NULL,
PRIMARY KEY( id )
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
\ No newline at end of file
......@@ -6,10 +6,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.MockitoRule;
......@@ -17,18 +14,15 @@ import uk.co.jemos.podam.api.PodamFactory;
import uk.co.jemos.podam.api.PodamFactoryImpl;
import unipotsdam.gf.config.GFApplicationBinder;
import unipotsdam.gf.core.management.Management;
import unipotsdam.gf.core.management.group.Group;
import unipotsdam.gf.core.management.project.Project;
import unipotsdam.gf.core.management.project.ProjectConfiguration;
import unipotsdam.gf.core.management.user.User;
import unipotsdam.gf.core.states.ProjectPhase;
import unipotsdam.gf.modules.assessment.QuizAnswer;
import unipotsdam.gf.modules.assessment.controller.model.StudentAndQuiz;
import unipotsdam.gf.modules.groupfinding.GroupFormationMechanism;
import unipotsdam.gf.modules.groupfinding.GroupfindingCriteria;
import unipotsdam.gf.modules.journal.model.Journal;
import unipotsdam.gf.modules.peer2peerfeedback.Category;
import unipotsdam.gf.modules.peer2peerfeedback.Peer2PeerFeedback;
import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback;
import unipotsdam.gf.modules.researchreport.ResearchReport;
import unipotsdam.gf.modules.researchreport.ResearchReportManagement;
import javax.inject.Inject;
......@@ -39,7 +33,6 @@ import java.util.Iterator;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
......
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