From 4ae1842f8680bb502d54da145608ca1ee290ea4c Mon Sep 17 00:00:00 2001 From: Axel <wiepke@uni-potsdam.de> Date: Thu, 25 Oct 2018 16:32:34 +0200 Subject: [PATCH] #5 integration of eJournal. Reworked DB-scheme --- .../gf/config/GFApplicationBinder.java | 7 +- .../unipotsdam/gf/interfaces/IAnnotation.java | 2 +- .../unipotsdam/gf/interfaces/ISubmission.java | 2 +- .../controller/AnnotationController.java | 2 +- .../modules/annotation/model/Annotation.java | 2 - .../annotation/model/AnnotationMessage.java | 2 - .../model/AnnotationPostRequest.java | 2 - .../model}/Category.java | 2 +- .../annotation/view/AnnotationService.java | 2 +- .../websocket/AnnotationWSTarget.java | 2 +- .../AnnotationWebSocketEndpoint.java | 2 +- .../AssessmentDBCommunication.java.orig | 4 +- .../controller/view/QuizView.java.orig | 8 +- .../Controller/PeerFeedbackController.java | 298 ------------------ .../gf/modules/feedback/FeedbackImpl.java | 69 ---- .../feedback/Model/Peer2PeerFeedback.java | 108 ------- .../feedback/View/PeerFeedbackView.java | 155 --------- .../unipotsdam/gf/modules/group/GroupDAO.java | 2 +- .../gf/modules/journal/model/Journal.java | 18 +- .../journal/model/dao/JournalDAOImpl.java | 8 +- .../gf/modules/journal/util/JournalUtils.java | 2 +- .../gf/modules/journal/view/JournalView.java | 9 +- .../gf/modules/project/Project.java | 19 +- .../modules/project/ProjectConfiguration.java | 2 +- .../project/ProjectConfigurationDAO.java | 2 +- .../gf/modules/project/ProjectDAO.java | 20 +- .../gf/modules/project/ProjectView.java | 20 +- .../controller/SubmissionController.java | 4 +- .../submission/model/SubmissionPart.java | 2 +- .../model/SubmissionPartPostRequest.java | 2 +- .../SubmissionProjectRepresentation.java | 2 +- .../submission/view/SubmissionService.java | 2 +- .../gf/process/DossierCreationProcess.java | 5 +- .../gf/process/tasks/FeedbackTaskData.java | 2 +- .../gf/session/SessionExistsFilter.java | 2 +- .../main/java/unipotsdam/gf/taglibs/Menu.java | 10 +- .../main/webapp/feedback/css/viewfeedback.css | 146 --------- .../main/webapp/feedback/give-feedback.jsp | 113 ------- .../webapp/feedback/js/givepeerfeedback.js | 91 ------ .../main/webapp/feedback/js/peerfeedback.js | 55 ---- .../webapp/feedback/js/viewpeerfeedback.js | 293 ----------------- .../main/webapp/feedback/view-feedback.jsp | 110 ------- .../main/webapp/journal/create-journal.jsp | 127 ++++---- .../main/webapp/journal/edit-description.jsp | 5 +- .../src/main/webapp/journal/eportfolio.jsp | 123 ++++---- .../main/webapp/journal/js/create-journal.js | 12 +- .../main/webapp/project/js/create-project.js | 8 +- .../createDummyUsersGroupsProject.sql | 4 +- .../core/context/project/ProjectDAOTest.java | 1 - .../gf/interfaces/ActivityFlowTest.java | 29 +- .../gf/interfaces/AnnotationTest.java | 3 +- .../journal/model/dao/JournalDAOImplTest.java | 2 +- .../service/JournalServiceImplTest.java | 2 +- .../src/test/resources/database/fltrail.sql | 162 +++++++--- 54 files changed, 341 insertions(+), 1747 deletions(-) rename gemeinsamforschen/src/main/java/unipotsdam/gf/modules/{feedback => annotation/model}/Category.java (82%) delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Controller/PeerFeedbackController.java delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/FeedbackImpl.java delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Model/Peer2PeerFeedback.java delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/View/PeerFeedbackView.java delete mode 100644 gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css delete mode 100644 gemeinsamforschen/src/main/webapp/feedback/give-feedback.jsp delete mode 100644 gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js delete mode 100644 gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js delete mode 100644 gemeinsamforschen/src/main/webapp/feedback/js/viewpeerfeedback.js delete mode 100644 gemeinsamforschen/src/main/webapp/feedback/view-feedback.jsp diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java index 2bc1b2f6..34c310d5 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java @@ -6,11 +6,13 @@ import unipotsdam.gf.modules.annotation.controller.AnnotationController; import unipotsdam.gf.modules.assessment.controller.service.AssessmentDBCommunication; import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment; import unipotsdam.gf.modules.communication.service.CommunicationDummyService; -import unipotsdam.gf.modules.feedback.FeedbackImpl; import unipotsdam.gf.modules.group.DummyProjectCreationService; import unipotsdam.gf.modules.group.GroupDAO; import unipotsdam.gf.modules.group.GroupfindingImpl; import unipotsdam.gf.modules.journal.service.IJournalImpl; +import unipotsdam.gf.modules.journal.service.JournalService; +import unipotsdam.gf.modules.journal.service.JournalServiceImpl; +import unipotsdam.gf.modules.journal.util.JournalUtils; import unipotsdam.gf.modules.project.Management; import unipotsdam.gf.modules.project.ManagementImpl; import unipotsdam.gf.modules.project.ProjectConfigurationDAO; @@ -40,6 +42,8 @@ public class GFApplicationBinder extends AbstractBinder { bind(PeerAssessment.class).to(IPeerAssessment.class); bind(PhasesImpl.class).to(IPhases.class); bind(GFContext.class).to(GFContext.class); + bind(JournalUtils.class).to(JournalUtils.class); + bind(JournalServiceImpl.class).to(JournalService.class); bind(ManagementImpl.class).to(Management.class); bind(DummyResearchReportManagement.class).to(ResearchReportManagement.class); bind(IJournalImpl.class).to(IJournal.class); @@ -58,7 +62,6 @@ public class GFApplicationBinder extends AbstractBinder { bind(ProjectDAO.class).to(ProjectDAO.class); bind(GroupDAO.class).to(GroupDAO.class); bind(TaskDAO.class).to(TaskDAO.class); - bind(FeedbackImpl.class).to(Feedback.class); bindMore(); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IAnnotation.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IAnnotation.java index c65a363e..021265a1 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IAnnotation.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IAnnotation.java @@ -3,7 +3,7 @@ package unipotsdam.gf.interfaces; import unipotsdam.gf.modules.annotation.model.Annotation; import unipotsdam.gf.modules.annotation.model.AnnotationPatchRequest; import unipotsdam.gf.modules.annotation.model.AnnotationPostRequest; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import java.util.ArrayList; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ISubmission.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ISubmission.java index f6ba1456..f0009798 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ISubmission.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ISubmission.java @@ -1,6 +1,6 @@ package unipotsdam.gf.interfaces; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import unipotsdam.gf.modules.submission.model.FullSubmission; import unipotsdam.gf.modules.submission.model.FullSubmissionPostRequest; import unipotsdam.gf.modules.submission.model.SubmissionPart; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java index 07af9518..c86a15b4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/controller/AnnotationController.java @@ -7,7 +7,7 @@ import unipotsdam.gf.modules.annotation.model.Annotation; import unipotsdam.gf.modules.annotation.model.AnnotationBody; import unipotsdam.gf.modules.annotation.model.AnnotationPatchRequest; import unipotsdam.gf.modules.annotation.model.AnnotationPostRequest; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.inject.Inject; import java.util.ArrayList; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java index cdc7ed16..b7256cc6 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Annotation.java @@ -1,7 +1,5 @@ package unipotsdam.gf.modules.annotation.model; -import unipotsdam.gf.modules.feedback.Category; - /** * @author Sven Kästle * skaestle@uni-potsdam.de diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java index de3ba66c..37cc3002 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java @@ -1,7 +1,5 @@ package unipotsdam.gf.modules.annotation.model; -import unipotsdam.gf.modules.feedback.Category; - public class AnnotationMessage { // variables private String from; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java index 61ebb981..8d2bfced 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationPostRequest.java @@ -1,7 +1,5 @@ package unipotsdam.gf.modules.annotation.model; -import unipotsdam.gf.modules.feedback.Category; - /** * @author Sven Kästle * skaestle@uni-potsdam.de diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Category.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Category.java similarity index 82% rename from gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Category.java rename to gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Category.java index 67a3b26d..323dcde8 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Category.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/Category.java @@ -1,4 +1,4 @@ -package unipotsdam.gf.modules.feedback; +package unipotsdam.gf.modules.annotation.model; /** Categories for feedback and documents diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/view/AnnotationService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/view/AnnotationService.java index 2119e428..4cb7382a 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/view/AnnotationService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/view/AnnotationService.java @@ -6,7 +6,7 @@ import unipotsdam.gf.modules.annotation.model.Annotation; import unipotsdam.gf.modules.annotation.model.AnnotationPatchRequest; import unipotsdam.gf.modules.annotation.model.AnnotationPostRequest; import unipotsdam.gf.modules.annotation.model.AnnotationResponse; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.inject.Inject; import javax.ws.rs.Consumes; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWSTarget.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWSTarget.java index 74fffe95..8c11de7c 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWSTarget.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWSTarget.java @@ -1,6 +1,6 @@ package unipotsdam.gf.modules.annotation.websocket; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; /** * @author Sven Kästle diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java index 6cb6f579..74373313 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java @@ -1,7 +1,7 @@ package unipotsdam.gf.modules.annotation.websocket; import unipotsdam.gf.modules.annotation.model.AnnotationMessage; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.websocket.EncodeException; import javax.websocket.OnClose; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java.orig index f0e3ec9a..9148d3a8 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java.orig +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java.orig @@ -342,8 +342,8 @@ class AssessmentDBCommunication { while (next) { String fromPeer = selectWorkRatingResultSet.getString("fromPeer"); if (!studentsInProject.contains(fromPeer)) { - StudentIdentifier userNameentifier = new StudentIdentifier(projectName, fromPeer); - result.add(userNameentifier); + StudentIdentifier studentIdentifier = new StudentIdentifier(projectName, fromPeer); + result.add(studentIdentifier); } next = selectWorkRatingResultSet.next(); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java.orig index 9121f510..4d8744b6 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java.orig +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java.orig @@ -179,12 +179,12 @@ public class QuizView { @Produces(MediaType.APPLICATION_JSON) @Path("/total/project/{projectName}/student/{student}") public ArrayList<Performance> getTotalAssessment(@PathParam("projectName") String ProjectId, @PathParam("student") String student) { - StudentIdentifier userNameentifier = new StudentIdentifier(ProjectId, student); - return getTotalAssessment(userNameentifier); + StudentIdentifier studentIdentifier = new StudentIdentifier(ProjectId, student); + return getTotalAssessment(studentIdentifier); } //////////dummy/////////////funktioniert wie geplant////////////////////////////////// - private ArrayList<Performance> getTotalAssessment(StudentIdentifier userNameentifier) { - return peer.getTotalAssessment(userNameentifier); + private ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) { + return peer.getTotalAssessment(studentIdentifier); } /////////dummy/////////////funktioniert wie geplant////////////////////////////////// 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 deleted file mode 100644 index d9ffa981..00000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Controller/PeerFeedbackController.java +++ /dev/null @@ -1,298 +0,0 @@ -package unipotsdam.gf.modules.feedback.Controller; - -import unipotsdam.gf.mysql.MysqlConnect; -import unipotsdam.gf.mysql.VereinfachtesResultSet; -import unipotsdam.gf.modules.feedback.Category; -import unipotsdam.gf.modules.feedback.Model.Peer2PeerFeedback; - -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.UUID; - -public class PeerFeedbackController { - - @Inject - MysqlConnect connection; - - - - //@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 - - 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(); - - 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 ("wurde gesendet!"+ur); - - } - - public ArrayList<Peer2PeerFeedback> getsendedPeerfeedback(String sender) { - - ArrayList<Peer2PeerFeedback> fe = new ArrayList<>(); - - MysqlConnect connection = new MysqlConnect(); - connection.connect(); - - System.out.print("SENDER" + sender); - - String request = "SELECT * FROM peerfeedback WHERE sender= ?;"; - VereinfachtesResultSet rss = connection.issueSelectStatement(request, sender); - System.out.print("rs:" + rss); - System.out.print("rs:" + rss.next()); - - while (rss.next()) { - fe.add(getPeerfeedbackFromResultSet(rss)); - System.out.print("FEEDBACKSSS" + fe); - } - - connection.close(); - System.out.print("FEEDBACKSSS" + fe); - return fe; - } - - public ArrayList<Peer2PeerFeedback> getRecievedPeerfeedback(String reciever) { - - 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> getFeedbacksBySender(String reciever, String sender) { - - ArrayList<Peer2PeerFeedback> feedbacks = new ArrayList<>(); - - // establish connection - - connection.connect(); - - 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)); - } - - // close connection - 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; - } - - } - - - private Peer2PeerFeedback getPeerfeedbackFromResultSet(VereinfachtesResultSet rs) { - - String id = rs.getString("id"); - long timestamp = rs.getTimestamp(2).getTime(); - String reciever = rs.getString("reciever"); - String sender = rs.getString("sender"); - String text = rs.getString("text"); - Object category = rs.getObject("category"); - String filename = rs.getString("filename"); - - return new Peer2PeerFeedback(id,timestamp,Category.valueOf(category),rec, sender, txt, filename); - } - - private String getGroupIDFromResultSet(VereinfachtesResultSet rs) { - - 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/FeedbackImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/FeedbackImpl.java deleted file mode 100644 index fabd7d37..00000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/FeedbackImpl.java +++ /dev/null @@ -1,69 +0,0 @@ -package unipotsdam.gf.modules.feedback; - -import unipotsdam.gf.interfaces.Feedback; -import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; -import unipotsdam.gf.modules.feedback.Model.Peer2PeerFeedback; -import unipotsdam.gf.modules.group.GroupDAO; -import unipotsdam.gf.modules.group.GroupFormationMechanism; -import unipotsdam.gf.modules.project.Project; -import unipotsdam.gf.modules.researchreport.ResearchReport; -import unipotsdam.gf.modules.submission.controller.SubmissionController; -import unipotsdam.gf.modules.user.User; -import unipotsdam.gf.modules.user.UserDAO; -import unipotsdam.gf.process.constraints.ConstraintsMessages; - -import javax.inject.Inject; -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class FeedbackImpl implements Feedback { - - - @Inject - private UserDAO userDAO; - - @Inject - private GroupDAO groupDAO; - - @Inject - private SubmissionController submissionController; - - @Override - public void assigningMissingFeedbackTasks(Project project) { - - } - - @Override - public void assignFeedbackTasks(Project project) { - GroupFormationMechanism groupFormationMechanism = groupDAO.getGroupFormationMechanism(project); - - switch (groupFormationMechanism) { - case SingleUser: - List<User> usersByProjectName = userDAO.getUsersByProjectName(project.getName()); - User firstUser = usersByProjectName.get(0); - User lastUser = usersByProjectName.get(usersByProjectName.size()-1); - submissionController.updateFullSubmission(firstUser, lastUser); - for (int i = 0; i <= usersByProjectName.size()-2;i++) { - User feedbackGiver =usersByProjectName.get(i); - User submissionOwner = usersByProjectName.get(i+1); - submissionController.updateFullSubmission(submissionOwner, feedbackGiver); - } - break; - case UserProfilStrategy: - case Manual: - case LearningGoalStrategy: - // TODO implement assigning feedback tasks in case of groups - // consider https://docs.google.com/document/d/1DLuggw7gxLbpbDblDTWVtYC-EI4Tb42y285mdABLC0Q/edit?ts=5bbb1f20# - } - - } - - @Override - public ResearchReport getFeedbackTask(User student) { - return null; - } - - -} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Model/Peer2PeerFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Model/Peer2PeerFeedback.java deleted file mode 100644 index beac0364..00000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/Model/Peer2PeerFeedback.java +++ /dev/null @@ -1,108 +0,0 @@ -package unipotsdam.gf.modules.feedback.Model; - -import unipotsdam.gf.modules.feedback.Category; - -import static unipotsdam.gf.util.MarkdownUtils.convertMarkdownToHtml; - -/** - * 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 = convertMarkdownToHtml(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 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 deleted file mode 100644 index 382cdbb7..00000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/View/PeerFeedbackView.java +++ /dev/null @@ -1,155 +0,0 @@ -package unipotsdam.gf.modules.feedback.View; - -import unipotsdam.gf.modules.feedback.Category; -import unipotsdam.gf.modules.feedback.Controller.PeerFeedbackController; -import unipotsdam.gf.modules.feedback.Model.Peer2PeerFeedback; - -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -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(MediaType.APPLICATION_FORM_URLENCODED) -@Produces(MediaType.APPLICATION_JSON) -public class PeerFeedbackView { - - /** - * 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("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) { - - 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); - - PeerFeedbackController controller = new PeerFeedbackController(); - 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(); - } - - /** - * 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("/getUsers/{student}") - public Response getUsers(@PathParam("student") String token){ - - System.out.print("usersview:"+token); - PeerFeedbackController controller = new PeerFeedbackController(); - 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/java/unipotsdam/gf/modules/group/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java index bb086571..85bbf3ee 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java @@ -29,7 +29,7 @@ public class GroupDAO { this.connect = connect; } - ArrayList<String> getStudentsInSameGroupAs(StudentIdentifier student) { + public ArrayList<String> getStudentsInSameGroupAs(StudentIdentifier student) { connect.connect(); ArrayList<String> result = new ArrayList<>(); int groupId= getGroupByStudent(student); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java index 369f6a74..e91cfc9e 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java @@ -2,7 +2,7 @@ package unipotsdam.gf.modules.journal.model; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import java.util.Date; @@ -14,7 +14,7 @@ import static unipotsdam.gf.util.MarkdownUtils.convertMarkdownToHtml; public class Journal { private String id; - private StudentIdentifier userNameentifier; + private StudentIdentifier studentIdentifier; private String entryHTML; private String entryMD; private long timestamp; @@ -24,9 +24,9 @@ public class Journal { public Journal() {} - public Journal(String id, StudentIdentifier userNameentifier, String entryMD, Visibility visibility, Category category) { + public Journal(String id, StudentIdentifier studentIdentifier, String entryMD, Visibility visibility, Category category) { this.id = id; - this.userNameentifier = userNameentifier; + this.studentIdentifier = studentIdentifier; entryHTML = convertMarkdownToHtml(entryMD); this.entryMD = entryMD; this.visibility = visibility; @@ -35,9 +35,9 @@ public class Journal { timestamp = new Date().getTime(); } - public Journal(String id, StudentIdentifier userNameentifier, String entryMD, long timestamp, Visibility visibility, Category category, boolean open) { + public Journal(String id, StudentIdentifier studentIdentifier, String entryMD, long timestamp, Visibility visibility, Category category, boolean open) { this.id = id; - this.userNameentifier = userNameentifier; + this.studentIdentifier = studentIdentifier; entryHTML = convertMarkdownToHtml(entryMD); this.entryMD = entryMD; this.timestamp = timestamp; @@ -68,11 +68,11 @@ public class Journal { } public StudentIdentifier getStudentIdentifier() { - return userNameentifier; + return studentIdentifier; } public void setStudentIdentifier(StudentIdentifier userNameentifier) { - this.userNameentifier = userNameentifier; + this.studentIdentifier = userNameentifier; } public String getEntryHTML() { @@ -111,7 +111,7 @@ public class Journal { public String toString() { return "Journal{" + "id=" + id + - ", userNameentifier=" + userNameentifier + + ", studentIdentifier=" + studentIdentifier + ", entryHTML='" + entryHTML + '\'' + ", entryMD='" + entryMD + '\'' + ", timestamp=" + timestamp + diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java index d517ee41..27a35424 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java @@ -15,10 +15,10 @@ import java.util.UUID; public class JournalDAOImpl implements JournalDAO { @Inject - MysqlConnect connection; + private MysqlConnect connection; - - JournalUtils utils; + @Inject + private JournalUtils utils; @Override public void createJournal(Journal journal) { @@ -32,7 +32,7 @@ public class JournalDAOImpl implements JournalDAO { connection.connect(); // build and execute request - String request = "INSERT INTO journals (`id`, `userName`, `projectName`, `text`, `visibility`,`category`, `open` ) VALUES (?,?,?,?,?,?,?);"; + String request = "INSERT INTO journals (`id`, `userEmail`, `projectName`, `text`, `visibility`,`category`, `open` ) VALUES (?,?,?,?,?,?,?);"; connection.issueInsertOrDeleteStatement(request, uuid, journal.getStudentIdentifier().getUserEmail(), journal.getStudentIdentifier().getProjectName(), journal.getEntryMD(), journal.getVisibility(), journal.getCategory(), true); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java index 505c756d..31573fee 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java @@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory; import unipotsdam.gf.mysql.MysqlConnect; import unipotsdam.gf.mysql.VereinfachtesResultSet; import unipotsdam.gf.modules.journal.model.Visibility; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.inject.Inject; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java index f60a8730..ad9a0b14 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java @@ -7,7 +7,12 @@ import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.journal.model.JournalFilter; import unipotsdam.gf.modules.journal.service.JournalService; import unipotsdam.gf.modules.journal.service.JournalServiceImpl; +import unipotsdam.gf.modules.project.Management; +import unipotsdam.gf.modules.project.ProjectDAO; +import unipotsdam.gf.process.ProjectCreationProcess; +import unipotsdam.gf.session.GFContexts; +import javax.inject.Inject; import javax.ws.rs.Consumes; import javax.ws.rs.FormParam; import javax.ws.rs.GET; @@ -30,8 +35,10 @@ import java.util.ArrayList; @Path("/journal") public class JournalView { + @Inject + private JournalService journalService; + private final Logger log = LoggerFactory.getLogger(JournalView.class); - private final JournalService journalService = new JournalServiceImpl(); /** * Returns a specific Journal diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java index c48ae3bb..5f6aadb3 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java @@ -17,19 +17,17 @@ public class Project { private Long timecreated; //timestamp macht zu viele Probleme // the id of the authorEmail (not the token) private String authorEmail; - private String adminPassword; private Phase phase; private String[] tags; public Project() { } - public Project(String name, String password, Boolean active, String author, String adminPassword, String[] tags) { + public Project(String name, String password, Boolean active, String author, String[] tags) { this.name = name; this.password = password; this.active = active; this.authorEmail = author; - this.adminPassword = adminPassword; this.timecreated = System.currentTimeMillis(); // default starting at course creation if new this.setPhase(Phase.CourseCreation); @@ -37,14 +35,12 @@ public class Project { } public Project( - String name, String password, Boolean active, Long timecreated, String authorEmail, - String adminPassword, Phase phase, String[] tags) { + String name, String password, Boolean active, Long timecreated, String authorEmail, Phase phase, String[] tags) { this.name = name; this.password = password; this.active = active; this.authorEmail = authorEmail; this.timecreated = timecreated; - this.adminPassword = adminPassword; this.phase = phase; this.tags = tags; } @@ -83,16 +79,6 @@ public class Project { this.authorEmail = authorEmail; } - public String getAdminPassword() { - return adminPassword; - } - - public void setAdminPassword(String adminPassword) { - this.adminPassword = adminPassword; - } - - - public Phase getPhase() { return phase; } @@ -142,7 +128,6 @@ public class Project { sb.append(", active=").append(active); sb.append(", timecreated=").append(timecreated); sb.append(", authorEmail='").append(authorEmail).append('\''); - sb.append(", adminPassword='").append(adminPassword).append('\''); sb.append(", phase=").append(phase); sb.append(", tags=").append(Arrays.toString(tags)); sb.append('}'); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfiguration.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfiguration.java index 72cef067..2eac4f41 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfiguration.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfiguration.java @@ -3,7 +3,7 @@ package unipotsdam.gf.modules.project; import unipotsdam.gf.process.phases.Phase; import unipotsdam.gf.modules.assessment.AssessmentMechanism; import unipotsdam.gf.modules.group.GroupFormationMechanism; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import java.util.HashMap; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfigurationDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfigurationDAO.java index 64aba706..dd7b6238 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfigurationDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectConfigurationDAO.java @@ -5,7 +5,7 @@ import unipotsdam.gf.mysql.VereinfachtesResultSet; import unipotsdam.gf.process.phases.Phase; import unipotsdam.gf.modules.assessment.AssessmentMechanism; import unipotsdam.gf.modules.group.GroupFormationMechanism; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.inject.Inject; import java.util.HashMap; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java index 3da36e5c..fe959f30 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java @@ -12,15 +12,22 @@ import javax.annotation.ManagedBean; import javax.annotation.Resource; import javax.inject.Inject; import javax.inject.Singleton; +import java.security.Timestamp; +import java.time.Instant; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.TimeZone; + +import static java.util.TimeZone.getDefault; @ManagedBean @Resource @Singleton public class ProjectDAO { + @Inject private MysqlConnect connect; @Inject @@ -37,12 +44,12 @@ public class ProjectDAO { public void persist(Project project) { if (!exists(project)) { - + java.sql.Timestamp timestamp = new java.sql.Timestamp(project.getTimecreated()); connect.connect(); String mysqlRequest = - "INSERT INTO projects (`name`, `password`, `active`, `timecreated`, `author`, " + "`adminPassword`, `phase`) values (?,?,?,?,?,?,?)"; + "INSERT INTO projects (`name`, `password`, `active`, `timecreated`, `author`, `phase`) values (?,?,?,?,?,?)"; connect.issueInsertOrDeleteStatement(mysqlRequest, project.getName(), project.getPassword(), - project.isActive(), project.getTimecreated(), project.getAuthorEmail(), project.getAdminPassword(), + project.isActive(), timestamp, project.getAuthorEmail(), project.getPhase() == null ? Phase.CourseCreation : project.getPhase()); connect.close(); @@ -73,9 +80,9 @@ public class ProjectDAO { public Boolean exists(Project project) { Boolean result; connect.connect(); - String mysqlRequest = "SELECT * FROM projects where name = ? and adminPassword = ?"; + String mysqlRequest = "SELECT * FROM projects where name = ?"; VereinfachtesResultSet vereinfachtesResultSet = - connect.issueSelectStatement(mysqlRequest, project.getName(), project.getAdminPassword()); + connect.issueSelectStatement(mysqlRequest, project.getName()); if (vereinfachtesResultSet == null) { return false; } @@ -113,11 +120,10 @@ public class ProjectDAO { boolean active = vereinfachtesResultSet.getBoolean("active"); long timestamp = vereinfachtesResultSet.getLong("timecreated"); String author = vereinfachtesResultSet.getString("author"); - String adminPassword = vereinfachtesResultSet.getString("adminpassword"); String phase = vereinfachtesResultSet.getString("phase"); - return new Project(id, password, active, timestamp, author, adminPassword, Phase.valueOf(phase), null); + return new Project(id, password, active, timestamp, author, Phase.valueOf(phase), null); } public java.util.List<String> getTags(Project project) { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectView.java index 0543d680..5ee158ce 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectView.java @@ -1,5 +1,6 @@ package unipotsdam.gf.modules.project; +import com.sun.org.apache.xpath.internal.operations.Bool; import unipotsdam.gf.process.ProjectCreationProcess; import unipotsdam.gf.process.tasks.TaskDAO; import unipotsdam.gf.modules.user.User; @@ -33,14 +34,11 @@ public class ProjectView { @Inject private ProjectCreationProcess projectCreationProcess; - @Inject - private GFContext gfContext; - - @PUT + @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) @Path("/create") - public void createProject(@Context HttpServletRequest req, Project project) throws URISyntaxException, IOException { + public String createProject(@Context HttpServletRequest req, Project project) throws URISyntaxException, IOException { String userEmail = gfContexts.getUserEmail(req); User user = iManagement.getUserByEmail(userEmail); assert user != null; @@ -48,23 +46,21 @@ public class ProjectView { throw new IOException("NO user with this email exists in db"); } projectCreationProcess.createProject(project, user); + return "success"; } - @PUT + @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) @Path("/delete/project/{projectName}") public void deleteProject(@Context HttpServletRequest req, @PathParam("projectName") String projectName) throws URISyntaxException, IOException { - Boolean isStudent = gfContext.getUser().getStudent(); + String userEmail1 = gfContexts.getUserEmail(req); + User user = iManagement.getUserByEmail(userEmail1); + Boolean isStudent= user.getStudent(); String userEmail = gfContexts.getUserEmail(req); Project project = projectDAO.getProjectByName(projectName); if (!isStudent){ if (project.getAuthorEmail().equals(userEmail)){ - User user = iManagement.getUserByEmail(userEmail); - assert user != null; - if (user == null) { - throw new IOException("NO user with this email exists in db"); - } projectCreationProcess.deleteProject(project); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java index b5aeb648..d5553bfa 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java @@ -12,15 +12,13 @@ import unipotsdam.gf.modules.user.UserDAO; import unipotsdam.gf.mysql.MysqlConnect; import unipotsdam.gf.mysql.VereinfachtesResultSet; import unipotsdam.gf.interfaces.ISubmission; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import unipotsdam.gf.modules.submission.model.FullSubmission; import unipotsdam.gf.modules.submission.model.FullSubmissionPostRequest; import unipotsdam.gf.modules.submission.model.SubmissionPart; import unipotsdam.gf.modules.submission.model.SubmissionPartBodyElement; import unipotsdam.gf.modules.submission.model.SubmissionPartPostRequest; import unipotsdam.gf.modules.submission.model.SubmissionProjectRepresentation; -import unipotsdam.gf.process.constraints.ConstraintsImpl; -import unipotsdam.gf.process.phases.Phase; import unipotsdam.gf.process.progress.HasProgress; import unipotsdam.gf.process.progress.ProgressData; import unipotsdam.gf.process.tasks.FeedbackTaskData; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPart.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPart.java index 4d0ff854..c918a958 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPart.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPart.java @@ -1,6 +1,6 @@ package unipotsdam.gf.modules.submission.model; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import java.util.ArrayList; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPartPostRequest.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPartPostRequest.java index d0dc0f33..1dac58a1 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPartPostRequest.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionPartPostRequest.java @@ -1,6 +1,6 @@ package unipotsdam.gf.modules.submission.model; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import java.util.ArrayList; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionProjectRepresentation.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionProjectRepresentation.java index 50635441..228b29e0 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionProjectRepresentation.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/model/SubmissionProjectRepresentation.java @@ -1,6 +1,6 @@ package unipotsdam.gf.modules.submission.model; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; public class SubmissionProjectRepresentation { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java index a669d28e..b4310b14 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java @@ -1,6 +1,6 @@ package unipotsdam.gf.modules.submission.view; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import unipotsdam.gf.modules.project.Project; import unipotsdam.gf.modules.submission.controller.SubmissionController; import unipotsdam.gf.modules.submission.model.FullSubmission; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java index b4379f19..e8b011eb 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java @@ -28,9 +28,6 @@ public class DossierCreationProcess { @Inject private TaskDAO taskDAO; - @Inject - private Feedback feedback; - @Inject private ConstraintsImpl constraints; @@ -88,7 +85,7 @@ public class DossierCreationProcess { if (constraints.checkIfFeedbackCanBeDistributed(project)) { // distributefeedbacks - feedback.assignFeedbackTasks(project); + //assignFeedbackTasks(project); // persist tasks for feedback taskDAO.persistMemberTask( diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/FeedbackTaskData.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/FeedbackTaskData.java index 0f015ded..81ce2238 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/FeedbackTaskData.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/FeedbackTaskData.java @@ -1,6 +1,6 @@ package unipotsdam.gf.process.tasks; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import unipotsdam.gf.modules.submission.model.FullSubmission; import unipotsdam.gf.modules.user.User; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java index 32e370b1..52afe707 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/session/SessionExistsFilter.java @@ -53,7 +53,7 @@ public class SessionExistsFilter implements Filter { if (attribute == null) { //redirectToLogin(request, response); - request1.getSession().setAttribute(GFContexts.USEREMAIL, "vodkas@yolo.com"); + request1.getSession().setAttribute(GFContexts.USEREMAIL, attribute); chain.doFilter(request,response); } else { final ServiceLocator locator = ServiceLocatorUtilities.bind(new GFApplicationBinder()); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java index 5bcbe28e..af461e79 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java @@ -57,9 +57,13 @@ public class Menu extends SimpleTagSupport { String menuString = "" + " <header>\n" + " <div class=\"row\">\n" + - " <div class=\"nav-group-left\">" + - " <a class=\"nav-link\" href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "project/overview-student.jsp?projectName=" + projectName + "\">meine Projekte</a>\n" + - " <a class=\"nav-link\" href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "profile/profile.jsp?projectName=" + projectName + "\">Profil</a>\n"+ + " <div class=\"nav-group-left\">"; + if (isStudent){ + menuString+=" <a class=\"nav-link\" style=\"color:white;\" href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "project/overview-student.jsp\">meine Projekte</a>\n"; + }else{ + menuString+=" <a class=\"nav-link\" style=\"color:white;\" href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "project/overview-docent.jsp\">meine Projekte</a>\n"; + } + menuString+=" <a class=\"nav-link\" href=\"" + OmniDependencies.hierarchyToString(hierarchyLevel) + "profile/profile.jsp?projectName=" + projectName + "\">Profil</a>\n"+ " </div>" + " <div class=\"nav-group-right\">" + " <a class=\"nav-link\" id=\"logout\" style=\"cursor:pointer\">Logout</a>\n" + diff --git a/gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css b/gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css deleted file mode 100644 index 59669194..00000000 --- a/gemeinsamforschen/src/main/webapp/feedback/css/viewfeedback.css +++ /dev/null @@ -1,146 +0,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;} - - -.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;} - -.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;} - -.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; - 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%; - height: 50%; -} -.inbox_chat { height: 550px; overflow-y: scroll;} - -.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%; -} - -.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; - 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%; -} - -.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 deleted file mode 100644 index e7b404e3..00000000 --- a/gemeinsamforschen/src/main/webapp/feedback/give-feedback.jsp +++ /dev/null @@ -1,113 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %> - -<!DOCTYPE html> -<html> - -<head> - <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/givepeerfeedback.js"></script> - -</head> - -<body> -<menu:menu hierarchy="1"/> - <div class="page-content-wrapper"> - <headLine:headLine/> - <div> - <table> - <tr> - <h2 style="padding-left: 15px"> Schreibe dein Feedback ein!</h2> - <div class="line-spacer"></div> - <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"> - - <form style="padding-left: 20px" id= "journalform" method="POST" action="../rest/peerfeedback/save"> - - <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="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="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" style="width: 150%"> - <textarea id="editor" name="text" form="journalform"></textarea> <%--form="journalform"--%> - </div> - - <div class="journal-form-buttons"> - <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> - </form> - - - </td> - </tr> - </table> - </div> - </tr> - </td> - - -</tr> -</table> -</div> -</div> -</div> -</body> - -</html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js b/gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js deleted file mode 100644 index bf16344c..00000000 --- a/gemeinsamforschen/src/main/webapp/feedback/js/givepeerfeedback.js +++ /dev/null @@ -1,91 +0,0 @@ -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(); - }); - - - $.ajax({ - url: "../rest/peerfeedback/getUsers/" + student - }).then(function (data) { - console.log("getUsers:"+data); - loadUsers(data); - }); - - - $.ajax({ - url: "../rest/peerfeedback/checkFeedback/" +student - }).then(function (data) { - console.log("checkFeedback:"+data); - }); - - - 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/peerfeedback.js b/gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js deleted file mode 100644 index a12ccc7c..00000000 --- a/gemeinsamforschen/src/main/webapp/feedback/js/peerfeedback.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * 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("projectName"); - -function go() { - var a = document.getElementById("editor").valueOf().toString(); - var b = document.getElementById("as"); - b.innerHTML = a.toString(); - - //b = document.getElementById("editor").innerHTML; - - -} - -$(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); - location.href = "give-feedback.jsp" + getUserEmail(); - alert("Feedback wurde gesendet!"); - }); -}) \ 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 deleted file mode 100644 index 1ef53774..00000000 --- a/gemeinsamforschen/src/main/webapp/feedback/js/viewpeerfeedback.js +++ /dev/null @@ -1,293 +0,0 @@ -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 deleted file mode 100644 index 784ba3b6..00000000 --- a/gemeinsamforschen/src/main/webapp/feedback/view-feedback.jsp +++ /dev/null @@ -1,110 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %> -<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %> - -<!DOCTYPE html> -<html> - -<head> - <link rel="stylesheet" href="css/viewfeedback.css"> - <omniDependencies:omniDependencies hierarchy="1"/> - <script src="js/viewpeerfeedback.js"></script> -</head> - -<body> -<menu:menu hierarchy="1"/> - <div class="page-content-wrapper"> - <headLine:headLine/> - <div class="container-fluid"> - <h1 id="projectName"> 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> - <table> - <tr> - <tr> - <th>Feedback Nachrichten von Student X</th> - </tr> - - - <td id="filter-feedbacks"> - - - <%--<iframe width="90%" height="200%" src="http://rocketchat.westeurope.cloudapp.azure.com/channel/general?layout=embedded"></iframe> - --%> - <%--<p id="view"></p> type="hidden"--%> - <input type="hidden" name="peerfeedbackID" id="peerfeedbackID-input" value=""/> - <div style="height: 100px; overflow: auto"> - <div class="feedback-container"> - <p>Sender</p> - <span class="time-right">11:00</span> - </div> - </div> - - - </td> - - - <td id="view-feedbacks"> - - <div style="height: 300px; overflow: auto"> - - <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="inbox_chat" id="inbox_chat"> - </div> - </div> - <div class="mesgs"> - <div class="msg_history" id="msg_history"> - </div> - </div> - </div> - </div></div> - <button class="btn btn-secondary" onclick="goBack()">Zurück</button> - - </td> - </tr> - </table> - </div> - </div> - <footer:footer/> -</body> - -</html> diff --git a/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp b/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp index d66ec77f..fcb78542 100644 --- a/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp +++ b/gemeinsamforschen/src/main/webapp/journal/create-journal.jsp @@ -1,5 +1,7 @@ <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %> <!DOCTYPE html> <html> @@ -8,84 +10,73 @@ <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"> + <link rel="stylesheet" type="text/css" href="css/create-journal.css"> <omniDependencies:omniDependencies hierarchy="1"/> - <script src="journal/js/create-journal.js"></script> + <script src="js/create-journal.js"></script> </head> <body> <menu:menu hierarchy="1"/> -<div id="wrapper"> - <div class="page-content-wrapper"> - <div class="container-fluid"> - <h1 id="projectName">project1 - <a href="#"> - <span class="glyphicon glyphicon-envelope" - style="font-size:27px;margin-top:-17px;margin-left:600px;"></span> - </a> - <a href="#"> - <span class="glyphicon glyphicon-cog" - style="font-size:29px;margin-left:5px;margin-top:-25px;"></span> - </a></h1> - </div> - <div> - <table> - <tr> - <td id="yourContent"> - <h1> Tagebucheintrag erstellen </h1> - - <form id="journalform" class="form-journal" method="POST" action="../rest/journal/save"> - - <input type="hidden" id="student" name="student"> - <input type="hidden" id="project" name="project"> - <input type="hidden" id="journalid" name="id"> - - <div class="journal-form-container"> - - <div class="journal-form-visibility"> - Sichtbarkeit: - <select id="visibility" name="visibility" form="journalform"> - <option value="ALL"> Alle</option> - <option value="GROUP"> Gruppe</option> - <option value="DOZENT"> Dozent</option> - <option value="NONE"> Nur Ich</option> - </select> - </div> - - <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 class="journal-form-editor"> - <textarea id="editor" name="text" form="journalform"></textarea> - </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> - </div> +<div class="page-content-wrapper"> + <headLine:headLine/> + <div> + <table> + <tr> + <td id="yourContent"> + <h1> Tagebucheintrag erstellen </h1> + + <form id="journalform" class="form-journal" method="POST" action="../rest/journal/save"> + + <input type="hidden" id="student" name="student"> + <input type="hidden" id="project" name="project"> + <input type="hidden" id="journalid" name="id"> + + <div class="journal-form-container"> + + <div class="journal-form-visibility"> + Sichtbarkeit: + <select id="visibility" name="visibility" form="journalform"> + <option value="ALL"> Alle</option> + <option value="GROUP"> Gruppe</option> + <option value="DOZENT"> Dozent</option> + <option value="NONE"> Nur Ich</option> + </select> + </div> + + <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 class="journal-form-editor"> + <textarea id="editor" name="text" form="journalform"></textarea> </div> - </form> - </td> - </tr> - </table> - </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> + </div> + + </div> + </form> + + </td> + </tr> + </table> </div> </div> +<footer:footer/> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/journal/edit-description.jsp b/gemeinsamforschen/src/main/webapp/journal/edit-description.jsp index 4cabd404..d5e65bbd 100644 --- a/gemeinsamforschen/src/main/webapp/journal/edit-description.jsp +++ b/gemeinsamforschen/src/main/webapp/journal/edit-description.jsp @@ -1,5 +1,7 @@ <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %> <!DOCTYPE html> <html> @@ -12,7 +14,6 @@ <body> <menu:menu hierarchy="1"/> -<div id="wrapper"> <h1> Projektbeschreibung bearbeiten </h1> <form id="descriptionform" class="form-journal" method="POST" @@ -20,7 +21,7 @@ <textarea id="editor" name="text" form="descriptionform"></textarea> </form> -</div> +<footer:footer/> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/journal/eportfolio.jsp b/gemeinsamforschen/src/main/webapp/journal/eportfolio.jsp index f9c41e5f..d9bc6592 100644 --- a/gemeinsamforschen/src/main/webapp/journal/eportfolio.jsp +++ b/gemeinsamforschen/src/main/webapp/journal/eportfolio.jsp @@ -1,5 +1,7 @@ <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %> <!DOCTYPE html> <html> @@ -14,76 +16,68 @@ <body> <menu:menu hierarchy="1"/> -<div id="wrapper"> - <div class="page-content-wrapper"> - <div class="container-fluid"> - <h1 id="projectName">project1 - <a href="#"> - <span class="glyphicon glyphicon-envelope" - style="font-size:27px;margin-top:-17px;margin-left:600px;"></span> - </a> - <a href="#"> - <span class="glyphicon glyphicon-cog" style="font-size:29px;margin-left:5px;margin-top:-25px;"></span> - </a></h1> - </div> - <div> - <table> - <tr> - <td id="yourContent"> - - <h1>E-Portfolio</h1> - - <ul class="nav nav-tabs"> - <li class="active"><a data-toggle="tab" href="#description">Beschreibung</a></li> - <li><a data-toggle="tab" href="#journal-container">Lerntagebuch</a></li> - </ul> - <div class="tab-content"> - - <div id = "description" class="tab-pane fade in active "> - <div class="journal-description-container"> - <div class="journal-description-title"> - </div> - <div class="journal-description-edit" id="description-edit" align="right"> - <a id="editDescriptionLink" class="btn btn-default btn-sm"> - <i class="fa fa-pencil-alt"></i> Bearbeiten</a> - <a class="btn btn-default btn-sm" data-toggle="modal" data-target="#closeDescriptionModal"><i class="fa fa-check-square" aria-hidden="true"></i>Abschließen</a> - <!-- TODO: Variabel --> - <div class="exportLink"> - </div> - - </div> - <div class="journal-description-text"> - </div> - <div class="journal-description-group"> - <h3>Gruppe</h3> +<div class="page-content-wrapper"> + <headLine:headLine/> + <div> + <table> + <tr> + <td id="yourContent"> + + <h1>E-Portfolio</h1> + + <ul class="nav nav-tabs"> + <li class="active"><a data-toggle="tab" href="#description">Beschreibung</a></li> + <li><a data-toggle="tab" href="#journal-container">Lerntagebuch</a></li> + </ul> + <div class="tab-content"> + + <div id="description" class="tab-pane fade in active "> + <div class="journal-description-container"> + <div class="journal-description-title"> + </div> + <div class="journal-description-edit" id="description-edit" align="right"> + <a id="editDescriptionLink" class="btn btn-default btn-sm"> + <i class="fa fa-pencil-alt"></i> Bearbeiten</a> + <a class="btn btn-default btn-sm" data-toggle="modal" + data-target="#closeDescriptionModal"><i class="fa fa-check-square" + aria-hidden="true"></i>Abschließen</a> + <!-- TODO: Variabel --> + <div class="exportLink"> </div> - <div class="journal-description-links"> - <h3>Links</h3> - </div> + </div> + <div class="journal-description-text"> + </div> + <div class="journal-description-group"> + <h3>Gruppe</h3> + </div> + <div class="journal-description-links"> + <h3>Links</h3> + + </div> - </div> </div> + </div> - <div id="journal-container" class="tab-pane fade"> - <h2>Lerntagebuch</h2> - <div class="input-group"> - <select id="journalfilter" class="form-control" style="width:auto;" onchange="filterJournals()"> - <option value="ALL">Alle</option> - <option value="OWN">Eigene</option> - </select> + <div id="journal-container" class="tab-pane fade"> + <h2>Lerntagebuch</h2> + <div class="input-group"> + <select id="journalfilter" class="form-control" style="width:auto;" + onchange="filterJournals()"> + <option value="ALL">Alle</option> + <option value="OWN">Eigene</option> + </select> - <a id="createJournalLink"class="btn btn-default btn-sm" >Neu</a> - </div> - <div class="journal"> - </div> - </div> + <a id="createJournalLink" class="btn btn-default btn-sm">Neu</a> + </div> + <div class="journal"> + </div> </div> - </td> - </tr> - </table> - </div> + </div> + </td> + </tr> + </table> </div> </div> @@ -95,7 +89,7 @@ <h4 class="modal-title">Link hinzufügen</h4> </div> <div class="modal-body"> - <form id="linkform" method="POST" action="../rest/projectdescription/addLink" > + <form id="linkform" method="POST" action="../rest/projectdescription/addLink"> <input type="hidden" name="projectdescriptionId" id="projectdescriptionId" value=""/> Name:<br> <input type="text" name="name" form="linkform"> @@ -103,7 +97,7 @@ URL:<br> <input type="url" name="link" form="linkform"> <br><br> - <input class="btn btn-default" type="submit" > + <input class="btn btn-default" type="submit"> <button type="button" class="btn btn-default" data-dismiss="modal">Abbrechen</button> </form> </div> @@ -158,6 +152,7 @@ </div> </div> </div> +<footer:footer/> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/journal/js/create-journal.js b/gemeinsamforschen/src/main/webapp/journal/js/create-journal.js index 1b68406c..4bc23f2e 100644 --- a/gemeinsamforschen/src/main/webapp/journal/js/create-journal.js +++ b/gemeinsamforschen/src/main/webapp/journal/js/create-journal.js @@ -1,10 +1,8 @@ -var student = getQueryVariable("token"); -var project = getQueryVariable("projectName"); - - $(document).ready(function () { - $('#student').val(student); - $('#project').val(project); + let projectName = $('#projectName').html().trim(); + let userEmail = $('#userEmail').html().trim(); + $('#student').val(projectName); + $('#project').val(userEmail); $('#backLink').on('click', function () { location.href = "eportfolio.jsp"; @@ -25,4 +23,4 @@ $(document).ready(function () { console.log(data); }); -}) \ No newline at end of file +}); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/project/js/create-project.js b/gemeinsamforschen/src/main/webapp/project/js/create-project.js index 0df490ea..38415338 100644 --- a/gemeinsamforschen/src/main/webapp/project/js/create-project.js +++ b/gemeinsamforschen/src/main/webapp/project/js/create-project.js @@ -19,25 +19,27 @@ function createNewProject(allTheTags, activ) { errorMessages(); // getting the data from the form fields let project = getProjectValues(); + let projectName = $("#nameProject").val().trim(); // create the project if (project) { // create the project in local db let localurl = "../rest/project/create"; $.ajax({ //check local DB for existence of projectName url: localurl, + projectName: projectName, contentType: 'application/json', activ: activ, - type: 'PUT', + type: 'POST', data: JSON.stringify(project), success: function (response) { - if (response === "project exists") { + if (response === "Project already exists") { $('#projectNameExists').show(); } else { if (allTheTags.length !== 5) { $('#exactNumberOfTags').show(); } else { createProjectinCompbase(); - + location.href="tasks-student.jsp?projectName="+projectName; } } }, diff --git a/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql b/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql index e0e2a801..3cea0d69 100644 --- a/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql +++ b/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql @@ -27,8 +27,8 @@ INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rock INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES ('teststudent8', 'egal', 'test8@uni.de', 'test1','1','abc'); -INSERT INTO `projects` (`id`, `password`,`active`,`timecreated`,`authorEmail`,`adminpassword`,`token`,`phase`) VALUES - ('1','123',1,current_timestamp,'Julian','123','abc','CourseCreation'); +INSERT INTO `projects` (`id`, `password`,`active`,`timecreated`,`token`,`phase`) VALUES + ('1','123',1,current_timestamp,'Julian','CourseCreation'); INSERT INTO `projectuser` (`projectName`,`userEmail`) VALUES ('1','test1@uni.de'); INSERT INTO `projectuser` (`projectName`,`userEmail`) VALUES ('1','test2@uni.de'); diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/context/project/ProjectDAOTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/context/project/ProjectDAOTest.java index 907e6c77..85bc4494 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/context/project/ProjectDAOTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/context/project/ProjectDAOTest.java @@ -76,7 +76,6 @@ public class ProjectDAOTest { projectDAO.persist(project); Project projectActual = projectDAO.getProjectByName(project.getName()); - assertEquals(project.getAdminPassword(), projectActual.getAdminPassword()); assertEquals(project.getAuthorEmail(), projectActual.getAuthorEmail()); assertEquals(project.getName(), projectActual.getName()); assertEquals(project.getPassword(), projectActual.getPassword()); diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java index 93e94f69..bda296be 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java @@ -24,8 +24,7 @@ import unipotsdam.gf.modules.user.User; import unipotsdam.gf.modules.group.GroupFormationMechanism; import unipotsdam.gf.modules.group.GroupfindingCriteria; import unipotsdam.gf.modules.journal.model.Journal; -import unipotsdam.gf.modules.feedback.Category; -import unipotsdam.gf.modules.feedback.Model.Peer2PeerFeedback; +import unipotsdam.gf.modules.annotation.model.Category; import unipotsdam.gf.modules.researchreport.ResearchReport; import unipotsdam.gf.modules.researchreport.ResearchReportManagement; @@ -53,10 +52,6 @@ public class ActivityFlowTest { @Inject ResearchReportManagement researchReportManagement; - - @Inject - Feedback feedback; - @Inject IPhases phases; @@ -92,14 +87,11 @@ public class ActivityFlowTest { public void setUp() { final ServiceLocator locator = ServiceLocatorUtilities.bind(new TestGFApplicationBinder()); locator.inject(this); - - feedback = Mockito.spy(feedback); researchReportManagement = Mockito.spy(researchReportManagement); phases = Mockito.spy(phases); iCommunication = Mockito.spy(iCommunication); // TODO @Julian: Find out more elegant way of doing this - researchReportManagement.setFeedback(feedback); // phases.setFeedback(feedback); } @@ -201,24 +193,8 @@ public class ActivityFlowTest { researchReportManagement.createResearchReport(researchReport, project, student); } - - // assert that after the last report has been submitted, the feedback tasks were assigned automatically - verify(feedback).assignFeedbackTasks(project); - // students give feedback - for (User student : students) { - ResearchReport feedbackTask = feedback.getFeedbackTask(student); - ProjectConfiguration projectConfiguration = management.getProjectConfiguration(project); - HashMap<Category, Boolean> criteriaSelected = projectConfiguration.getCriteriaSelected(); - for (Category category : criteriaSelected.keySet()) { - if (criteriaSelected.get(category)) { - Peer2PeerFeedback peer2PeerFeedback = factory.manufacturePojo(Peer2PeerFeedback.class); - peer2PeerFeedback.setFeedbackcategory(category); - //feedback.giveFeedback(peer2PeerFeedback, feedbackTask); - // TODO implement giving feedback - } - } - } + // students upload updated dossier ArrayList<User> students2 = students; @@ -239,7 +215,6 @@ public class ActivityFlowTest { // student misses mockfeedback -> reassignment // assert that while reports are still missing mockfeedback tasks are reassigned - verify(feedback).assigningMissingFeedbackTasks(project); // assert that everybody has given and received mockfeedback assertTrue(constraints.checkIfFeedbackCanBeDistributed(project)); diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java index ffb941dd..424d5c31 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/AnnotationTest.java @@ -4,14 +4,13 @@ import org.glassfish.hk2.api.ServiceLocator; import org.glassfish.hk2.utilities.ServiceLocatorUtilities; import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; import unipotsdam.gf.core.database.TestGFApplicationBinder; import unipotsdam.gf.modules.annotation.controller.AnnotationController; import unipotsdam.gf.modules.annotation.model.Annotation; import unipotsdam.gf.modules.annotation.model.AnnotationBody; import unipotsdam.gf.modules.annotation.model.AnnotationPatchRequest; import unipotsdam.gf.modules.annotation.model.AnnotationPostRequest; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.inject.Inject; import java.util.ArrayList; diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java index f262e44d..5bec3c7c 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java @@ -9,7 +9,7 @@ import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.journal.model.JournalFilter; import unipotsdam.gf.modules.journal.model.Visibility; import unipotsdam.gf.modules.journal.util.JournalUtils; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.inject.Inject; import java.util.ArrayList; diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java index 22d11293..ec149768 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java @@ -10,7 +10,7 @@ import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.journal.model.Visibility; import unipotsdam.gf.modules.journal.model.dao.JournalDAO; import unipotsdam.gf.modules.journal.model.dao.JournalDAOImpl; -import unipotsdam.gf.modules.feedback.Category; +import unipotsdam.gf.modules.annotation.model.Category; import javax.inject.Inject; import java.util.ArrayList; diff --git a/gemeinsamforschen/src/test/resources/database/fltrail.sql b/gemeinsamforschen/src/test/resources/database/fltrail.sql index bcea9a8e..703d1964 100644 --- a/gemeinsamforschen/src/test/resources/database/fltrail.sql +++ b/gemeinsamforschen/src/test/resources/database/fltrail.sql @@ -3,10 +3,11 @@ SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; -DROP DATABASE `fltrail`; -CREATE DATABASE IF NOT EXISTS `fltrail` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; -USE `fltrail`; CREATE TABLE `annotations` ( `id` varchar(120) NOT NULL, @@ -21,9 +22,9 @@ CREATE TABLE `annotations` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `answeredquiz` ( - `projectName` varchar(400) NOT NULL, - `userName` varchar(400) NOT NULL, - `question` varchar(400) NOT NULL, + `projectName` varchar(200) NOT NULL, + `userName` varchar(100) NOT NULL, + `question` varchar(200) NOT NULL, `correct` tinyint(4) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -38,9 +39,9 @@ CREATE TABLE `categoriesselected` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `contributionrating` ( - `projectName` varchar(400) NOT NULL, - `userName` varchar(400) NOT NULL, - `fromPeer` varchar(400) NOT NULL, + `projectName` varchar(200) NOT NULL, + `userName` varchar(100) NOT NULL, + `fromPeer` varchar(100) NOT NULL, `dossier` int(11) NOT NULL, `eJournal` int(11) NOT NULL, `research` int(11) NOT NULL @@ -49,16 +50,16 @@ CREATE TABLE `contributionrating` ( CREATE TABLE `fullsubmissions` ( `id` varchar(120) NOT NULL, `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `user` varchar(120) NOT NULL, + `user` varchar(100) NOT NULL, `text` mediumtext NOT NULL, - `projectName` varchar(120) NOT NULL, - `feedbackUser` varchar (255), - `finalized` tinyint(4) + `projectName` varchar(200) NOT NULL, + `feedbackUser` varchar(255) DEFAULT NULL, + `finalized` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `grades` ( - `projectName` varchar(400) NOT NULL, - `userName` varchar(400) NOT NULL, + `projectName` varchar(200) NOT NULL, + `userName` varchar(100) NOT NULL, `grade` double NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -69,7 +70,7 @@ CREATE TABLE `groupfindingmechanismselected` ( CREATE TABLE `groups` ( `id` int(11) NOT NULL, - `projectName` varchar(400) NOT NULL, + `projectName` varchar(200) NOT NULL, `chatRoomId` varchar(400) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -78,6 +79,16 @@ CREATE TABLE `groupuser` ( `groupId` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `journals` ( + `id` varchar(100) NOT NULL, + `userEmail` varchar(100) NOT NULL, + `projectName` varchar(200) NOT NULL, + `text` text NOT NULL, + `visibility` varchar(100) NOT NULL, + `category` varchar(100) NOT NULL, + `open` tinyint(4) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + CREATE TABLE `phasesselected` ( `projectName` varchar(100) NOT NULL, `phaseSelected` varchar(200) NOT NULL @@ -87,9 +98,8 @@ CREATE TABLE `projects` ( `name` varchar(100) NOT NULL, `password` varchar(400) NOT NULL, `active` tinyint(1) NOT NULL, - `timecreated` mediumtext NOT NULL, + `timecreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `author` varchar(100) NOT NULL, - `adminPassword` varchar(400) NOT NULL, `phase` varchar(400) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -99,9 +109,9 @@ CREATE TABLE `projectuser` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `quiz` ( - `author` varchar(400) NOT NULL, - `projectName` varchar(400) NOT NULL, - `question` varchar(400) NOT NULL, + `author` varchar(100) NOT NULL, + `projectName` varchar(200) NOT NULL, + `question` varchar(200) NOT NULL, `mcType` varchar(400) NOT NULL, `answer` varchar(400) NOT NULL, `correct` tinyint(1) NOT NULL @@ -122,7 +132,7 @@ CREATE TABLE `submissionparts` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `tags` ( - `projectName` varchar(100) NOT NULL, + `projectName` varchar(200) NOT NULL, `tag` varchar(400) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -134,8 +144,8 @@ CREATE TABLE `tasks` ( `importance` varchar(100) DEFAULT NULL, `progress` varchar(100) DEFAULT NULL, `phase` varchar(100) DEFAULT NULL, - `created` timestamp , - `due` timestamp , + `created` timestamp NULL DEFAULT NULL, + `due` timestamp NULL DEFAULT NULL, `taskMode2` varchar(100) DEFAULT NULL, `taskMode3` varchar(100) DEFAULT NULL, `taskMode` varchar(100) DEFAULT NULL @@ -151,9 +161,9 @@ CREATE TABLE `users` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `workrating` ( - `projectName` varchar(400) NOT NULL, - `userName` varchar(400) NOT NULL, - `fromPeer` varchar(400) NOT NULL, + `projectName` varchar(200) NOT NULL, + `userEmail` varchar(100) NOT NULL, + `fromPeer` varchar(100) NOT NULL, `responsibility` int(11) NOT NULL, `partOfWork` int(11) NOT NULL, `cooperation` int(11) NOT NULL, @@ -161,26 +171,47 @@ CREATE TABLE `workrating` ( `autonomous` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE submissionuser -( - submissionId varchar(400), - userEmail varchar(255) -); - ALTER TABLE `annotations` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `annotations_fullsubmissions_id_fk` (`targetId`); + +ALTER TABLE `answeredquiz` + ADD KEY `answeredquiz_projects_name_fk` (`projectName`); + +ALTER TABLE `assessmentmechanismselected` + ADD KEY `assessmentmechanismselected_projects_name_fk` (`projectName`); + +ALTER TABLE `categoriesselected` + ADD KEY `categoriesselected_projects_name_fk` (`projectName`); + +ALTER TABLE `contributionrating` + ADD UNIQUE KEY `contributionrating_projectName_userName_fromPeer_uindex` (`projectName`,`userName`,`fromPeer`); ALTER TABLE `fullsubmissions` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `fullsubmissions_projects_name_fk` (`projectName`); + +ALTER TABLE `grades` + ADD UNIQUE KEY `grades_projectName_userName_uindex` (`projectName`,`userName`); + +ALTER TABLE `groupfindingmechanismselected` + ADD KEY `groupfindingmechanismselected_projects_name_fk` (`projectName`); ALTER TABLE `groups` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `groups_projects_name_fk` (`projectName`); ALTER TABLE `groupuser` ADD KEY `userEmail` (`userEmail`), ADD KEY `groupId` (`groupId`); +ALTER TABLE `journals` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `phasesselected` + ADD KEY `phasesselected_projectName_index` (`projectName`); + ALTER TABLE `projects` ADD UNIQUE KEY `name` (`name`), ADD KEY `author` (`author`); @@ -189,34 +220,85 @@ ALTER TABLE `projectuser` ADD KEY `userEmail` (`userEmail`), ADD KEY `projectName` (`projectName`); +ALTER TABLE `quiz` + ADD KEY `quiz_question_projectName_author_index` (`question`,`projectName`,`author`), + ADD KEY `quiz_projects_name_fk` (`projectName`); + ALTER TABLE `submissionpartbodyelements` ADD PRIMARY KEY (`fullSubmissionId`,`category`,`startCharacter`,`endCharacter`); ALTER TABLE `submissionparts` ADD PRIMARY KEY (`fullSubmissionId`,`category`); +ALTER TABLE `tags` + ADD KEY `tags_projectName_index` (`projectName`); + +ALTER TABLE `tasks` + ADD UNIQUE KEY `tasks_userEmail_projectName_taskName_uindex` (`userEmail`,`projectName`,`taskName`), + ADD KEY `tasks_projects_name_fk` (`projectName`); + ALTER TABLE `users` ADD UNIQUE KEY `email` (`email`); +ALTER TABLE `workrating` + ADD UNIQUE KEY `workrating_projectName_userEmail_fromPeer_uindex` (`projectName`,`userEmail`,`fromPeer`); + ALTER TABLE `groups` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + + +ALTER TABLE `annotations` + ADD CONSTRAINT `annotations_fullsubmissions_id_fk` FOREIGN KEY (`targetId`) REFERENCES `fullsubmissions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `answeredquiz` + ADD CONSTRAINT `answeredquiz_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE `assessmentmechanismselected` + ADD CONSTRAINT `assessmentmechanismselected_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `categoriesselected` + ADD CONSTRAINT `categoriesselected_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `contributionrating` + ADD CONSTRAINT `contributionrating_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `fullsubmissions` + ADD CONSTRAINT `fullsubmissions_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `grades` + ADD CONSTRAINT `grades_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `groupfindingmechanismselected` + ADD CONSTRAINT `groupfindingmechanismselected_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE `groups` + ADD CONSTRAINT `groups_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE `groupuser` ADD CONSTRAINT `groupuser_ibfk_1` FOREIGN KEY (`userEmail`) REFERENCES `users` (`email`), ADD CONSTRAINT `groupuser_ibfk_2` FOREIGN KEY (`groupId`) REFERENCES `groups` (`id`); +ALTER TABLE `phasesselected` + ADD CONSTRAINT `phasesselected_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + ALTER TABLE `projects` ADD CONSTRAINT `projects_ibfk_1` FOREIGN KEY (`author`) REFERENCES `users` (`email`); ALTER TABLE `projectuser` ADD CONSTRAINT `projectuser_ibfk_1` FOREIGN KEY (`userEmail`) REFERENCES `users` (`email`), ADD CONSTRAINT `projectuser_ibfk_2` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`); -COMMIT; -CREATE UNIQUE INDEX fullsubmissions_user_projectName_uindex ON fullsubmissions (user, projectName); +ALTER TABLE `quiz` + ADD CONSTRAINT `quiz_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; -CREATE UNIQUE INDEX tasks_userEmail_projectName_taskName_uindex ON tasks (userEmail, projectName, taskName); +ALTER TABLE `tasks` + ADD CONSTRAINT `tasks_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE `workrating` + ADD CONSTRAINT `workrating_projects_name_fk` FOREIGN KEY (`projectName`) REFERENCES `projects` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; +COMMIT; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -- GitLab