diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java index c86b8aa6d5db95159640747c314b4ba141c0fbae..e644878dcdff5f89c64804e3974f9b3d2e91d477 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java @@ -1,5 +1,6 @@ package unipotsdam.gf.core.management; +import sun.misc.IOUtils; import unipotsdam.gf.core.database.mysql.MysqlConnect; import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; import unipotsdam.gf.core.management.group.Group; @@ -15,6 +16,9 @@ import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import javax.annotation.ManagedBean; import javax.annotation.Resource; import javax.inject.Singleton; +import java.io.File; +import java.io.FileInputStream; +import java.sql.Blob; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; @@ -171,8 +175,10 @@ public class ManagementImpl implements Management { String adminPassword = vereinfachtesResultSet.getString("adminpassword"); String token = vereinfachtesResultSet.getString("token"); String phase = vereinfachtesResultSet.getString("phase"); - - return new Project(id, password, active, timestamp, author, adminPassword, token); + Project project = new Project(id, password, active, timestamp, author, adminPassword, token); + ProjectPhase projectPhase = ProjectPhase.valueOf(phase); + project.setPhase(projectPhase); + return project; } private Group getGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { @@ -236,6 +242,9 @@ public class ManagementImpl implements Management { @Override public Project getProjectById(String id) { + if (id == null){ + return null; + } MysqlConnect connect = new MysqlConnect(); connect.connect(); String mysqlRequest = "SELECT * FROM projects where id = ?"; @@ -309,4 +318,13 @@ public class ManagementImpl implements Management { ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO(); return projectConfigurationDAO.loadProjectConfiguration(project); } + + public String saveProfilePicture(FileInputStream image, String studentId){ + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + Blob blobbedImage= (Blob) image; + String mysqlRequest = "INSERT INTO `profilepicture`(`studentId`, `image`) VALUES (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, studentId, blobbedImage); + return "success"; + } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java new file mode 100644 index 0000000000000000000000000000000000000000..894babb0db1b7e6ba876ae5f0c700a9a0065792a --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java @@ -0,0 +1,112 @@ +package unipotsdam.gf.core.management.pageAppearance; + +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.core.states.ProjectPhase; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.jsp.JspWriter; +import javax.servlet.jsp.PageContext; +import javax.servlet.jsp.tagext.SimpleTagSupport; +import java.io.IOException; + +public class Menu extends SimpleTagSupport { + public void doTag() throws IOException { + PageContext pageContext = (PageContext) getJspContext(); + HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); + String token = request.getParameter("token"); + String projectId = request.getParameter("projectId"); + ManagementImpl management = new ManagementImpl(); + ProjectPhase projectPhase; + try{ + projectPhase = management.getProjectById(projectId).getPhase(); + }catch(Exception e){ + projectPhase = null; + } + JspWriter out = getJspContext().getOut(); + if (token!=null){ + User user = management.getUserByToken(token); + Boolean isStudent = user.getStudent(); + if (isStudent){ + String menuString = "<div id=\"sidebar-wrapper\">\n" + + " <ul class=\"sidebar-nav\">\n" + + " <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n" + + " <li><a href=\"profile.jsp?token="+token+"&projectId="+projectId+"\">Profil</a></li>\n"; + if (projectPhase!=null){ + if (projectPhase.equals(ProjectPhase.CourseCreation)){ + menuString += " <li><p>Quizfrage</p></li>\n" + + " <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" + + " <li><p>Beitrag</p></li>\n" + + " <li><p>Bewertung</p></li>\n"; + } + if (projectPhase.equals(ProjectPhase.GroupFormation)){ + menuString += " <li><p>Quizfrage</p></li>\n" + + " <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" + + " <li><p>Beitrag</p></li>\n" + + " <li><p>Bewertung</p></li>\n"; + } + if (projectPhase.equals(ProjectPhase.DossierFeedback)){ + menuString += " <li><p>Quizfrage</p></li>\n" + + " <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" + + " <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" + + " <li><p>Bewertung</p></li>\n"; + } + if (projectPhase.equals(ProjectPhase.Execution)){ + menuString += " <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" + + " <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" + + " <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" + + " <li><p>Bewertung</p></li>\n"; + } + if (projectPhase.equals(ProjectPhase.Assessment)){ + menuString += " <li><p>Quizfrage</p></li>\n" + + " <li><p>ePortfolio</p></li>\n" + + " <li><p>Beitrag</p></li>\n" + + " <li><a id=\"assessment\" style=\"cursor:pointer\">Bewertung</a></li>\n"; + } + } + + menuString +="<li>" + + "<a id=\"logout\" style=\"cursor:pointer\">Logout</a></li>\n" + + "</ul>\n" + + " </div>"; + out.println(menuString); + out.println("<p id=\"userRole\" hidden>isStudent</p>"); + } else { + String menuString ="<div id=\"sidebar-wrapper\">\n" + + " <ul class=\"sidebar-nav\">\n" + + " <li class=\"sidebar-brand\"><a href=\"overview-docent.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n"; + if (projectPhase!=null) { + if (!projectPhase.equals(ProjectPhase.GroupFormation)) { + menuString += "<li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" + + " <li><p>Gruppen erstellen</p></li>\n" + + " <li><a href=\"changePhase.jsp?token="+token+"&projectId="+projectId+"\">Projektphase ändern</a></li>\n"; + }else { + menuString += "<li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" + + " <li><a href=\"createGroups.jsp?token="+token+"&projectId="+projectId+"\">Gruppen erstellen</a></li>\n" + + " <li><a href=\"changePhase.jsp?token="+token+"&projectId="+projectId+"\">Projektphase ändern</a></li>\n"; + } + } + menuString +="<li><a id=\"logout\" style=\"cursor:pointer\">Logout</a></li>\n" + + "</ul>\n" + + " </div>"; + out.println(menuString); + out.println("<p id=\"userRole\" hidden>isDocent</p>"); + } + }else{ + out.println("<div class='alert alert-warning'>" + + "You probably did not give the token to the url" + + "</div>"); + //in active System this will be the point to redirect to index.jsp, because token is "wrong" + } + if (projectId!=null) + out.println("<p id=\"projectId\" hidden>"+projectId+"</p>"); + User user = management.getUserByToken(token); + if (user != null) + out.println("<p id=\"user\" hidden>"+user.getName()+"</p>"); + + + + } + + +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java new file mode 100644 index 0000000000000000000000000000000000000000..29d366cb5ad8af659610937da34707c4c70d6628 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java @@ -0,0 +1,54 @@ +package unipotsdam.gf.core.management.pageAppearance; + +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.states.ProjectPhase; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.jsp.JspWriter; +import javax.servlet.jsp.PageContext; +import javax.servlet.jsp.tagext.SimpleTagSupport; +import java.io.IOException; + +public class footer extends SimpleTagSupport { + public void doTag() throws IOException { + PageContext pageContext = (PageContext) getJspContext(); + HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); + String projectId = request.getParameter("projectId"); + ManagementImpl management = new ManagementImpl(); + ProjectPhase projectPhase; + try { + projectPhase = management.getProjectById(projectId).getPhase(); + } catch (Exception e) { + projectPhase = null; + } + JspWriter out = getJspContext().getOut(); + String footerString = "<footer>\n" + + " <div class=\"container\">\n"; + if (projectPhase != null) { + footerString += " <div class=\"progress\">\n" + + " <div class=\"progress-bar pg-" + projectPhase.toString().trim() + "\" role=\"progressbar\" id=\"progressbar\">\n" + + " </div>\n" + + " <div>\n"; + if (projectPhase.equals(ProjectPhase.GroupFormation)) + footerString +=" GroupFormation\n"; + if (projectPhase.equals(ProjectPhase.Execution)) + footerString +=" Execution\n"; + if (projectPhase.equals(ProjectPhase.Assessment)) + footerString +=" Assessment\n"; + if (projectPhase.equals(ProjectPhase.DossierFeedback)) + footerString +=" DossierFeedback\n"; + if (projectPhase.equals(ProjectPhase.Projectfinished)) + footerString +=" Projectfinished\n"; + footerString +=" </div>\n" + + " <div class=\"progress-bar pg-rest\" role=\"progressbar\">\n" + + " </div>\n" + + " </div>\n"; + } + + footerString += "<button id=\"btnUnstructuredUpload\" class=\"btn btn-light\">Unstrukturierte Abgabe</button>\n" + + "<button id=\"footerBack\" class=\"btn btn-light\">zurück</button>\n" + + " </div>\n" + + " </footer>"; + out.println(footerString); + } +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java similarity index 95% rename from gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java rename to gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java index 087a26f8dfd29728abc9de226ef1511a26c59c82..36f2e74bcc9ebd0708ee4225d60a6c54a0a22a52 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java @@ -1,16 +1,16 @@ -package unipotsdam.gf.core.management.user; +package unipotsdam.gf.core.management.pageAppearance; import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.user.User; import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.SimpleTagSupport; import java.io.IOException; public class headLine extends SimpleTagSupport { - public void doTag() throws JspException, IOException { + public void doTag() throws IOException { PageContext pageContext = (PageContext) getJspContext(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); String projectId = request.getParameter("projectId"); @@ -58,6 +58,4 @@ public class headLine extends SimpleTagSupport { " </table>\n" + " </div>"); } - - -}; \ No newline at end of file +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java similarity index 73% rename from gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java rename to gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java index e4b3272b2dac3479a79f5271598981a0e04db3d6..ac6ce6fcd31cfc5ae79f42c26bc644404077970d 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java @@ -1,17 +1,11 @@ -package unipotsdam.gf.core.management.user; +package unipotsdam.gf.core.management.pageAppearance; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.SimpleTagSupport; import java.io.IOException; public class omniDependencies extends SimpleTagSupport { - public void doTag() throws JspException, IOException { - PageContext pageContext = (PageContext) getJspContext(); - HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); - String projectId = request.getParameter("projectId"); + public void doTag() throws IOException { JspWriter out = getJspContext().getOut(); out.println("<meta charset=\"utf-8\">\n" + " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" + @@ -28,8 +22,6 @@ public class omniDependencies extends SimpleTagSupport { " <script src=\"../assets/js/utility.js\"></script>\n" + " <script src=\"../assets/js/footer.js\"></script>\n" + " <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.1.0/css/all.css\"\n" + - " integrity=\"sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt\" crossorigin=\"anonymous\">"); + " integrity=\"sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt\" crossorigin=\"anonymous\">"); } - - -}; \ No newline at end of file +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java index 2fb7b840289b1b9056c7da73329bb2bbef6de38d..b329533304fc335bc6c0ccf69d8d8d577e15ad09 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java @@ -19,7 +19,7 @@ public class Project { private String adminPassword; private String token; // using enum ProjectPhase - private String phase; + private ProjectPhase phase; public Project() { } @@ -35,7 +35,7 @@ public class Project { this.setPhase(ProjectPhase.CourseCreation); } - public String getPhase() { + public ProjectPhase getPhase() { return phase; } @@ -44,7 +44,7 @@ public class Project { * @param phase */ public void setPhase(ProjectPhase phase) { - this.phase = phase.name(); + this.phase = phase; } public Project(String id, String password, Boolean active, String author, String adminPassword, String token) { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java deleted file mode 100644 index d08c07de61e40d362e06bfa2ca3fa2f66b0e73c7..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java +++ /dev/null @@ -1,67 +0,0 @@ -package unipotsdam.gf.core.management.user; - -import unipotsdam.gf.core.management.ManagementImpl; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.SimpleTagSupport; -import java.io.IOException; - - -// TODO: please move this to a view package at the top of the hierarchy as this is not part of the user package -public class Menu extends SimpleTagSupport { - public void doTag() throws JspException, IOException { - PageContext pageContext = (PageContext) getJspContext(); - HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); - String token = request.getParameter("token"); - String projectId = request.getParameter("projectId"); - ManagementImpl management = new ManagementImpl(); - JspWriter out = getJspContext().getOut(); - if (token!=null){ - User user = management.getUserByToken(token); - Boolean isStudent = user.getStudent(); - if (isStudent){ - out.println("<div id=\"sidebar-wrapper\">\n" + - " <ul class=\"sidebar-nav\">\n" + - " <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n" + - " <li><a href=\"profile.jsp?token="+token+"&projectId="+projectId+"\">Profil</a></li>\n" + - " <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" + - " <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" + - " <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" + - " <li><a href=\"finalAssessments.jsp?token="+token+"&projectId="+projectId+"\">Bewertung</a></li>\n" + - " <li><a href=\"../index.jsp\">Logout</a></li>\n" + - " </ul>\n" + - " </div>"); - } else { - out.println("<div id=\"sidebar-wrapper\">\n" + - " <ul class=\"sidebar-nav\">\n" + - " <li class=\"sidebar-brand\"><a href=\"overview-docent.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n" + - " <li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" + - " <li><a href=\"#\">ePortfolio</a></li>\n" + - " <li><a href=\"#\">Beitrag</a></li>\n" + - " <li><a href=\"#\">Gruppen erstellen</a></li>\n" + - " <li><a href=\"#\">Projektphase ändern</a></li>\n" + - " <li><a href=\"finalAssessments.jsp?token="+token+"\">Bewertung</a></li>\n" + - " <li><a href=\"../index.jsp\">Logout</a></li>\n" + - " </ul>\n" + - " </div>"); - } - }else{ - out.println("<div class='alert alert-warning'>" + - "You probably did not give the token to the url" + - "</div>"); - //in active System this will be the point to redirect to index.jsp, because token is "wrong" - } - if (projectId!=null) - out.println("<p id=\"projectId\" hidden>"+projectId+"</p>"); - User user = management.getUserByToken(token); - if (user != null) - out.println("<p id=\"user\" hidden>"+user.getName()+"</p>"); - - - } - - -} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java index c457c47cbc5f6e5a115d7d44fc9fe4cb59858e12..d5ecb66497c7e4d5588e945c3bc04de7c69019ae 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java @@ -1,17 +1,20 @@ package unipotsdam.gf.core.management.user; +import org.glassfish.grizzly.streams.BufferedInput; import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.states.ProjectPhase; import unipotsdam.gf.interfaces.ICommunication; import unipotsdam.gf.modules.communication.service.CommunicationDummyService; import javax.annotation.ManagedBean; import javax.inject.Inject; -import javax.ws.rs.FormParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import java.awt.image.BufferedImage; +import java.awt.image.BufferedImageOp; +import java.io.File; +import java.io.FileInputStream; import java.net.URI; import java.net.URISyntaxException; @@ -72,7 +75,20 @@ public class UserService { } else { return loginError(); } + } + @POST + @Produces(MediaType.TEXT_PLAIN) + @Path("/student/{studentId}") + public String getQuiz(@FormParam("image") File file, @PathParam("studentId") String studentId) { + ManagementImpl management = new ManagementImpl(); + try{ + FileInputStream fis = new FileInputStream(file); + + return management.saveProfilePicture(fis, studentId); + }catch(Exception e){ + return e.toString(); + } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java index 7bcf8a20fdb75120b33e7dae2b5cba48013ec3d7..ed289b311cfa75b30f22102953bd3ea80d17b49e 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java @@ -46,16 +46,16 @@ public class PhasesImpl implements IPhases { } @Override - public void endPhase(ProjectPhase currentPhase, Project project) { - switch (currentPhase) { + public void endPhase(ProjectPhase changeToPhase, Project project) { + switch (changeToPhase) { case CourseCreation: // saving the state - saveState(project,getNextPhase(currentPhase)); + saveState(project,changeToPhase); break; case GroupFormation: // inform users about the formed groups, optionally giving them a hint on what happens next iCommunication.sendMessageToUsers(project, Messages.GroupFormation(project)); - saveState(project,getNextPhase(currentPhase)); + saveState(project,changeToPhase); break; case DossierFeedback: // check if everybody has uploaded a dossier @@ -65,7 +65,7 @@ public class PhasesImpl implements IPhases { } else { // send a message to the users informing them about the start of the new phase iCommunication.sendMessageToUsers(project, Messages.NewFeedbackTask(project)); - saveState(project,getNextPhase(currentPhase)); + saveState(project,changeToPhase); } break; case Execution: @@ -74,7 +74,7 @@ public class PhasesImpl implements IPhases { if (portfoliosReady) { // inform users about the end of the phase iCommunication.sendMessageToUsers(project, Messages.AssessmentPhaseStarted(project)); - saveState(project,getNextPhase(currentPhase)); + saveState(project,changeToPhase); } else { iJournal.assignMissingPortfolioTasks(project); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java index e3ad42205b6ae45070ae70f643a9f6e662757a18..c0d45a7532c298206bfd8a3ef371cfd5ae4381a0 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java @@ -1,6 +1,7 @@ package unipotsdam.gf.core.states; import unipotsdam.gf.core.management.Management; +import unipotsdam.gf.core.management.ManagementImpl; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.interfaces.IPhases; @@ -15,11 +16,9 @@ import javax.ws.rs.core.MediaType; @Path("/phases") public class PhasesService { - @Inject - private IPhases phases; + private IPhases phases = new PhasesImpl(); - @Inject - private Management management; + private Management management = new ManagementImpl(); /** * end phase @@ -38,10 +37,10 @@ public class PhasesService { * @param projectId * @return */ - @Path("/{projectPhase}/projects/{projectId}") + @Path("/projects/{projectId}") @GET - @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.TEXT_PLAIN}) public String getCurrentPhase(@PathParam("projectId") String projectId) { - return management.getProjectById(projectId).getPhase(); + return management.getProjectById(projectId).getPhase().toString(); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java index 328b415f28a8379e81258b79eb671e16614e0417..ba8bffad7c29716ddfd9bbb5f049e3f19b0241c4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java @@ -2,5 +2,5 @@ package unipotsdam.gf.core.states; public enum ProjectPhase { CourseCreation, GroupFormation, DossierFeedback, Execution, Assessment, - Projectfinished; + Projectfinished } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/configPhaseShift.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/configPhaseShift.java new file mode 100644 index 0000000000000000000000000000000000000000..b988f6f75f45b5bc04929a0cfe2d93b2fabd85a1 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/configPhaseShift.java @@ -0,0 +1,11 @@ +package unipotsdam.gf.core.states; + +public class configPhaseShift { + Boolean DossierWritten; + Integer FeedbackCount =1; + Integer QuizCount =10; + Integer JournalCount=5; + Boolean DossierFinalized; + Boolean JournalFinalized; + Boolean AssessmentDone; +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java index d2109728546943d36eed575156a7af37f5e3309b..b07b990870b655615e72a1447eb09df9df642e98 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java @@ -1,6 +1,5 @@ package unipotsdam.gf.interfaces; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.ArrayList; @@ -19,7 +18,7 @@ public interface IPeerAssessment { */ void addAssessmentDataToDB(Assessment assessment); - Quiz getQuiz(String projectId, String groupId, String author); + Quiz getQuiz(String projectId, String quizId, String author); /** * will return a saved assessment from the DB * @@ -76,7 +75,14 @@ public interface IPeerAssessment { */ void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId); - void postContributionRating(StudentIdentifier student, + /** + * + * @param student + * @return + */ + Integer whichGroupToRate(StudentIdentifier student); + + void postContributionRating(String groupId, String fromPeer, Map<String, Integer> contributionRating); @@ -88,5 +94,6 @@ public interface IPeerAssessment { void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student); void deleteQuiz(String quizId); + String whatToRate(StudentIdentifier student); Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java index 2937b2e3766b6fc3a15fd4595e2878d540dea5cd..66608a7d713d6dde0db06566e77a13313f7ed80b 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Categories.java @@ -16,8 +16,7 @@ public class Categories { ); public static final List<String> contributionRatingCategories = Collections.unmodifiableList( new ArrayList<String>() {{ - add("Dossier"); - add("eJournal"); + add("dossier"); add("research"); }} ); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java index c5bdd8cb17e438fcfc4865cb9e97de9476b7a325..4f97bdb7384a3e37deb26bf85e60d31573c027d4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java @@ -1,6 +1,5 @@ package unipotsdam.gf.modules.assessment.controller.model; -import java.util.Arrays; import java.util.List; import java.util.Map; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java index c5e803245536598c1664156205fb56e1067eb4b2..5f05a39f3c6c9920be80265daa497acbbba0e849 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java @@ -36,6 +36,15 @@ class AssessmentDBCommunication { return result; } + Boolean getWorkRating(StudentIdentifier student, String fromStudent){ + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM `workrating` WHERE `projectId`=? AND `studentId`=? AND `fromPeer`=?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent); + return vereinfachtesResultSet.next(); + } + List<String> getStudents(String projectID) { List<String> result = new ArrayList<>(); MysqlConnect connect = new MysqlConnect(); @@ -51,13 +60,40 @@ class AssessmentDBCommunication { return result; } - ArrayList<Map<String, Double>> getContributionRating(StudentIdentifier student) { - ArrayList<Map<String, Double>> result = new ArrayList<>(); + Integer getGroupByStudent(StudentIdentifier student) { + Integer result; MysqlConnect connect = new MysqlConnect(); connect.connect(); - String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `projectId`=? AND `studentId`=?"; + String mysqlRequest = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=?"; VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId()); + vereinfachtesResultSet.next(); + result = vereinfachtesResultSet.getInt("groupId"); + return result; + } + + ArrayList<String> getStudentsByGroupAndProject(Integer groupId, String projectId){ + ArrayList<String> result = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM `groupuser` WHERE `groupId`=? AND `projectId`=?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, groupId, projectId); + Boolean next = vereinfachtesResultSet.next(); + while (next){ + result.add(vereinfachtesResultSet.getString("studentId")); + next = vereinfachtesResultSet.next(); + } + return result; + } + + ArrayList<Map<String, Double>> getContributionRating(Integer groupId) { + ArrayList<Map<String, Double>> result = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `groupId`=?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, groupId); boolean next = vereinfachtesResultSet.next(); while (next) { Map<String, Double> contributionRating = new HashMap<>(); @@ -71,6 +107,15 @@ class AssessmentDBCommunication { return result; } + Boolean getContributionRating(Integer groupId, String fromStudent) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `groupId`=? AND `fromPeer`=?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, groupId, fromStudent); + return vereinfachtesResultSet.next(); + } + ArrayList<Integer> getAnsweredQuizzes(StudentIdentifier student) { ArrayList<Integer> result = new ArrayList<>(); MysqlConnect connect = new MysqlConnect(); @@ -122,23 +167,49 @@ class AssessmentDBCommunication { connect.close(); } - void writeContributionRatingToDB(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) { + Integer getWhichGroupToRate(StudentIdentifier student){ + Integer result; + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest1 = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=? "; + VereinfachtesResultSet vereinfachtesResultSet1 = + connect.issueSelectStatement(mysqlRequest1, student.getProjectId(),student.getStudentId()); + vereinfachtesResultSet1.next(); + Integer groupId = vereinfachtesResultSet1.getInt("groupId"); + + String mysqlRequest2 = "SELECT DISTINCT groupId FROM `groupuser` WHERE `projectId`=? "; + VereinfachtesResultSet vereinfachtesResultSet2 = + connect.issueSelectStatement(mysqlRequest2, student.getProjectId()); + Boolean next = vereinfachtesResultSet2.next(); + result = vereinfachtesResultSet2.getInt("groupId"); + while(next){ + if (vereinfachtesResultSet2.getInt("groupId") == groupId){ + next = vereinfachtesResultSet2.next(); + if (next){ + result = vereinfachtesResultSet2.getInt("groupId"); + } + }else{ + next = vereinfachtesResultSet2.next(); + } + + } + connect.close(); + return result; + } + + void writeContributionRatingToDB(String groupId, String fromStudent, Map<String, Integer> contributionRating) { MysqlConnect connect = new MysqlConnect(); connect.connect(); String mysqlRequest = "INSERT INTO `contributionrating`(" + - "`studentId`, " + - "`projectId`, " + + "`groupId`, " + "`fromPeer`, " + "`dossier`, " + - "`eJournal`, " + "`research`) " + - "VALUES (?,?,?,?,?,?)"; + "VALUES (?,?,?,?)"; connect.issueInsertOrDeleteStatement(mysqlRequest, - student.getStudentId(), - student.getProjectId(), + groupId, fromStudent, contributionRating.get("dossier"), - contributionRating.get("eJournal"), contributionRating.get("research") ); connect.close(); @@ -156,7 +227,7 @@ class AssessmentDBCommunication { connect.close(); } - public Map<String, Boolean> getAnswers(String projectId, String question) { + Map<String, Boolean> getAnswers(String projectId, String question) { MysqlConnect connect = new MysqlConnect(); connect.connect(); Map<String, Boolean> result = new HashMap<>(); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java index ef9dd768e6d5890a7790156a62a5aa6b44986c30..8283f9a231c6c558032e108968a4386d379d9b8c 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java @@ -1,6 +1,5 @@ package unipotsdam.gf.modules.assessment.controller.service; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.ArrayList; @@ -61,7 +60,12 @@ public class FBAssessement extends AssessmentDAO { } @Override - public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) { + public Integer whichGroupToRate(StudentIdentifier student) { + return null; + } + + @Override + public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) { } @@ -75,6 +79,11 @@ public class FBAssessement extends AssessmentDAO { } + @Override + public String whatToRate(StudentIdentifier student) { + return null; + } + @Override public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) { return null; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java index 820adb76b897dc5028f45c13e8aba944aa6a09fc..d65c047ccced3756dd13292542eac5f58f09f901 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java @@ -1,8 +1,6 @@ package unipotsdam.gf.modules.assessment.controller.service; -import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.interfaces.IPeerAssessment; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.*; @@ -38,6 +36,29 @@ public class PeerAssessment implements IPeerAssessment { new QuizDBCommunication().deleteQuiz(quizId); } + @Override + public String whatToRate(StudentIdentifier student) { + Integer groupId = new AssessmentDBCommunication().getGroupByStudent(student); + ArrayList<String> groupMembers = new AssessmentDBCommunication().getStudentsByGroupAndProject(groupId, student.getProjectId()); + for (String peer: groupMembers){ + if (!peer.equals(student.getStudentId())){ + StudentIdentifier groupMember = new StudentIdentifier(student.getProjectId(), peer); + if (!new AssessmentDBCommunication().getWorkRating(groupMember, student.getStudentId())){ + return "workRating"; + } + } + } + ArrayList<Integer> answers = new AssessmentDBCommunication().getAnsweredQuizzes(student); + if (answers==null){ + return "quiz"; + } + Integer groupToRate = new AssessmentDBCommunication().getWhichGroupToRate(student); + if (!new AssessmentDBCommunication().getContributionRating(groupToRate, student.getStudentId())){ + return "contributionRating"; + } + return "done"; + } + @Override public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) { Map<StudentIdentifier, Double> quizMean = new HashMap<>(quizGrade(totalPerformance)); @@ -64,11 +85,14 @@ public class PeerAssessment implements IPeerAssessment { List<String> students = new AssessmentDBCommunication().getStudents(projectId); //for each student for (String student : students) { + Integer groupId; Performance performance = new Performance(); StudentIdentifier studentIdentifier = new StudentIdentifier(projectId, student); + groupId = new AssessmentDBCommunication().getGroupByStudent(studentIdentifier); List<Integer> answeredQuizzes = new AssessmentDBCommunication().getAnsweredQuizzes(studentIdentifier); ArrayList<Map<String, Double>> workRating = new AssessmentDBCommunication().getWorkRating(studentIdentifier); - ArrayList<Map<String, Double>> contributionRating = new AssessmentDBCommunication().getContributionRating(studentIdentifier); + ArrayList<Map<String, Double>> contributionRating = + new AssessmentDBCommunication().getContributionRating(groupId); performance.setStudentIdentifier(studentIdentifier); performance.setQuizAnswer(answeredQuizzes); performance.setWorkRating(cheatChecker(workRating, cheatCheckerMethods.variance)); @@ -208,10 +232,15 @@ public class PeerAssessment implements IPeerAssessment { } @Override - public void postContributionRating(StudentIdentifier student, + public Integer whichGroupToRate(StudentIdentifier student) { + return new AssessmentDBCommunication().getWhichGroupToRate(student); + } + + @Override + public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) { - new AssessmentDBCommunication().writeContributionRatingToDB(student, fromStudent, contributionRating); + new AssessmentDBCommunication().writeContributionRatingToDB(groupId, fromStudent, contributionRating); } @Override diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java index 78291cecd72583f82ec78bc02859cbf36ec4a01b..74bac433e2e831ea9fe23b6d18a754c66490e517 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java @@ -3,7 +3,6 @@ package unipotsdam.gf.modules.assessment.controller.service; import unipotsdam.gf.assignments.Assignee; import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.IPeerAssessment; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.*; @@ -66,7 +65,12 @@ public class PeerAssessmentDummy implements IPeerAssessment { } @Override - public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) { + public Integer whichGroupToRate(StudentIdentifier student) { + return null; + } + + @Override + public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) { } @@ -80,6 +84,11 @@ public class PeerAssessmentDummy implements IPeerAssessment { } + @Override + public String whatToRate(StudentIdentifier student) { + return null; + } + @Override public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) { return null; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java index e41b15a6dda0f0a60aa833c0682112d82e3edc4a..1a484981db9ba3e13241412482670db23acd32af 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java @@ -1,10 +1,14 @@ package unipotsdam.gf.modules.assessment.controller.view; +import unipotsdam.gf.core.management.Management; +import unipotsdam.gf.core.management.ManagementImpl; import unipotsdam.gf.interfaces.IPeerAssessment; +import unipotsdam.gf.interfaces.IPhases; import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment; +import javax.inject.Inject; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.io.IOException; @@ -39,6 +43,7 @@ public class QuizView { } //////////////////////////////////////////funktioniert/////////////////////////////////////// + @POST @Consumes(MediaType.APPLICATION_JSON) @Path("/peerRating/project/{projectId}") @@ -46,15 +51,22 @@ public class QuizView { peer.postPeerRating(peerRatings, projectId); } + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/groupRate/project/{projectId}/student/{studentId}") + public Integer whichGroupToRate(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) + { + StudentIdentifier student = new StudentIdentifier(projectId,studentId); + return peer.whichGroupToRate(student); + } + @POST @Consumes(MediaType.APPLICATION_JSON) - @Path("/contributionRating/projectId/{projectId}/studentId/{studentId}/fromPeer/{fromPeer}") + @Path("/contributionRating/group/{groupId}/fromPeer/{fromPeer}") public void postContributionRating(Map<String, Integer> contributionRatings, - @PathParam("projectId") String projectId, - @PathParam("studentId") String studentId, + @PathParam("groupId") String groupId, @PathParam("fromPeer") String fromPeer) throws IOException { - StudentIdentifier student = new StudentIdentifier(projectId, studentId); - peer.postContributionRating(student, fromPeer, contributionRatings); + peer.postContributionRating(groupId, fromPeer, contributionRatings); } @POST @@ -77,6 +89,15 @@ public class QuizView { } } + @GET + @Produces(MediaType.TEXT_HTML) + @Path("/whatToRate/project/{projectId}/student/{studentId}") + public String whatToRate(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) + { + StudentIdentifier student = new StudentIdentifier(projectId,studentId); + return peer.whatToRate(student); + } + @POST @Produces(MediaType.TEXT_PLAIN) @Consumes(MediaType.APPLICATION_JSON) @@ -140,7 +161,7 @@ public class QuizView { return getTotalAssessment(studentIdentifier); } //////////dummy/////////////funktioniert wie geplant////////////////////////////////// - public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) { + private ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) { return peer.getTotalAssessment(studentIdentifier); } /////////dummy/////////////funktioniert wie geplant////////////////////////////////// @@ -193,5 +214,4 @@ public class QuizView { result.add(pf2); return result; } /////////dummy////////////returns what i expect it to return!!!!!////////////////////////////////// - } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java index 8987f63c3863e21673bbf067fccced65dbff08ed..78f8621f3d2b9ba1fbaffc207a8970e05b56cb17 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java @@ -3,7 +3,11 @@ package unipotsdam.gf.modules.groupfinding; import unipotsdam.gf.core.management.group.Group; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.interfaces.IGroupFinding; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.groupfinding.service.GroupCreationService; +import unipotsdam.gf.modules.groupfinding.service.GroupDAO; +import java.util.ArrayList; import java.util.List; public class GroupfindingImpl implements IGroupFinding { @@ -27,4 +31,8 @@ public class GroupfindingImpl implements IGroupFinding { public void formGroups(GroupFormationMechanism groupFindingMechanism) { } + + public ArrayList<String> getStudentsInSameGroup(StudentIdentifier student){ + return new GroupDAO().getStudentsInSameGroupAs(student); + } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java new file mode 100644 index 0000000000000000000000000000000000000000..ffa94b4e83f1e00ff63e59692c956bc19e70403d --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java @@ -0,0 +1,34 @@ +package unipotsdam.gf.modules.groupfinding.service; + +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; + +import java.util.ArrayList; + +public class GroupDAO { + + public ArrayList<String> getStudentsInSameGroupAs(StudentIdentifier student) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + ArrayList<String> result = new ArrayList<>(); + Integer groupId; + String mysqlRequest1 = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=?"; + VereinfachtesResultSet vereinfachtesResultSet1 = + connect.issueSelectStatement(mysqlRequest1, student.getProjectId(), student.getStudentId()); + vereinfachtesResultSet1.next(); + groupId = vereinfachtesResultSet1.getInt("groupId"); + String mysqlRequest2 = "SELECT * FROM `groupuser` WHERE `groupId`=?"; + VereinfachtesResultSet vereinfachtesResultSet2 = + connect.issueSelectStatement(mysqlRequest2, groupId); + boolean next2 = vereinfachtesResultSet2.next(); + while(next2){ + String peer = vereinfachtesResultSet2.getString("studentId"); + if (!peer.equals( student.getStudentId())) + result.add(peer); + next2=vereinfachtesResultSet2.next(); + } + connect.close(); + return result; + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java new file mode 100644 index 0000000000000000000000000000000000000000..0a9f8c6602e980ec97825126b7f322cad1bb9719 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java @@ -0,0 +1,24 @@ +package unipotsdam.gf.modules.groupfinding.view; + +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.groupfinding.GroupfindingImpl; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import java.io.IOException; +import java.util.ArrayList; + +@Path("/group") +public class GroupView { + private GroupfindingImpl groupfinding = new GroupfindingImpl(); + + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/project/{projectId}/student/{studentId}") + public ArrayList<String> getStudentsInSameGroup(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) throws IOException { + //peer.postPeerRating(peerRatings, projectId); + StudentIdentifier student = new StudentIdentifier(projectId, studentId); + return groupfinding.getStudentsInSameGroup(student); + } + +} diff --git a/gemeinsamforschen/src/main/webapp/assets/css/footer.css b/gemeinsamforschen/src/main/webapp/assets/css/footer.css index 2e2c0e2201dbb15067036094d7b3347845b22d96..beb5cbc6a2d2f0a9015b498d756e4a0531d77ca8 100644 --- a/gemeinsamforschen/src/main/webapp/assets/css/footer.css +++ b/gemeinsamforschen/src/main/webapp/assets/css/footer.css @@ -2,42 +2,37 @@ background:#DDDDDD; } -.pg-enrollment { +.pg-CourseCreation { background: #777777; width:5%; } -.pg-groups { +.pg-GroupFormation { background: #AAAA77; width:15%; } -.pg-dossier { +.pg-test { + background: #4F3A3E; + width: 50%; +} + +.pg-DossierFeedback { background: #AA77AA; width:30%; } -.pg-feedback { +.pg-Execution { background: #77AAAA; - width:45%; -} - -.pg-reflection { - background: #55AA55; - width:60%; -} - -.pg-presentation { - background: #5555AA; - width:70%; + width:55%; } -.pg-assessment { +.pg-Assessment { background: #AA5555; - width:85%; + width:75%; } -.pg-done { +.pg-Projectfinished { background: #34DD44; width:100%; } diff --git a/gemeinsamforschen/src/main/webapp/assets/img/noImg.png b/gemeinsamforschen/src/main/webapp/assets/img/noImg.png new file mode 100644 index 0000000000000000000000000000000000000000..efc3eb6959ce4f5badd7802c54bccfeccbf2ecf3 Binary files /dev/null and b/gemeinsamforschen/src/main/webapp/assets/img/noImg.png differ diff --git a/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js b/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js new file mode 100644 index 0000000000000000000000000000000000000000..d35d4ceb258534952e37a952450705f2c0f24b4d --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js @@ -0,0 +1,58 @@ +$(document).ready(function () { + let projectId = $('#projectId').html().trim(); + $.ajax({ + url: '../rest/phases/projects/'+projectId, + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + type: 'GET', + success: function (response) { + let phaseDiv = $('#'+response); + if (phaseDiv !== null){ + phaseDiv.toggleClass('alert-info'); + } else { + $('#end').toggleClass('alert-info'); + } + }, + error: function (a) { + + } + }); + $('#btnAssessment').on('click', function(){ + changePhase('Assessment'); + }); + $('#btnExecution').on('click', function(){ + changePhase('Execution'); + }); + $('#btnGroupformation').on('click', function(){ + changePhase('GroupFormation'); + }); + $('#btnCourseCreation').on('click', function(){ + changePhase('CourseCreation'); + }); + $('#btnDossierFeedback').on('click', function(){ + changePhase('DossierFeedback'); + }); + $('#btnProjectfinished').on('click', function(){ + changePhase('Projectfinished'); + }); +}); + +function changePhase(toPhase){ + let projectId = $('#projectId').html().trim(); + $.ajax({ + url: '../rest/phases/'+toPhase+'/projects/'+projectId, + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + type: 'POST', + success: function () { + location.href="#" + }, + error: function (a) { + + } + }); +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createProject.js b/gemeinsamforschen/src/main/webapp/assets/js/createProject.js index 409171b0173bbcbd105b0d9955123fc78570d606..696572480960c61746fcf08f4f70d407a9037d95 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/createProject.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/createProject.js @@ -2,4 +2,25 @@ $(document).ready(function(){ $('#submit').on('click', function(){ location.href="specificRequirement.jsp?token="+getUserTokenFromUrl(); }); + let projectId = $('#projectId').html().trim(); + $.ajax({ + url: '../rest/phases/projects/'+projectId, + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + type: 'GET', + success: function (response) { + let phaseDiv = $('#'+response); + if (phaseDiv !== null){ + phaseDiv.toggleClass('alert','alert-info'); + } else { + $('#end').addClass('alert-info'); + } + + }, + error: function (a) { + + } + }); }); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js index b8e097d0a5e1ae22d441c4cc3ac79d3d04c21ab6..37413173379a5a73600abf21938d1ef9be06dede 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js @@ -1,34 +1,34 @@ $(document).ready(function () { $('#addCorrectAnswer').on('click', function(){ - var divCorrectAnswer = document.getElementById('correctAnswers'); - var i = divCorrectAnswer.children.length; - var inputCorrectAnswer = document.createElement('INPUT'); + let divCorrectAnswer = document.getElementById('correctAnswers'); + let i = divCorrectAnswer.children.length; + let inputCorrectAnswer = document.createElement('INPUT'); inputCorrectAnswer.id='correctAnswer'+i; divCorrectAnswer.appendChild(inputCorrectAnswer); }); $('#addIncorrectAnswer').on('click', function(){ - var divIncorrectAnswer = document.getElementById('incorrectAnswers'); - var i = divIncorrectAnswer.children.length; - var inputIncorrectAnswer = document.createElement('INPUT'); + let divIncorrectAnswer = document.getElementById('incorrectAnswers'); + let i = divIncorrectAnswer.children.length; + let inputIncorrectAnswer = document.createElement('INPUT'); inputIncorrectAnswer.id='incorrectAnswer'+i; divIncorrectAnswer.appendChild(inputIncorrectAnswer); }); $('#deleteCorrectAnswer').on('click', function(){ - var divCorrectAnswer = document.getElementById('correctAnswers'); + let divCorrectAnswer = document.getElementById('correctAnswers'); divCorrectAnswer.removeChild(divCorrectAnswer.lastChild); }); $('#deleteIncorrectAnswer').on('click', function(){ - var divIncorrectAnswer = document.getElementById('incorrectAnswers'); + let divIncorrectAnswer = document.getElementById('incorrectAnswers'); divIncorrectAnswer.removeChild(divIncorrectAnswer.lastChild); }); $("#save").on('click', function () { - var correctAnswers= []; - var incorrectAnswers= []; - var shuttleList = document.getElementById('correctAnswers'); + let correctAnswers= []; + let incorrectAnswers= []; + let shuttleList = document.getElementById('correctAnswers'); for (var i=0; i<shuttleList.children.length; i++) { correctAnswers.push(shuttleList.children[i].value.trim()) @@ -38,17 +38,17 @@ $(document).ready(function () { { incorrectAnswers.push(shuttleList.children[i].value.trim()) } - var quiz = { + let quiz = { question: $('#question').val().trim(), type: 'mc', correctAnswers: correctAnswers, incorrectAnswers: incorrectAnswers }; - var studentIdentifier = { + let studentIdentifier = { studentId: $('#user').html().trim(), projectId: $('#projectId').html().trim() }; - var data = JSON.stringify({ + let data = JSON.stringify({ studentIdentifier: studentIdentifier, quiz: quiz }); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js index a56e8a766a20f895dd8674056e796e5613bbc5b0..0f57c3bec407e642306c68bb0fed7651af94a53b 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js @@ -1,57 +1,180 @@ -$(document).ready(function() { +$(document).ready(function () { + checkAssessementPhase(); + + $('#notAllRated').hide(); $(".carousel").carousel({ interval: false }); + buildTablesForPeers(); + $('#assessThePeer').on("click", function () { assessPeer(); }); }); -function assessPeer(){ - let peerStudents =$('.peerStudent'); + +function buildTablesForPeers() { + let studentId = $('#user').html().trim(); + let projectId = $('#projectId').html().trim(); + $.ajax({ + url: '../rest/group/project/' + projectId + '/student/' + studentId, + type: 'GET', + headers: { + "Content-Type": "text/javascript", + "Cache-Control": "no-cache" + }, + success: function (peers) { + let div = document.getElementById('peerTable'); + for (let peer = 0; peer < peers.length; peer++) { + let tablePeer = document.createElement('DIV'); + if (peer === 0) { + tablePeer.className = "item active"; + } else { + tablePeer.className = "item"; + } + let innerPeerTable = '<table class="table-striped peerStudent" id="' + peers[peer] + '">' + + '<tr>' + + '<td align="center">' + + '<img src="../assets/img/noImg.png" alt="' + peers[peer] + '" style="width:20%;">' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Verantwortungsbewusstsein</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>stark ausgeprägt<input type="radio" value="5" name="responsibility' + peers[peer] + '"></label>' + + '<input type="radio" value="4" name="responsibility' + peers[peer] + '">' + + '<input type="radio" value="3" name="responsibility' + peers[peer] + '">' + + '<input type="radio" value="2" name="responsibility' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="responsibility' + peers[peer] + '">ungenügend</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Anteil am Produkt</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>großer Anteil<input type="radio" value="5" name="partOfWork' + peers[peer] + '"></label>' + + '<input type="radio" value="4" name="partOfWork' + peers[peer] + '">' + + '<input type="radio" value="3" name="partOfWork' + peers[peer] + '">' + + '<input type="radio" value="2" name="partOfWork' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="partOfWork' + peers[peer] + '">geringer Anteil</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Kooperationsbereitschaft</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>sehr kooperativ<input type="radio" value="5" name="cooperation' + peers[peer] + '">' + + '</label>' + + '<input type="radio" value="4" name="cooperation' + peers[peer] + '">' + + '<input type="radio" value="3" name="cooperation' + peers[peer] + '">' + + '<input type="radio" value="2" name="cooperation' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="cooperation' + peers[peer] + '">nicht kooperativ</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Disskusionsfähigkeit</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>gut kommuniziert und Meinung vertreten<input type="radio" value="5" name="communication' + peers[peer] + '">' + + '</label>' + + '<input type="radio" value="4" name="communication' + peers[peer] + '">' + + '<input type="radio" value="3" name="communication' + peers[peer] + '">' + + '<input type="radio" value="2" name="communication' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="communication' + peers[peer] + '">keine Meinung und schlecht kommuniziert</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Selbstständigkeit</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>selbstständig<input type="radio" value="5" name="autonomous' + peers[peer] + '">' + + '</label>' + + '<input type="radio" value="4" name="autonomous' + peers[peer] + '">' + + '<input type="radio" value="3" name="autonomous' + peers[peer] + '">' + + '<input type="radio" value="2" name="autonomous' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="autonomous' + peers[peer] + '">abhängig</label>' + + '</td>' + + '</tr>' + + '</table>' + + '<div align="center">' + + ' <button class="btn btn-primary" id="btnJournal' + peers[peer] + '">' + + ' zeige Lernzieltagebuch</button>' + + ' <div id="eJournal' + peers[peer] + '">Fasel Blubba Bla</div>' + + '</div>'; + tablePeer.innerHTML = innerPeerTable; + div.appendChild(tablePeer); + $('#btnJournal' + peers[peer]).on("click", function () { + $('#eJournal' + peers[peer]).toggle(); + }); + } + }, + error: function () { + } + } + ); +} + +function assessPeer() { + let peerStudents = $('.peerStudent'); ///////initialize variables/////// - let dataP = new Array(peerStudents.size()); - let rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous']; + let dataP = new Array(peerStudents.length); + let rateThis = ['responsibility', 'partOfWork', 'cooperation', 'communication', 'autonomous']; ///////read values from html/////// - for (let peer=0; peer< peerStudents.length; peer++){ + for (let peer = 0; peer < peerStudents.length; peer++) { let workRating = {}; let peerRating = { "fromPeer": $('#user').html().trim(), "toPeer": peerStudents[peer].id, "workRating": {} }; - for (let rate=0; rate<rateThis.length; rate++ ){ + for (let rate = 0; rate < rateThis.length; rate++) { let category = rateThis[rate]; - workRating[category]=($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val()); + workRating[category] = ($('input[name=' + rateThis[rate] + peerStudents[peer].id + ']:checked').val()); } peerRating.workRating = workRating; //////write values in Post-Variable - dataP[peer]=peerRating; + dataP[peer] = peerRating; } - for (let peer=0; peer< dataP.length; peer++){ - for (let workRating=0; workRating<rateThis.length;workRating++){ - if(dataP[peer].workRating[rateThis[workRating]]===undefined){ + for (let peer = 0; peer < dataP.length; peer++) { + for (let workRating = 0; workRating < rateThis.length; workRating++) { + if (dataP[peer].workRating[rateThis[workRating]] === undefined) { $('#notAllRated').show(); return; } } } - let projectId=$('#projectId').html().trim(); + let projectId = $('#projectId').html().trim(); $.ajax({ - url:'../rest/assessments/peerRating/project/'+projectId, + url: '../rest/assessments/peerRating/project/' + projectId, type: 'POST', headers: { "Content-Type": "application/json", "Cache-Control": "no-cache" }, data: JSON.stringify(dataP), - success: function(){ - location.href="takeQuiz.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim(); + success: function () { + location.href = "takeQuiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim(); }, - error: function(a,b,c){ + error: function (a, b, c) { } }); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/footer.js b/gemeinsamforschen/src/main/webapp/assets/js/footer.js index 33e3ada606d22727234e01d6fa131f67e1240009..9407ef60d1a1c1af5d8bce6c5dc1e9c1835645bc 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/footer.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/footer.js @@ -1,31 +1,3 @@ $(document).ready(function(){ - $('#nextPhase').click(function(){ - var progressbar =$('#progressbar'); - switch (progressbar.attr('class')){ - case 'progress-bar pg-groups': - progressbar.removeClass('pg-groups'); - progressbar.addClass('pg-dossier'); - break; - case 'progress-bar pg-dossier': - progressbar.removeClass('pg-dossier'); - progressbar.addClass('pg-feedback'); - break; - case 'progress-bar pg-feedback': - progressbar.removeClass('pg-feedback'); - progressbar.addClass('pg-reflection'); - break; - case 'progress-bar pg-reflection': - progressbar.removeClass('pg-reflection'); - progressbar.addClass('pg-presentation'); - break; - case 'progress-bar pg-presentation': - progressbar.removeClass('pg-presentation'); - progressbar.addClass('pg-assessment'); - break; - case 'progress-bar pg-assessment': - progressbar.removeClass('pg-assessment'); - progressbar.addClass('pg-done'); - break; - } - }); + }); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/profile.js b/gemeinsamforschen/src/main/webapp/assets/js/profile.js new file mode 100644 index 0000000000000000000000000000000000000000..63b2a09e747bacbc099f3f188ccc0d1222799881 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/assets/js/profile.js @@ -0,0 +1,49 @@ +$(document).ready(function (e) { + /*$("#uploadimage").on('submit',(function(e) { + e.preventDefault(); + $("#message").empty(); + $('#loading').show(); + $.ajax({ + url: "../rest/user/student/wiepke", // Url to which the request is send + method: "POST", + type: "POST", // Type of request to be send, called as method + data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) + contentType: false, // The content type used when sending data to the server. + cache: false, // To unable request pages to be cached + processData:false, // To send DOMDocument or non processed data file it is set to false + success: function(data) // A function to be called if request succeeds + { + $('#loading').hide(); + $("#message").html(data); + } + }); + }));*/ + +// Function to preview image after validation + $(function() { + $("#file").change(function() { + $("#message").empty(); // To remove the previous error message + let file = this.files[0]; + let match= ["image/jpeg","image/png","image/jpg"]; + if(!((file.type===match[0]) || (file.type===match[1]) || (file.type===match[2]))) + { + $('#previewing').attr('src','noimage.png'); + $("#message").html("<p id='error'>Please Select A valid Image File</p>"+"<h4>Note</h4>"+"<span id='error_message'>Only jpeg, jpg and png Images type allowed</span>"); + return false; + } + else + { + var reader = new FileReader(); + reader.onload = imageIsLoaded; + reader.readAsDataURL(this.files[0]); + } + }); + }); + function imageIsLoaded(e) { + $("#file").css("color","green"); + $('#image_preview').css("display", "block"); + $('#previewing').attr('src', e.target.result); + $('#previewing').attr('width', '250px'); + $('#previewing').attr('height', '230px'); + }; +}); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js index b7e3c6b5fcaafd34e8c7c7066027d6d1a7d6069c..402b474a1d1d3f9816757b53e8d7b3fed725e750 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js @@ -1,10 +1,4 @@ $(document).ready(function () { - new InscrybMDE({ - element: document.getElementById("ejournalFeedback"), - spellChecker: false, - //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"], - minHeight: "80px", - }); new InscrybMDE({ element: document.getElementById("presentationFeedback"), spellChecker: false, @@ -18,6 +12,7 @@ $(document).ready(function () { minHeight: "80px", }); + whichGroupToRate(); //editor.style = "min-height: 100px"; @@ -27,6 +22,25 @@ $(document).ready(function () { }); }); +function whichGroupToRate(){ + let projectId = $('#projectId').html().trim(); + let studentId = $('#user').html().trim(); + $.ajax({ + url: '../rest/assessments/groupRate/project/'+projectId+'/student/'+studentId, + type: 'GET', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + success: function (groupId) { + $('#groupId').html(groupId); + }, + error: function () { + + } + }) +} + function safeContributionRating() { let contributions = $('.contributionRating'); ///////initialize variables/////// @@ -37,12 +51,10 @@ function safeContributionRating() { let checkbox = $("#" + contributions[contribution].id + " input:checked"); dataP[checkbox.attr('name')] = checkbox.val(); } - let projectId = $('#projectId').html().trim(); let fromPeer = $('#user').html().trim(); - let toStudent = $('.peerStudent').attr('id'); + let groupId = $('#groupId').html().trim(); $.ajax({ - url: '../rest/assessments/contributionRating/projectId/' + projectId + - '/studentId/' + toStudent + '/fromPeer/' + fromPeer, + url: '../rest/assessments/contributionRating/group/'+groupId+'/fromPeer/' + fromPeer, type: 'POST', headers: { "Content-Type": "application/json", diff --git a/gemeinsamforschen/src/main/webapp/assets/js/utility.js b/gemeinsamforschen/src/main/webapp/assets/js/utility.js index c5b8b37d083e2cc80f2260ded050c6c710143ade..3f21a38cd0eb8e61357a783869a2db3cc4e4f57d 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/utility.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/utility.js @@ -1,12 +1,61 @@ $(document).ready(function(){ $('#headLineProject').html($('#projectId').html()); + $('#logout').click(function(){ + //todo: delete cookies / reset session + document.location="../index.jsp"; + }); + $('#assessment').click(function(){ + checkAssessementPhase(); + }); + $('#footerBack').click(function(){ + goBack(); + }); }); +function goBack() { + window.history.back(); +} + +function checkAssessementPhase(){ + let studentId = $('#user').html().trim(); + let projectId = $('#projectId').html().trim(); + $.ajax({ + url: '../rest/assessments/whatToRate/project/'+projectId+'/student/'+studentId, + type: 'GET', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + success: function (phase) { + switch (phase){ + case "workRating":{ + document.location="finalAssessment.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim(); + break; + } + case "quiz":{ + location.href = "takeQuiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim(); + break; + } + case "contributionRating":{ + location.href = "rateContribution.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim(); + break; + } + case "done":{ + location.href = "project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim(); + break; + } + } + }, + error: function(a){ + } + }); +} + function getUserTokenFromUrl() { - var parts = window.location.search.substr(1).split("&"); - var $_GET = {}; - for (var i = 0; i < parts.length; i++) { - var temp = parts[i].split("="); + let parts = window.location.search.substr(1).split("&"); + let $_GET = {}; + for (let i = 0; i < parts.length; i++) { + let temp = parts[i].split("="); $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]); } return $_GET['token']; @@ -14,11 +63,11 @@ function getUserTokenFromUrl() { } function getQueryVariable(variable) { - var query = window.location.search.substring(1); - var vars = query.split("&"); - for (var i = 0; i < vars.length; i++) { - var pair = vars[i].split("="); - if (pair[0] == 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]; } } diff --git a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld index 3c2db0269960c9ff430c6e6d82e74a225d195972..b32f459cea3a6a036b622c85cb47749d45a1d3a0 100644 --- a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld +++ b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld @@ -11,7 +11,7 @@ <tag> <name>menu</name> - <tag-class>unipotsdam.gf.core.management.user.Menu</tag-class> + <tag-class>unipotsdam.gf.core.management.pageAppearance.Menu</tag-class> <body-content>empty</body-content> </tag> @@ -23,13 +23,19 @@ <tag> <name>omniDependencies</name> - <tag-class>unipotsdam.gf.core.management.user.omniDependencies</tag-class> + <tag-class>unipotsdam.gf.core.management.pageAppearance.omniDependencies</tag-class> <body-content>empty</body-content> </tag> <tag> <name>headLine</name> - <tag-class>unipotsdam.gf.core.management.user.headLine</tag-class> + <tag-class>unipotsdam.gf.core.management.pageAppearance.headLine</tag-class> + <body-content>empty</body-content> + </tag> + + <tag> + <name>footer</name> + <tag-class>unipotsdam.gf.core.management.pageAppearance.footer</tag-class> <body-content>empty</body-content> </tag> diff --git a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig index 464689080655114907b3461748349ae320db9d88..24e3cda55c35f4136e26d14751eee2747723d997 100644 --- a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig +++ b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig @@ -11,14 +11,14 @@ <tag> <name>menu</name> - <tag-class>unipotsdam.gf.core.management.user.Menu</tag-class> + <tag-class>unipotsdam.gf.core.management.pageAppearance.Menu</tag-class> <body-content>empty</body-content> </tag> <tag> <<<<<<< HEAD <name>headLine</name> - <tag-class>unipotsdam.gf.core.management.user.headLine</tag-class> + <tag-class>unipotsdam.gf.core.management.pageAppearance.headLine</tag-class> ======= <name>session</name> <tag-class>unipotsdam.gf.core.session.SessionTag</tag-class> @@ -29,7 +29,7 @@ <tag> <<<<<<< HEAD <name>omniDependencies</name> - <tag-class>unipotsdam.gf.core.management.user.omniDependencies</tag-class> + <tag-class>unipotsdam.gf.core.management.pageAppearance.omniDependencies</tag-class> ======= <name>context</name> <tag-class>unipotsdam.gf.core.session.ContextTag</tag-class> diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp index 64db788d2e1fb91279b7fa9f339d33d0b232c26e..6d693e27525436354f12e04005d2f59850d4e3e0 100644 --- a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp @@ -1,7 +1,8 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> <html> <head> @@ -22,7 +23,7 @@ <button class="btn btn-primary" id="newQuiz">neues Quiz</button> </div> + <footer:footer/> </div> - </body> </html> diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp index f5f04d45e484bec9d965916f9910f85a5fb176cf..5e7341363506343927281caf860275bcb48080c6 100644 --- a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp @@ -1,7 +1,8 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> <html> <head> @@ -22,7 +23,7 @@ <button class="btn btn-primary" id="newQuiz">neues Quiz</button> </div> + <footer:footer/> </div> - </body> </html> diff --git a/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp b/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp new file mode 100644 index 0000000000000000000000000000000000000000..c3d7c07a1f47ed3e1a855ef454dca240d92fb8c7 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp @@ -0,0 +1,41 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> + + +<html> +<head> + <omniDependencies:omniDependencies/> + <script src="../assets/js/changePhase.js"></script> +</head> + +<body> +<div id="wrapper"> + <menu:menu/> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div class="alert"id="CourseCreation"> + <button id="btnCourseCreation" class="btn btn-secondary">Projekterstellungsphase</button> + </div> + <div class="alert" id="GroupFormation"> + <button id="btnGroupformation" class="btn btn-secondary">Gruppen erstellen</button> + </div> + <div class="alert" id="DossierFeedback"> + <button id="btnDossierFeedback" class="btn btn-secondary">Feedbackphase</button> + </div> + <div class="alert" id="Execution"> + <button id="btnExecution" class="btn btn-secondary">Durchführungsphase</button> + </div> + <div class="alert" id="Assessment"> + <button id="btnAssessment" class="btn btn-secondary">Bewertungsphase</button> + </div> + <div class="alert" id="end"> + <button id="btnProjectfinished" class="btn btn-secondary">Ende</button> + </div> + </div> + <footer:footer/> +</div> +</body> +</html> diff --git a/gemeinsamforschen/src/main/webapp/pages/createGroups.jsp b/gemeinsamforschen/src/main/webapp/pages/createGroups.jsp new file mode 100644 index 0000000000000000000000000000000000000000..4b22ba4e92ae53aeaf9abfc1a7a2ebdd16469a75 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/pages/createGroups.jsp @@ -0,0 +1,24 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> + +<html> +<head> + <omniDependencies:omniDependencies/> + <script src="../assets/js/changePhase.js"></script> +</head> + +<body> +<div id="wrapper"> + <menu:menu/> + <div class="page-content-wrapper"> + <headLine:headLine/> + student1<br> + student2<br> + <br> + in Gruppe 1 2 3 + </div> +</div> +</body> +</html> diff --git a/gemeinsamforschen/src/main/webapp/pages/createProject.jsp b/gemeinsamforschen/src/main/webapp/pages/createProject.jsp index 3984538cbfcaa344fa73305dcfd271d368ce6209..84f529a57f133988191875eac3c9f327d3217b23 100644 --- a/gemeinsamforschen/src/main/webapp/pages/createProject.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/createProject.jsp @@ -2,6 +2,8 @@ <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> + <!DOCTYPE html> <html> @@ -26,7 +28,7 @@ </div> </div> - +<footer:footer/> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp index 512844f6c308bac4903aaa02e3f92af58f0405a1..7601ff88f154ff2df7613bfc1c2f55a5de1a2c25 100644 --- a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp @@ -1,7 +1,8 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> <html> <head> @@ -28,7 +29,7 @@ <button id="save">speichern</button> </div> </div> + <footer:footer/> </div> - </body> </html> diff --git a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp index 1273a5887b11dd21268eb8c61084693d21ef565c..4a6908591abadfecd0fcd915e9743637d29d0442 100644 --- a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp @@ -1,7 +1,8 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> <!DOCTYPE html> <html> @@ -43,20 +44,13 @@ <!-- here will be all the content --> <div class="container"> <div id="myCarousel" class="carousel slide" data-ride="carousel" data-interval="false"> - <!-- Indicators --> - <ol class="carousel-indicators"> - <li data-target="#myCarousel" data-slide-to="0" class="active"></li> - <li data-target="#myCarousel" data-slide-to="1"></li> - <li data-target="#myCarousel" data-slide-to="2"></li> - </ol> - <!-- Wrapper for slides --> <div class="alert alert-info" id="notAllRated"> Es wurden noch nicht alle Studenten vollständig bewertet </div> - <div class="carousel-inner"> - <div class="item active"> + <div class="carousel-inner" id="peerTable"> + <!--<div class="item active"> <table class="table-striped peerStudent" style="width:70%;border:1px solid; margin:auto;" id="Student1"> <tr> @@ -146,6 +140,12 @@ </td> </tr> </table> + <div align="center"> + <button class="btn btn-primary" id="btnJournalStudent1" >zeige Lernzieltagebuch</button> + <div id="eJournalStudent1"> + Fasel Blubba Bla + </div> + </div> </div> <div class="item"> @@ -238,6 +238,12 @@ </td> </tr> </table> + <div align="center"> + <button class="btn btn-primary" id="btnJournalStudent2">zeige Lernzieltagebuch</button> + <div id="eJournalStudent2"> + Fasel Blubba Bla + </div> + </div> </div> <div class="item"> @@ -330,7 +336,13 @@ </td> </tr> </table> - </div> + <div align="center"> + <button class="btn btn-primary" id="btnJournalStudent3">zeige Lernzieltagebuch</button> + <div id="eJournalStudent3" align="center"> + Fasel Blubba Bla + </div> + </div> + </div>--> </div> <!-- Left and right controls --> @@ -408,11 +420,9 @@ </table> </div> </div> + <footer:footer/> </div> -<script src="../assets/js/jquery.min.js"></script> -<script src="../assets/bootstrap/js/bootstrap.min.js"></script> -<script src="../assets/js/Sidebar-Menu.js"></script> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/profile.jsp b/gemeinsamforschen/src/main/webapp/pages/profile.jsp index 7f37281156d4d10c858001fff953e5d9c5aa6b29..18dfc349ff5b1a81f358595049b136b573734040 100644 --- a/gemeinsamforschen/src/main/webapp/pages/profile.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/profile.jsp @@ -1,22 +1,18 @@ <%@ page import="unipotsdam.gf.core.management.ManagementImpl" %> <%@ page import="unipotsdam.gf.core.management.user.User" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> + <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Profil</title> - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> - <link rel="stylesheet" href="../assets/css/styles.css"> - <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> - <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> - <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css"> - <link rel="stylesheet" href="../assets/css/Community-ChatComments.css"> - <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css"> - <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css"> + <omniDependencies:omniDependencies/> + <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed|Open+Sans+Condensed:300' rel='stylesheet' type='text/css'> + <script src="../assets/js/profile.js"></script> </head> @@ -29,25 +25,10 @@ <body> <div id="wrapper"> - <menu:menu></menu:menu> + <menu:menu/> <div class="page-content-wrapper"> - <div class="container-fluid"> - <h1 id="projectId"> - <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 id="content"> - - <div class="page-header text-center"> - <h1>Mein Profil</h1> - </div> - + <headLine:headLine/> <div class="container"> <div class="row"> <%-- about --%> @@ -60,6 +41,16 @@ </li> <li class="list-group-item"> <p>Sonstiges:</p> + <form id="uploadimage" method="post" action="../rest/user/student/wiepke"> + <div id="image_preview"><img id="previewing" src="../assets/img/noImg.png" /></div> + <hr id="line"> + <div id="selectImage"> + <label>Select Your Image</label><br/> + <input type="file" name="image" id="file" required /> + <input type="submit" value="Upload" class="submit" /> + </div> + </form> + <p id="message"></p> </li> </ul> @@ -123,13 +114,8 @@ </div> </div> + <footer:footer/> </div> -</div> - -<script src="../assets/js/jquery.min.js"></script> -<script src="../assets/bootstrap/js/bootstrap.min.js"></script> -<script src="../assets/js/Sidebar-Menu.js"></script> - </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp index 9dbf5687f892d59a4d44927e6bce2832aed4d305..5aafa19554988dc0438d51b9bd5fe573390cc479 100644 --- a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp @@ -3,6 +3,8 @@ <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> + <!DOCTYPE html> @@ -86,74 +88,13 @@ </table> </div> </div> - <div class="col-md-6"> - <div class="panel panel-default"> - <div class="panel-heading"> - <h3 class="panel-title">ProjektChat</h3> - </div> - <div class="panel-body" style="height:233px;"> - <ul class="list-group"> - <li class="list-group-item" style="margin-bottom:6px;"> - <div class="media"> - <div class="media-left"><a></a></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div class="media-left"><a><img src="../assets/img/1.jpg" - class="img-rounded" - style="width: 25px; height:25px;"></a> - </div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Sara Doe:</a> This guy has been going - 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - <li class="list-group-item" style="margin-bottom:6px;"> - <div class="media"> - <div class="media-left"><a></a></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div class="media-left"><a><img src="../assets/img/1.jpg" - class="img-rounded" - style="width: 25px; height:25px;"></a> - </div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Brennan Prill:</a> This guy has been - going 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - </ul> - <button class="btn btn-default" type="button" - style="margin-left:601px;margin-top:-9px;">Add Comment - </button> - </div> - </div> - </div> </div> </div> </div> </div> </div> <communication:chatWindow orientation="right" /> +<footer:footer/> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp index a8be6406cff0e171c884faa3d1eaadaee5bbb083..a4ff66173013c070fb9a27c01d8279db77fbfdc2 100644 --- a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp @@ -1,8 +1,10 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%--suppress XmlDuplicatedId --%> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> + <!--todo: E-mail an Studenten als Notifikation für Phasenwechsel --> @@ -54,7 +56,6 @@ style="font-size:15px;"></i>feedback</label> </a> </li> - </a> </ul> </td> <td></td> @@ -103,91 +104,13 @@ </table> <button onclick="goBack()" class="btn btn-secondary">Zurueck</button> - - <script> - function goBack() { - window.history.back(); - } - </script> - - </td> - <td id="chat"> - <div class="card"> - <div class="card-header"> - <h6 class="mb-0">Gruppen+Projekt Chat</h6> - </div> - <div class="card-body"> - <ul class="list-group"> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/1.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Sara Doe:</a> This guy has been going - 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/2.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Brennan Prill:</a> This guy has been - going 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - </ul> - <button class="btn btn-light"> - Add Comment - </button> - </div> - </div> </td> </tr> </table> </div> </div> - <footer> - <div class="container"> - <div class="progress"> - <div class="progress-bar pg-groups" role="progressbar" id="progressbar"> - </div> - <div> - Assessment - Präsentationsphase - Dossier - Reflexionsphase - Feedbackphase - Gruppenbildung - </div> - <div class="progress-bar pg-rest" role="progressbar"> - </div> - </div> - <button id="nextPhase" class="btn btn-light">nächste Phase</button> - <button id="btnUnstructuredUpload" class="btn btn-light">Unstrukturierte Abgabe</button> - </div> - </footer> + <footer:footer/> + </div> </body> diff --git a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp index 50431a5333efaf8cfbe617b8c561a1828a63aac2..cfda957fd875e6dcc394162b2031fe301bf6ff53 100644 --- a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp @@ -1,7 +1,8 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> <!DOCTYPE html> <html> @@ -16,35 +17,19 @@ <body> <div id="wrapper"> <menu:menu/> + <p id="groupId" hidden>Hier steht jetzt das richtige</p> <div class="page-content-wrapper"> <headLine:headLine/> <div> <table> <tr> <td id="yourContent"> - <h1>letzter Schritt im Projekt1 </h1> + <h2>letzter Schritt im Projekt1 </h2> <table class="table-striped peerStudent" - style="width:100%;border:1px solid; margin:auto;" id="student1"> + style="width:100%;border:1px solid; margin:auto;" id="2"> <tr> <td align="center"> - <img src="../assets/img/1.jpg" alt="student1" - style="width:20%;"> - </td> - </tr> - <tr> - <td> - <div class="contributionRating" id="eJournal"> - Lernzieltagebuch: - Lernen ist wie Rudern gegen den Strom. Hört man damit auf, treibt man zurück. - <textarea id="ejournalFeedback"> - meine Bewertung - </textarea> - <label><input type="radio" name="eJournal" value="5">Perfekt</label> - <label><input type="radio" name="eJournal" value="4">Makellos</label> - <label><input type="radio" name="eJournal" value="3">regulär</label> - <label><input type="radio" name="eJournal" value="2">Makelhaft</label> - <label><input type="radio" name="eJournal" value="1">Lädiert</label> - </div> + <h3>Gruppe 4</h3> </td> </tr> <tr> @@ -83,68 +68,11 @@ </table> <button id="submit" class="btn btn-success">Feedback hochladen</button> </td> - <td id="chat"> - <div class="card"> - <div class="card-header"> - <h6 class="mb-0">Gruppen+Projekt Chat</h6> - </div> - <div class="card-body"> - <ul class="list-group"> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/1.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Sara Doe:</a> This guy has been going - 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/2.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Brennan Prill:</a> This guy has been - going 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - </ul> - <button class="btn btn-light"> - Add Comment - </button> - </div> - </div> - </td> </tr> </table> </div> </div> + <footer:footer/> </div> </body> diff --git a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp index 0eb33c1eaf3afbddc608bf14f0ce7c50692e380d..a0c99526f7d16fcef2a3473c6f5d5f098ed016de 100644 --- a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp @@ -2,6 +2,7 @@ <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> <!DOCTYPE html> <html> @@ -32,68 +33,11 @@ </table> <button id="submitQuiz" class="btn btn-success">Antwort speichern</button> </td> - <td id="chat"> - <div class="card"> - <div class="card-header"> - <h6 class="mb-0">Gruppen+Projekt Chat</h6> - </div> - <div class="card-body"> - <ul class="list-group"> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/1.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Sara Doe:</a> This guy has been going - 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/2.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Brennan Prill:</a> This guy has been - going 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - </ul> - <button class="btn btn-light"> - Add Comment - </button> - </div> - </div> - </td> </tr> </table> </div> </div> + <footer:footer/> </div> </body> diff --git a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp index e105590e4a126bb3c2c390e9c9db96ff145dee07..8cadd01e748a2be689f85d9fec370d4d97e2d4a6 100644 --- a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp @@ -1,7 +1,9 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> -<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %><!DOCTYPE html> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %> +<!DOCTYPE html> <html> <head> @@ -30,68 +32,11 @@ </table> <button id="deleteQuiz" class="btn btn-danger">Quiz löschen</button> </td> - <td id="chat"> - <div class="card"> - <div class="card-header"> - <h6 class="mb-0">Gruppen+Projekt Chat</h6> - </div> - <div class="card-body"> - <ul class="list-group"> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/1.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Sara Doe:</a> This guy has been going - 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../assets/img/2.jpg" class="mr-3" - style="width: 25px; height:25px;"></div> - <div class="media-body" style="overflow:visible;"> - <div class="row"> - <div class="col-md-12"> - <p><a href="#">Brennan Prill:</a> This guy has been - going 100+ MPH on side streets. <br> - <small class="text-muted">August 6, 2016 @ 10:35am - </small> - </p> - </div> - </div> - </div> - </div> - </div> - </div> - </li> - </ul> - <button class="btn btn-light"> - Add Comment - </button> - </div> - </div> - </td> </tr> </table> </div> </div> + <footer:footer/> </div> </body> diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql index 2e37f5d4949ea62d0cf540294fb7d36886aa83cd..21bacdb616a1795e4087d2cefe617b36a380406b 100644 --- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql +++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql @@ -1,274 +1,137 @@ -CREATE DATABASE IF NOT EXISTS `fltrail` +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; - DEFAULT CHARACTER SET utf8 +/*!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 */; - COLLATE utf8_general_ci; -USE `fltrail`; - -CREATE TABLE if not exists `projects` ( - - `id` varchar(100) NOT NULL, - - `password` varchar(400) NOT NULL, - - `active` tinyint(1) NOT NULL, - - `timecreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP - ON UPDATE CURRENT_TIMESTAMP, - - `author` varchar(400) NOT NULL, - - `adminPassword` varchar(400) NOT NULL, - - `token` varchar(400) NOT NULL, - - `phase` varchar(400) NOT NULL - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists `groups` ( - - `id` int NOT NULL AUTO_INCREMENT, - - `projectId` varchar(400) NOT NULL, - - `chatRoomId` varchar(400) NOT NULL, - - PRIMARY KEY (id) - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists groupuser - -( - - userEmail varchar(400) NOT NULL, - - groupId int NOT NULL - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists `tags` ( - - `projectId` varchar(100) NOT NULL, - - `tag` varchar(400) NOT NULL - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists `users` ( - - `name` varchar(100) NOT NULL, - - `password` varchar(200) NOT NULL, - - `email` varchar(255) NOT NULL, - - `token` varchar(800) NOT NULL, - - `rocketChatId` varchar(400) NOT NULL, - - `rocketChatAuthToken` varchar(800) NOT NULL, - - UNIQUE (email) - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists projectuser - -( - - projectId varchar(100) NOT NULL, - - userId varchar(100) NOT NULL - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists `annotations` ( +CREATE TABLE `annotations` ( `id` varchar(120) NOT NULL, `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `userToken` varchar(120) DEFAULT NULL, - `targetId` varchar(120) DEFAULT NULL, - `targetCategory` VARCHAR(30) NOT NULL, - `title` varchar(120) DEFAULT NULL, - `comment` varchar(400) DEFAULT NULL, + `userId` int(11) DEFAULT NULL, + `targetId` int(11) DEFAULT NULL, + `body` varchar(280) DEFAULT NULL, `startCharacter` int(11) DEFAULT NULL, - `endCharacter` int(11) DEFAULT NULL, - PRIMARY KEY (`id`) + `endCharacter` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE if not exists `fullsubmissions` ( - `id` VARCHAR(120) NOT NULL, - `timestamp` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `user` VARCHAR(120) NOT NULL, - `text` MEDIUMTEXT NOT NULL, - `projectId` VARCHAR(120) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE = InnoDB DEFAULT CHARSET=utf8; - -CREATE TABLE if not exists `submissionparts` ( - `timestamp` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `userId` VARCHAR(120) NOT NULL, - `fullSubmissionId` VARCHAR(120) NOT NULL, - `category` VARCHAR(30) NOT NULL, - PRIMARY KEY (`fullSubmissionId`, `category`) -) ENGINE = InnoDB DEFAULT CHARSET=utf8; - -CREATE TABLE if not exists `submissionpartbodyelements` ( - `fullSubmissionId` VARCHAR(120) NOT NULL, - `category` VARCHAR(30) NOT NULL, - `startCharacter` int(11) NOT NULL, - `endCharacter` int(11) NOT NULL, - PRIMARY KEY (`fullSubmissionId`, `category`, `startCharacter`, `endCharacter`) -) ENGINE = InnoDB DEFAULT CHARSET=utf8; - -alter table users - - add isStudent tinyint(1) default '1' null; - -CREATE TABLE if not exists quiz - -( - - author varchar(400) NOT NULL, - - projectId varchar(400) NOT NULL, - - question varchar(400) NOT NULL, - - mcType varchar(400) NOT NULL, - - answer varchar(400) NOT NULL, - - correct tinyint(1) NOT NULL - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; -CREATE TABLE if not exists grades - -( - - projectId varchar(400) NOT NULL, - - studentId varchar(400) NOT NULL, - - grade double NOT NULL -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists tasks +CREATE TABLE `answeredquiz` ( + `projectId` varchar(400) NOT NULL, + `studentId` varchar(400) NOT NULL, + `question` varchar(400) NOT NULL, + `correct` tinyint(4) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `contributionrating` ( + `groupId` int(11) NOT NULL, + `fromPeer` varchar(400) NOT NULL, + `dossier` int(11) NOT NULL, + `research` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `grades` ( + `projectId` varchar(400) NOT NULL, + `studentId` varchar(400) NOT NULL, + `grade` double NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `groups` ( + `id` int(11) NOT NULL, + `projectId` varchar(400) NOT NULL, + `chatRoomId` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -( +CREATE TABLE `groupuser` ( + `studentId` varchar(400) NOT NULL, + `projectId` varchar(400) NOT NULL, + `groupId` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; - userId varchar(400) NOT NULL, +CREATE TABLE `phasesselected` ( + `projectId` varchar(100) NOT NULL, + `phaseSelected` varchar(200) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `profilepicture` ( + `studentId` varchar(200) NOT NULL, + `image` longblob NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `projects` ( + `id` varchar(400) NOT NULL, + `password` varchar(400) NOT NULL, + `active` tinyint(1) NOT NULL, + `timecreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `author` varchar(400) NOT NULL, + `adminPassword` varchar(400) NOT NULL, + `token` varchar(400) NOT NULL, + `phase` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; - projectId varchar(400) NOT NULL, +CREATE TABLE `projectuser` ( + `projectId` varchar(400) NOT NULL, + `userId` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; - taskUrl varchar(400) NOT NULL -) +CREATE TABLE `quiz` ( + `author` varchar(400) NOT NULL, + `projectId` varchar(400) NOT NULL, + `question` varchar(400) NOT NULL, + `mcType` varchar(400) NOT NULL, + `answer` varchar(400) NOT NULL, + `correct` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; - ENGINE = InnoDB +CREATE TABLE `tags` ( + `projectId` varchar(400) NOT NULL, + `tag` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; - DEFAULT CHARSET = utf8; +CREATE TABLE `tasks` ( + `userId` varchar(400) NOT NULL, + `projectId` varchar(400) NOT NULL, + `taskUrl` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `users` ( + `name` varchar(400) NOT NULL, + `password` varchar(200) NOT NULL, + `email` varchar(255) NOT NULL, + `token` varchar(800) NOT NULL, + `rocketChatId` varchar(400) NOT NULL, + `rocketChatAuthToken` varchar(800) NOT NULL, + `isStudent` tinyint(1) DEFAULT '1' +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE if not exists phasesSelected ( - `projectId` varchar(100) NOT NULL, - phaseSelected varchar(200) NOT NULL -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; +CREATE TABLE `workrating` ( + `projectId` varchar(400) NOT NULL, + `studentId` varchar(400) NOT NULL, + `fromPeer` varchar(400) NOT NULL, + `responsibility` int(11) NOT NULL, + `partOfWork` int(11) NOT NULL, + `cooperation` int(11) NOT NULL, + `communication` int(11) NOT NULL, + `autonomous` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; -CREATE TABLE if not exists categoriesSelected ( - `projectId` varchar(100) NOT NULL, - categorySelected varchar(200) NOT NULL -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; -CREATE TABLE if not exists groupfindingMechanismSelected ( - `projectId` varchar(100) NOT NULL, - gfmSelected varchar(200) NOT NULL -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; +ALTER TABLE `annotations` + ADD PRIMARY KEY (`id`); -CREATE TABLE if not exists assessmentMechanismSelected ( - `projectId` varchar(100) NOT NULL, - amSelected varchar(200) NOT NULL -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; +ALTER TABLE `groups` + ADD PRIMARY KEY (`id`); ALTER TABLE `projectuser` - ADD INDEX (`projectId`, `userId`); -ALTER TABLE `projectuser` - ADD UNIQUE (`projectId`, `userId`); -ALTER TABLE `projects` - ADD UNIQUE (`id`); - -CREATE TABLE if not exists answeredquiz ( - `projectId` varchar(400) NOT NULL, - `studentId` varchar(400) NOT NULL, - `question` varchar(400) NOT NULL, - `correct` tinyint(4) NOT NULL - -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; + ADD KEY `projectId` (`projectId`(255),`userId`(255)); -CREATE TABLE if not exists workrating ( - `projectId` varchar(400) NOT NULL, - `studentId` varchar(400) NOT NULL, - `fromPeer` varchar(400) NOT NULL, - `responsibility` int(11) NOT NULL, - `partOfWork` int(11) NOT NULL, - `cooperation` int(11) NOT NULL, - `communication` int(11) NOT NULL, - `autonomous` int(11) NOT NULL +ALTER TABLE `users` + ADD UNIQUE KEY `email` (`email`); -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; -CREATE TABLE if not exists contributionrating ( - `projectId` varchar(400) NOT NULL, - `studentId` varchar(400) NOT NULL, - `fromPeer` varchar(400) NOT NULL, - `dossier` int(11) NOT NULL, - `eJournal` int(11) NOT NULL, - `research` int(11) NOT NULL -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; \ No newline at end of file +ALTER TABLE `groups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +COMMIT; \ No newline at end of file diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java index 9426d94804ed8b6f42600286e659fae1276d045a..cb7e6b830ee9af24b2b7f60c99e7a1bb45fc0cf2 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java @@ -2,13 +2,71 @@ package unipotsdam.gf.modules.assessment; import org.junit.Test; import unipotsdam.gf.interfaces.IPeerAssessment; -import unipotsdam.gf.modules.assessment.controller.model.Assessment; +import unipotsdam.gf.modules.assessment.controller.model.*; import unipotsdam.gf.modules.assessment.controller.service.FBAssessement; -import unipotsdam.gf.modules.assessment.controller.model.Performance; -import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class TestAddAssessment { + private IPeerAssessment peer = new PeerAssessment(); + private String studentId = "Kevin"; + private String projectId = "test a la test"; + private String quizId = "Whats a good Test?"; + + @Test + public void createQuiz(){ + StudentAndQuiz studentAndQuiz = new StudentAndQuiz(); + StudentIdentifier student = new StudentIdentifier(projectId, studentId); + studentAndQuiz.setStudentIdentifier(student); + Quiz quiz = new Quiz(); + ArrayList<String> correctAnswers = new ArrayList<>(); + correctAnswers.add("1"); + correctAnswers.add("2"); + correctAnswers.add("3"); + ArrayList<String> incorrectAnswers = new ArrayList<>(); + incorrectAnswers.add("4"); + incorrectAnswers.add("5"); + incorrectAnswers.add("6"); + quiz.setQuestion(quizId); + quiz.setIncorrectAnswers(incorrectAnswers); + quiz.setType("mc"); + quiz.setCorrectAnswers(correctAnswers); + studentAndQuiz.setQuiz(quiz); + peer.createQuiz(studentAndQuiz); + } + + @Test + public void getAllQuizzesInProject(){ + peer.getQuiz(projectId); + } + + @Test + public void getQuiz(){ + peer.getQuiz(projectId, quizId, studentId); + } + + @Test + public void answerQuiz(){ + Map<String, List<String>> questions = new HashMap<>(); + StudentIdentifier student = new StudentIdentifier(projectId, studentId); + List<String> answers = new ArrayList<>(); + answers.add("1"); + answers.add("2"); + answers.add("3"); + questions.put(quizId, answers); + peer.answerQuiz(questions, student); + } + + @Test + public void deleteQuiz(){ + peer.deleteQuiz(quizId); + } + @Test public void addTestAssessment() { IPeerAssessment iPeerAssessment = new FBAssessement();