diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java index 3c238f6be74199530d2e17a37d65ce7244858bab..17049249f83b82a452f31e805723a65bf11f7678 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java @@ -37,6 +37,13 @@ public interface Management { */ void create(Project project); + /** + * create a Group in the database + * + * @param group + */ + void create(Group group); + /** * Delete a Project in the database * @@ -114,8 +121,6 @@ public interface Management { */ Project getProjectById(String id); - void createGroup(Group group, String projectId); - void addGroupMember(User groupMember, int groupId); void deleteGroupMember(User groupMember, int groupId); 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..c5bcc092ed699e2ab8ca7f93fcafd946dd58fb26 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,8 +16,13 @@ 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.Collections; +import java.util.HashMap; import java.util.List; import java.util.UUID; @@ -52,7 +58,6 @@ public class ManagementImpl implements Management { // TODO implmement UserProfile @Mar } - // TODO: naming convention discussion? all is named create, but group is named createGroup @Override public void create(Project project) { UUID uuid = UUID.randomUUID(); @@ -76,6 +81,9 @@ public class ManagementImpl implements Management { connect.connect(); String mysqlRequest = "DELETE FROM projects where id = (?)"; connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId()); + + // TODO: delete all groups of project? + connect.close(); } @@ -92,8 +100,11 @@ public class ManagementImpl implements Management { public void update(User user) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?, `rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1"; + String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?," + + "`rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1"; //TODO: maybe add handling if a line is actually updated + //TODO: if user is updated, it also must update all other tables which includes some information about the user, for example project user + connect.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(), user.getToken(), user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail()); connect.close(); @@ -156,10 +167,11 @@ public class ManagementImpl implements Management { String name = vereinfachtesResultSet.getString("name"); String password = vereinfachtesResultSet.getString("password"); String email = vereinfachtesResultSet.getString("email"); + String token = vereinfachtesResultSet.getString("token"); String rocketChatId = vereinfachtesResultSet.getString("rocketChatId"); String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken"); Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent"); - return new User(name, password, email, rocketChatId, rocketChatAuthToken, isStudent); + return new User(name, password, email, token, rocketChatId, rocketChatAuthToken, isStudent); } private Project getProjectFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { @@ -171,16 +183,24 @@ 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.valueOf(phase)); + ProjectPhase projectPhase = ProjectPhase.valueOf(phase); + project.setPhase(projectPhase); + return project; } - private Group getGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { + private void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) { int id = vereinfachtesResultSet.getInt("id"); - String projectId = vereinfachtesResultSet.getString("projectId"); - String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); - // TODO: determine how to get all User - return new Group(id, new ArrayList<>(), projectId, chatRoomId); + if (existingGroups.containsKey(id)) { + existingGroups.get(id).addMember(getUserFromResultSet(vereinfachtesResultSet)); + } else { + String projectId = vereinfachtesResultSet.getString("projectId"); + User user = getUserFromResultSet(vereinfachtesResultSet); + String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); + ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user)); + Group group = new Group(userList, projectId, chatRoomId); + existingGroups.put(id, group); + } } @Override @@ -213,7 +233,7 @@ public class ManagementImpl implements Management { /** * - * @param field + * * @param value * @return */ @@ -236,6 +256,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 = ?"; @@ -252,56 +275,57 @@ public class ManagementImpl implements Management { } } - @Override - public void createGroup(Group group, String projectId) { + public void create(Group group) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - Project project = getProjectById(projectId); + String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId()); for (User groupMember : group.getMembers()) { String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)"; - connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), project.getId()); + connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId()); } connect.close(); } @Override public void addGroupMember(User groupMember, int groupId) { - + // TODO: implement } @Override public void deleteGroupMember(User groupMember, int groupId) { - + // TODO: implement } @Override public List<Group> getGroupsByProjectId(String projectId) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - // TODO: implement correct join and finish implementation String mysqlRequest = "SELECT * FROM groups g " + - "JOIN groupuser gu u ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" + + "JOIN groupuser gu ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" + "where g.projectId = ?"; VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, projectId); - ArrayList<Group> groups = new ArrayList<>(); + HashMap<Integer, Group> groupHashMap = new HashMap<>(); while (vereinfachtesResultSet.next()) { - //groups.add() + fillGroupFromResultSet(vereinfachtesResultSet, groupHashMap); } + ArrayList<Group> groups = new ArrayList<>(); + groupHashMap.forEach((key, group) -> groups.add(group)); if (groups.isEmpty()) { return null; - } else { - return groups; } + + return groups; } @Override public void create(ProjectConfiguration projectConfiguration, Project project) { ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO(); - projectConfigurationDAO.persistProjectConfiguration(projectConfiguration,project); + projectConfigurationDAO.persistProjectConfiguration(projectConfiguration, project); } @Override @@ -309,4 +333,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/ManagementImpl.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig new file mode 100644 index 0000000000000000000000000000000000000000..5f22f04d171fd5ea57e82985d5517760beb1cd48 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig @@ -0,0 +1,389 @@ +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; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.project.ProjectConfiguration; +import unipotsdam.gf.core.management.project.ProjectConfigurationDAO; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.core.management.user.UserInterests; +import unipotsdam.gf.core.management.user.UserProfile; +import unipotsdam.gf.core.states.ProjectPhase; +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.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +/** + * Created by dehne on 31.05.2018. + */ +@ManagedBean +@Resource +@Singleton +public class ManagementImpl implements Management { + @Override + public void delete(StudentIdentifier identifier) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "DELETE FROM users where email = (?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, identifier.getStudentId()); + connect.close(); + } + + @Override + public void create(User user, UserProfile profile) { + UUID uuid = UUID.randomUUID(); + String token = uuid.toString(); + + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "INSERT INTO users (`name`, `password`, `email`, `token`,`isStudent`," + + "`rocketChatId`,`rocketChatAuthToken`) values (?,?,?,?,?,?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(), + token, user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken()); + connect.close(); + + // TODO implmement UserProfile @Mar + } + + @Override + public void create(Project project) { + UUID uuid = UUID.randomUUID(); + String token = uuid.toString(); + + + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = + "INSERT INTO projects (`id`, `password`, `active`, `timecreated`, `author`, " + + "`adminPassword`, `token`, `phase`) values (?,?,?,?,?,?,?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), project.getPassword(), project.isActive(), + project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token, project.getPhase() + == null ? ProjectPhase.CourseCreation : project.getPhase()); + connect.close(); + } + + @Override + public void delete(Project project) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "DELETE FROM projects where id = (?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId()); + + // TODO: delete all groups of project? + + connect.close(); + } + + @Override + public void register(User user, Project project, UserInterests interests) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "INSERT INTO projectuser (`projectId`, `userId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), user.getId()); + connect.close(); + } + + @Override + public void update(User user) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?," + + "`rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1"; + //TODO: maybe add handling if a line is actually updated + //TODO: if user is updated, it also must update all other tables which includes some information about the user, for example project user + + connect.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(), + user.getToken(), user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail()); + connect.close(); + } + + @Override + public Boolean exists(User user) { + Boolean result; + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM users where email = ? and password = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword()); + result = vereinfachtesResultSet.next(); + connect.close(); + return result; + } + + @Override + public Boolean exists(Project project) { + Boolean result; + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM projects where id = ? and adminPassword = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, project.getId(), project.getAdminPassword()); + result = vereinfachtesResultSet.next(); + connect.close(); + return result; + } + + @Override + public List<User> getUsers(Project project) { + String query = + "SELECT * FROM users u " + + " JOIN projectuser pu ON u.email=pu.userId" + + " JOIN projects p ON pu.projectId = p.id" + + " WHERE pu.projectId = ?"; + + ArrayList<User> result = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(query, project.getId()); + while (!vereinfachtesResultSet.isLast()) { + Boolean next = vereinfachtesResultSet.next(); + if (next) { + User user = getUserFromResultSet(vereinfachtesResultSet); + String token = vereinfachtesResultSet.getString("token"); + user.setToken(token); + result.add(user); + } else { + break; + } + } + connect.close(); + return result; + } + + private User getUserFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { + String name = vereinfachtesResultSet.getString("name"); + String password = vereinfachtesResultSet.getString("password"); + String email = vereinfachtesResultSet.getString("email"); + String token = vereinfachtesResultSet.getString("token"); + String rocketChatId = vereinfachtesResultSet.getString("rocketChatId"); + String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken"); + Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent"); + return new User(name, password, email, token, rocketChatId, rocketChatAuthToken, isStudent); + } + + private Project getProjectFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { + String id = vereinfachtesResultSet.getString("id"); + String password = vereinfachtesResultSet.getString("password"); + boolean active = vereinfachtesResultSet.getBoolean("active"); + Timestamp timestamp = vereinfachtesResultSet.getTimestamp("timecreated"); + String author = vereinfachtesResultSet.getString("author"); + String adminPassword = vereinfachtesResultSet.getString("adminpassword"); + String token = vereinfachtesResultSet.getString("token"); + String phase = vereinfachtesResultSet.getString("phase"); +<<<<<<< HEAD + Project project = new Project(id, password, active, timestamp, author, adminPassword, token); + ProjectPhase projectPhase = ProjectPhase.valueOf(phase); + project.setPhase(projectPhase); + return project; +======= + + return new Project(id, password, active, timestamp, author, adminPassword, token, phase); +>>>>>>> origin/#40_dummyProjectCreation + } + + private void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) { + int id = vereinfachtesResultSet.getInt("id"); + if (existingGroups.containsKey(id)) { + existingGroups.get(id).addMember(getUserFromResultSet(vereinfachtesResultSet)); + } else { + String projectId = vereinfachtesResultSet.getString("projectId"); + User user = getUserFromResultSet(vereinfachtesResultSet); + String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); + ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user)); + Group group = new Group(userList, projectId, chatRoomId); + existingGroups.put(id, group); + } + } + + @Override + public String getUserToken(User user) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM users where email = ? and password = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword()); + boolean next = vereinfachtesResultSet.next(); + if (!next) { + connect.close(); + return null; + } + String token = vereinfachtesResultSet.getString("token"); + connect.close(); + return token; + } + + @Override + public User getUserByToken(String token) { + return getUserByField("token", token); + } + + @Override + public User getUserByEmail(String email) { + return getUserByField("email", email); + } + + + /** +<<<<<<< HEAD + * + * @param field + * @param value + * @return + */ +======= + * TODO @Axel bitte in modules/asessment verschieben + * + * @param projectId + * @param quizId + * @return + */ + public Quiz getQuizByProjectGroupId(String projectId, String quizId) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM quiz where projectId=" + projectId + " , question=" + quizId; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, ""); + boolean next = vereinfachtesResultSet.next(); + String question = ""; + ArrayList<String> correctAnswers = new ArrayList<String>(); + ArrayList<String> incorrectAnswers = new ArrayList<String>(); + String answer = ""; + Boolean correct = false; + String mcType = ""; + while (next) { + mcType = vereinfachtesResultSet.getString("mcType"); + question = vereinfachtesResultSet.getString("question"); + answer = vereinfachtesResultSet.getString("answer"); + correct = vereinfachtesResultSet.getBoolean("correct"); + if (correct) { + correctAnswers.add(answer); + } else { + incorrectAnswers.add(answer); + } + next = vereinfachtesResultSet.next(); + } + Quiz quiz = new Quiz(mcType, question, correctAnswers, incorrectAnswers); + connect.close(); + return quiz; + } + +>>>>>>> origin/#40_dummyProjectCreation + private User getUserByField(String field, String value) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM users where " + field + " = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, value); + boolean next = vereinfachtesResultSet.next(); + if (next) { + User user = getUserFromResultSet(vereinfachtesResultSet); + connect.close(); + return user; + } else { + connect.close(); + return null; + } + } + + @Override + public Project getProjectById(String id) { + if (id == null){ + return null; + } + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM projects where id = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, id); + boolean next = vereinfachtesResultSet.next(); + if (next) { + Project project = getProjectFromResultSet(vereinfachtesResultSet); + connect.close(); + return project; + } else { + connect.close(); + return null; + } + } + + @Override + public void create(Group group) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + + String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId()); + + for (User groupMember : group.getMembers()) { + String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId()); + } + connect.close(); + } + + @Override + public void addGroupMember(User groupMember, int groupId) { + // TODO: implement + } + + @Override + public void deleteGroupMember(User groupMember, int groupId) { + // TODO: implement + } + + @Override + public List<Group> getGroupsByProjectId(String projectId) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM groups g " + + "JOIN groupuser gu ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" + + "where g.projectId = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, projectId); + HashMap<Integer, Group> groupHashMap = new HashMap<>(); + while (vereinfachtesResultSet.next()) { + fillGroupFromResultSet(vereinfachtesResultSet, groupHashMap); + } + ArrayList<Group> groups = new ArrayList<>(); + groupHashMap.forEach((key, group) -> groups.add(group)); + if (groups.isEmpty()) { + return null; + } + + return groups; + } + + @Override + public void create(ProjectConfiguration projectConfiguration, Project project) { + ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO(); + projectConfigurationDAO.persistProjectConfiguration(projectConfiguration, project); + } + + @Override + public ProjectConfiguration getProjectConfiguration(Project project) { + 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/group/Group.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java index ea56b43196cd93b3c87518dfa55ab58e2840c8b9..d98a0d85649f9c2fd76ca978c592a6f03b0307ce 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java @@ -2,6 +2,7 @@ package unipotsdam.gf.core.management.group; import unipotsdam.gf.core.management.user.User; +import java.util.ArrayList; import java.util.List; public class Group { @@ -14,10 +15,12 @@ public class Group { public Group() { } + public Group(String projectId) { + this(new ArrayList<>(), projectId); + } + public Group(List<User> members, String projectId) { - this.members = members; - this.projectId = projectId; - this.chatRoomId = ""; + this(members, projectId, ""); } public Group(List<User> members, String projectId, String chatRoomId) { 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/pageAppearance/omniDependencies.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java new file mode 100644 index 0000000000000000000000000000000000000000..a3042c94ec08f3e35425638baa1980c3ff755415 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java @@ -0,0 +1,27 @@ +package unipotsdam.gf.core.management.pageAppearance; + +import javax.servlet.jsp.JspWriter; +import javax.servlet.jsp.tagext.SimpleTagSupport; +import java.io.IOException; + +public class omniDependencies extends SimpleTagSupport { + 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" + + " <title>fltrail</title>\n" + + " <link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\">\n" + + " <link rel=\"stylesheet\" href=\"../libs/css/styles.css\">\n" + + " <link rel=\"stylesheet\" href=\"../libs/css/footer.css\">\n" + + " <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\"></script>\n" + + " <script src=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js\"></script>\n" + + " <link rel=\"stylesheet\" href=\"../libs/fonts/font-awesome.min.css\">\n" + + " <link rel=\"stylesheet\" href=\"../libs/css/Sidebar-Menu-1.css\">\n" + + " <link rel=\"stylesheet\" href=\"../libs/css/Sidebar-Menu.css\">\n" + + " <script src=\"../libs/js/Sidebar-Menu.js\"></script>\n" + + " <script src=\"../libs/js/utility.js\"></script>\n" + + " <script src=\"../libs/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\">"); + } +} \ 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..6ca31795c7dd6b06f1d9a40ff1a8d9d66e2f32a9 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 @@ -18,8 +18,7 @@ public class Project { private String author; private String adminPassword; private String token; - // using enum ProjectPhase - private String phase; + private ProjectPhase phase; public Project() { } @@ -35,31 +34,9 @@ public class Project { this.setPhase(ProjectPhase.CourseCreation); } - public String getPhase() { - return phase; - } - - /** - * setting phase only with enum - * @param phase - */ - public void setPhase(ProjectPhase phase) { - this.phase = phase.name(); - } - - public Project(String id, String password, Boolean active, String author, String adminPassword, String token) { - this.id = id; - this.password = password; - this.active = active; - this.author = author; - this.adminPassword = adminPassword; - this.token = token; - - this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC"))); - } - - public Project(String id, String password, Boolean active, Timestamp timecreated, String author, - String adminPassword, String token) { + public Project(String id, String password, Boolean active, + Timestamp timecreated, String author, String adminPassword, + String token, ProjectPhase phase) { this.id = id; this.password = password; this.active = active; @@ -67,6 +44,7 @@ public class Project { this.author = author; this.adminPassword = adminPassword; this.token = token; + this.phase = phase; } public String getId() { @@ -117,11 +95,23 @@ public class Project { this.token = token; } - public Timestamp getTimecreated() { return timecreated; } + public ProjectPhase getPhase() { + return phase; + } + + /** + * setting phase only with enum + * + * @param phase + */ + public void setPhase(ProjectPhase phase) { + this.phase = phase; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("Project{"); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java.orig new file mode 100644 index 0000000000000000000000000000000000000000..f64942fbc64dbe3ae6bc6b04b0d2bb291f713961 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java.orig @@ -0,0 +1,165 @@ +package unipotsdam.gf.core.management.project; + +import unipotsdam.gf.core.states.ProjectPhase; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.time.ZoneId; + +/** + * Created by dehne on 31.05.2018. + */ +public class Project { + + private String id; + private String password; + private Boolean active; + private Timestamp timecreated; + private String author; + private String adminPassword; + private String token; +<<<<<<< HEAD + // using enum ProjectPhase + private ProjectPhase phase; +======= + // TODO: using enum ProjectPhase + private String phase; +>>>>>>> origin/#40_dummyProjectCreation + + public Project() { + } + + public Project(String id, String password, Boolean active, String author, String adminPassword) { + this.id = id; + this.password = password; + this.active = active; + this.author = author; + this.adminPassword = adminPassword; + this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC"))); + // default starting at course creation if new + this.setPhase(ProjectPhase.CourseCreation); + } + +<<<<<<< HEAD + public ProjectPhase getPhase() { + return phase; + } + + /** + * setting phase only with enum + * @param phase + */ + public void setPhase(ProjectPhase phase) { + this.phase = phase; + } + + public Project(String id, String password, Boolean active, String author, String adminPassword, String token) { +======= + public Project(String id, String password, Boolean active, String author, String adminPassword, String token, ProjectPhase projectPhase) { +>>>>>>> origin/#40_dummyProjectCreation + this.id = id; + this.password = password; + this.active = active; + this.author = author; + this.adminPassword = adminPassword; + this.token = token; + this.phase = projectPhase.name(); + + this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC"))); + } + + public Project(String id, String password, Boolean active, Timestamp timecreated, String author, String adminPassword, String token, String phase) { + this.id = id; + this.password = password; + this.active = active; + this.timecreated = timecreated; + this.author = author; + this.adminPassword = adminPassword; + this.token = token; + this.phase = phase; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Boolean isActive() { + return active; + } + + public void setActive(Boolean active) { + this.active = active; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getAdminPassword() { + return adminPassword; + } + + public void setAdminPassword(String adminPassword) { + this.adminPassword = adminPassword; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public Timestamp getTimecreated() { + return timecreated; + } + +<<<<<<< HEAD + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("Project{"); + sb.append("id='").append(id).append('\''); + sb.append(", password='").append(password).append('\''); + sb.append(", active=").append(active); + sb.append(", timecreated=").append(timecreated); + sb.append(", author='").append(author).append('\''); + sb.append(", adminPassword='").append(adminPassword).append('\''); + sb.append(", token='").append(token).append('\''); + sb.append(", phase='").append(phase).append('\''); + sb.append('}'); + return sb.toString(); + } +======= + public String getPhase() { + return phase; + } + + /** + * setting phase only with enum + * + * @param phase + */ + public void setPhase(ProjectPhase phase) { + this.phase = phase.name(); + } + + +>>>>>>> origin/#40_dummyProjectCreation +} \ No newline at end of file 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 index d08c07de61e40d362e06bfa2ca3fa2f66b0e73c7..2c8ef86655468bdb480a69bdf52f9c8c8d24324c 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java @@ -29,7 +29,7 @@ public class Menu extends SimpleTagSupport { " <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=\"researchReportOverview.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" + diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java index ef9531d231c70944f627ee6afbaeb26ee1eb5ac5..812cbe6c04522a18b5f469bbbf7fe1cc14e1a90f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java @@ -20,20 +20,20 @@ public class User { } public User(String name, String password, String email, Boolean isStudent) { - this.name = name; - this.password = password; - this.email = email; - this.isStudent = isStudent; - this.rocketChatAuthToken = ""; - this.rocketChatId = ""; + this(name, password, email, "", "", isStudent); } public User(String name, String password, String email, String rocketChatId, String rocketChatAuthToken, Boolean isStudent) { + this(name, password, email, "", rocketChatAuthToken, rocketChatId, isStudent); + } + + public User(String name, String password, String email, String token, String rocketChatAuthToken, String rocketChatId, Boolean isStudent) { this.name = name; this.password = password; this.email = email; - this.rocketChatId = rocketChatId; + this.token = token; this.rocketChatAuthToken = rocketChatAuthToken; + this.rocketChatId = rocketChatId; this.isStudent = isStudent; } 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/management/user/omniDependencies.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java deleted file mode 100644 index e4b3272b2dac3479a79f5271598981a0e04db3d6..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java +++ /dev/null @@ -1,35 +0,0 @@ -package unipotsdam.gf.core.management.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 omniDependencies extends SimpleTagSupport { - public void doTag() throws JspException, IOException { - PageContext pageContext = (PageContext) getJspContext(); - HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); - String projectId = request.getParameter("projectId"); - JspWriter out = getJspContext().getOut(); - out.println("<meta charset=\"utf-8\">\n" + - " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" + - " <title>fltrail</title>\n" + - " <link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\">\n" + - " <link rel=\"stylesheet\" href=\"../assets/css/styles.css\">\n" + - " <link rel=\"stylesheet\" href=\"../assets/css/footer.css\">\n" + - " <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\"></script>\n" + - " <script src=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js\"></script>\n" + - " <link rel=\"stylesheet\" href=\"../assets/fonts/font-awesome.min.css\">\n" + - " <link rel=\"stylesheet\" href=\"../assets/css/Sidebar-Menu-1.css\">\n" + - " <link rel=\"stylesheet\" href=\"../assets/css/Sidebar-Menu.css\">\n" + - " <script src=\"../assets/js/Sidebar-Menu.js\"></script>\n" + - " <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\">"); - } - - -}; \ No newline at end of file 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/Feedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java index 5f70b51d18b5b423a9e419294622668040fcee19..773103d2bff7c333fe4ece1983d8e21f420c4341 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/Feedback.java @@ -1,7 +1,7 @@ package unipotsdam.gf.interfaces; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; -import unipotsdam.gf.modules.peer2peerfeedback.Peer2PeerFeedback; +import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback; import unipotsdam.gf.modules.researchreport.ResearchReport; import java.io.File; @@ -17,12 +17,20 @@ public interface Feedback { /** * create Peer2PeerFeedback Object * - * @param feedbackuser: The student who is creating the feedback - * @param selectedstudent: The student who receive the feedback - * @param document: The selected document to give feedback about + * @param feedback: * @return Returns the Peer2PeerFeedback Object */ + Peer2PeerFeedback createPeer2PeerFeedback (Peer2PeerFeedback feedback); + //(String id, String reciever, String sender, String text, Category category, String filename); + + /** + * create Peer2PeerFeedback Object + * + * @param feedbackuser: + * @param selectedstudent: + * @param document: + * **/ Peer2PeerFeedback createPeer2PeerFeedbackmask(User feedbackuser, User selectedstudent, File document); /** diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java index 1750b873a33a184cee3e9a1b911ab48ea53c4762..6d28297f6abd51384a1cd68eeea02043e83948e4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java @@ -3,29 +3,21 @@ package unipotsdam.gf.interfaces; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; -import unipotsdam.gf.assignments.NotImplementedLogger; -import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; -import unipotsdam.gf.modules.journal.model.EPorfolio; +import unipotsdam.gf.modules.journal.model.EPortfolio; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.researchreport.ResearchReport; -import javax.swing.text.html.HTML; import java.io.File; import java.util.List; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; + /** * Interface for learning journal */ public interface IJournal { - /** - * Exports the learning journal - * @param student StudentIdentifier - * @return the journal as String (may change) - */ - String exportJournal (StudentIdentifier student) ; - /** * check if all students have prepared their portfolios to be evaluated * @return @@ -64,5 +56,5 @@ public interface IJournal { * @return EPortfolio (containing Report, ProjectDescription and Journal) */ - EPorfolio getFinalPortfolioForAssessment(Project project, User user) ; + EPortfolio getFinalPortfolioForAssessment(Project project, User user) ; } 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/Assessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Assessment.java index 7b269aa7f1059c0446d314714ffb38761f1d8e94..be42f1baa23fbece4fa842645201448c3fe0b6a9 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Assessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Assessment.java @@ -1,35 +1,78 @@ package unipotsdam.gf.modules.assessment.controller.model; +import com.fasterxml.jackson.annotation.JsonIgnore; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.modules.assessment.controller.model.Performance; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; + import javax.xml.bind.annotation.XmlRootElement; +import java.security.acl.Group; import java.util.ArrayList; + + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.ArrayList; +import java.util.Date; + @XmlRootElement public class Assessment { - private StudentIdentifier student; + private StudentIdentifier student;// gemeint als Ziel der Bewertung, kann auch gruppe sein + @JsonIgnore private Performance performance; + private StudentIdentifier bewertender; + private String projektId; + private int bewertung; + private boolean adressat; + private Date deadline; + public Assessment(StudentIdentifier student, Performance performance) { this.student = student; this.performance = performance; } - public Assessment(){} + public Assessment(boolean adressat,StudentIdentifier student, Date deadline, StudentIdentifier bewertender, String projektId, int bewertung) { + this.student = student; + this.deadline = deadline; + this.bewertender = bewertender; + this.projektId = projektId; + this.bewertung = bewertung; + this.adressat=adressat; + } + + public Assessment() { + } - public ArrayList<Performance> getTotalAssessment() { return null; } + public ArrayList<Performance> getTotalAssessment() { + return null; + } public StudentIdentifier getStudent() { return student; } + public StudentIdentifier getBewertender() { + return bewertender; + } + + public void setBewertender(StudentIdentifier bewertender) { + this.bewertender = bewertender; + } + public void setStudent(StudentIdentifier student) { this.student = student; } + @JsonIgnore public Performance getPerformance() { return performance; } - + @JsonIgnore public void setPerformance(Performance performance) { this.performance = performance; } @@ -41,4 +84,52 @@ public class Assessment { ", performance=" + performance + '}'; } -} + + public int getBewertung() { + return bewertung; + } + + public void setBewertung(int bewertung) { + this.bewertung = bewertung; + } + + public String getProjektId() { + return projektId; + } + + public void setProjektId(String projektId) { + this.projektId = projektId; + } + + + public void setAssessment(Assessment assessment) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "INSERT INTO assessments ( `adressat`, `deadline`, `erstellerId`,`empfaengerId`, `projektId`, `bewertung`) values (?,?,?,?,?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, + assessment.isAdressat(), + assessment.getDeadline(), + assessment.getBewertender().getStudentId(), + assessment.getStudent().getStudentId(), + assessment.getProjektId(), + assessment.getBewertung() + ); + connect.close(); + } + + public boolean isAdressat() { + return adressat; + } + + public void setAdressat(boolean adressat) { + this.adressat = adressat; + } + + public Date getDeadline() { + return deadline; + } + + public void setDeadline(Date deadline) { + this.deadline = deadline; + } +} \ No newline at end of file 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/GroupEvalDataDatasets.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataDatasets.java new file mode 100644 index 0000000000000000000000000000000000000000..17beba2eed381316a22488217073ebe04af84c4e --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataDatasets.java @@ -0,0 +1,73 @@ +package unipotsdam.gf.modules.assessment.controller.model; + + + +public class GroupEvalDataDatasets { + private String label; + private int[] data= new int[50]; + + private String borderColor= "rgba(0,255,0,0.2)"; + private String backgroundColor= "rgba(0,255,0,0.2)"; + private boolean fill=false; + + public GroupEvalDataDatasets(){} + + public GroupEvalDataDatasets(String label,int[] data, String backgroundColor, String borderColor, boolean fill){ + this.backgroundColor=backgroundColor; + this.borderColor=borderColor; + this.data=data; + this.fill=fill; + this.label=label; + } + public GroupEvalDataDatasets(String label, int[] data){ + + this.data=data; + this.label=label; + } + + public int[] getData() { + return data; + } + + public void setData(int[] data) { + this.data = data; + } +/* + public void appendData(int data) { + this.data.add(data); + } +*/ + public String getBorderColor() { + return borderColor; + } + + public void setBorderColor(String borderColor) { + this.borderColor = borderColor; + } + + public String getBackgroundColor() { + return backgroundColor; + } + + public void setBackgroundColor(String backgroundColor) { + this.backgroundColor = backgroundColor; + } + + public boolean isFill() { + return fill; + } + + public void setFill(boolean fill) { + this.fill = fill; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } +} + + diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataList.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataList.java new file mode 100644 index 0000000000000000000000000000000000000000..05f44bce99da488ba3a1f29a3cb441031e88db20 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataList.java @@ -0,0 +1,41 @@ +package unipotsdam.gf.modules.assessment.controller.model; +import java.util.*; + +public class GroupEvalDataList { + private String[] labels ; + + private List<GroupEvalDataDatasets> datasets = new ArrayList<>(); + + public GroupEvalDataList(){} + public GroupEvalDataList(String[] labels, List<GroupEvalDataDatasets> datasets){ + this.datasets=datasets; + this.labels=labels; + } + + public GroupEvalDataList(List<GroupEvalDataDatasets> datasets,String[] labels){ + this.labels=labels; + this.datasets=datasets; + } + + + public List<GroupEvalDataDatasets> getDatasets() { + return datasets; + } + + public void setDatasets(List<GroupEvalDataDatasets> dataset) { + this.datasets = dataset; + } + + public String[] getLabels() { + return labels; + } + + public void setLabels(String[] labels) { + this.labels = labels; + } + + public void appendDataSet(GroupEvalDataDatasets data) { + this.datasets.add(data); + + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammData.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammData.java new file mode 100644 index 0000000000000000000000000000000000000000..67b8a15d28780375b88fa6e076b0c8c4814645c4 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammData.java @@ -0,0 +1,123 @@ +package unipotsdam.gf.modules.assessment.controller.model; + +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Path("/assessments4") + +public class GroupEvalDiagrammData { + private String type; + private GroupEvalDataList data; + private GroupEvalOption option; + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public GroupEvalDataList getData() { + return data; + } + + public void setData(GroupEvalDataList data) { + this.data = data; + } + public GroupEvalDiagrammData(){} + + public GroupEvalDiagrammData(String type, GroupEvalDataList data){ + this.type=type; + this.data=data; + } + + public GroupEvalOption getOption() { + return option; + } + + public void setOption(GroupEvalOption option) { + this.option = option; + } + + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/diagramm1/{projectId}") + public GroupEvalDiagrammData getValuesFromDBByProjectID(@PathParam("projectId") String projectId) + { + + //GruppenID muss noch irgendwie aus der Seite ausgelesen werden, wenn die dann mal dynamisch gefüllt wurde + GroupEvalDiagrammData diagramm= new GroupEvalDiagrammData(); + GroupEvalOption option=new GroupEvalOption(); + GroupEvalDiagrammLegende legende =new GroupEvalDiagrammLegende(); + + diagramm.setType("line"); + diagramm.setOption(option); + legende.setDisplay(false); + option.setLegende(legende); + + + MysqlConnect connect = new MysqlConnect(); + List<String> userNamen=new ArrayList<>(); + + GroupEvalDataDatasets datenSaetze = new GroupEvalDataDatasets(); + GroupEvalDataList datenDia = new GroupEvalDataList(); + + diagramm.setData(datenDia); + + + connect.connect(); + + String mysqlRequestGroupuser = "SELECT * FROM `groupuser` WHERE `groupId`=? "; + VereinfachtesResultSet namenDerUser = connect.issueSelectStatement(mysqlRequestGroupuser,3); + List<Integer> bewertungenZwischen = new ArrayList<Integer>(); + List<String> labelZwischen = new ArrayList<String>(); + + List<GroupEvalDataDatasets> hilfeBittefunktionierEndlich=new ArrayList<>(); + + while (namenDerUser.next()){ + userNamen.add(namenDerUser.getString("userEmail")); + } + for (String anUserNamen : userNamen) { + String mysqlRequestAssessment = "SELECT * FROM `assessments` WHERE `empfaengerId`=?"; + VereinfachtesResultSet bewertungDerUser = connect.issueSelectStatement(mysqlRequestAssessment, anUserNamen); + + while (bewertungDerUser.next()) { + bewertungenZwischen.add(bewertungDerUser.getInt("bewertung")); + labelZwischen.add(String.valueOf(bewertungDerUser.getTimestamp("deadline")).substring(0,10)); + } + int[] hilfeDaten = new int[bewertungenZwischen.size()]; + for (int z = 0; z < labelZwischen.size(); z++) { + hilfeDaten[z] = bewertungenZwischen.get(z); + } + + + + String[] hilfeLabel = new String[labelZwischen.size()]; + for (int z = 0; z < labelZwischen.size(); z++) { + hilfeLabel[z] = labelZwischen.get(z); + } + hilfeBittefunktionierEndlich.add(new GroupEvalDataDatasets(anUserNamen,hilfeDaten)); + datenSaetze.setData(hilfeDaten); + datenSaetze.setLabel(anUserNamen); + System.out.println(anUserNamen); + + bewertungenZwischen.clear(); + labelZwischen.clear(); + diagramm.setData(new GroupEvalDataList(hilfeLabel,hilfeBittefunktionierEndlich)); + } + + connect.close(); + + + + return diagramm; + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammLegende.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammLegende.java new file mode 100644 index 0000000000000000000000000000000000000000..3f33ecd5869920e59e002233711e3ef6bab2dea9 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammLegende.java @@ -0,0 +1,14 @@ +package unipotsdam.gf.modules.assessment.controller.model; + +public class GroupEvalDiagrammLegende { + private boolean display; + + + public boolean isDisplay() { + return display; + } + + public void setDisplay(boolean display) { + this.display = display; + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalOption.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalOption.java new file mode 100644 index 0000000000000000000000000000000000000000..95d0d15834c58758cbad722e801349f5e5a3bd53 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalOption.java @@ -0,0 +1,16 @@ +package unipotsdam.gf.modules.assessment.controller.model; + + + +public class GroupEvalOption { + private GroupEvalDiagrammLegende legende; + + public GroupEvalDiagrammLegende getLegende() { + return legende; + } + + public void setLegende(GroupEvalDiagrammLegende legende) { + this.legende = legende; + } + +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PACalculate.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PACalculate.java new file mode 100644 index 0000000000000000000000000000000000000000..fa81556965e51fa31c6112337ca8d9a111b38cf0 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PACalculate.java @@ -0,0 +1,40 @@ +package unipotsdam.gf.modules.assessment.controller.model; +import com.mysql.jdbc.Statement; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; + +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class PACalculate { + +public List<Double> meanOfAssessments(String name, String projekt){ + /* + Berechnet aus Namen und ProjektId das arithmetische Mittel der Bewertungen und gibt + eine Liste mit allen EInzelnoten und dem Mittel als letztem Eintrag zurück + */ + + double zwischenErgebnis=0.0; + double counter=0.0; + List<Double> results = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + + connect.connect(); + String mysqlRequest = "SELECT * FROM `assessments` WHERE `empfaengerId`=? AND `projektId`=?"; + + String nameDesKandidaten = name; + String projektDesKandidaten = projekt; + VereinfachtesResultSet ausgabe = connect.issueSelectStatement(mysqlRequest,nameDesKandidaten, projektDesKandidaten); + + while (ausgabe.next()){ + counter++; + zwischenErgebnis=zwischenErgebnis+ausgabe.getInt("bewertung"); + results.add((double) ausgabe.getInt("bewertung")); + } + results.add(zwischenErgebnis/counter); + connect.close(); + return results; + +} +} 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..c00f67d163ef745d9f5e4b1ffcd8debb86ecf376 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,12 +3,12 @@ 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.*; public class PeerAssessmentDummy implements IPeerAssessment { + @Override public void addAssessmentDataToDB(Assessment assessment) { } @@ -34,10 +34,8 @@ public class PeerAssessmentDummy implements IPeerAssessment { incorrectAnswers.add("alle beide"); sampleQuiz = new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, incorrectAnswers); } - return sampleQuiz; } - public ArrayList<Quiz> getQuiz(String projectId) { ArrayList<String> correctAnswers = new ArrayList<>(); ArrayList<String> incorrectAnswers = new ArrayList<>(); @@ -66,7 +64,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 +83,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/AssessmentView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/AssessmentView.java new file mode 100644 index 0000000000000000000000000000000000000000..2a603937709464ce3e5d823c67d8628827c1bf59 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/AssessmentView.java @@ -0,0 +1,57 @@ +package unipotsdam.gf.modules.assessment.controller.view; + +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.PeerAssessmentDummy; + + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Path("/assessments2") +public class AssessmentView{ + private static IPeerAssessment peer = new PeerAssessmentDummy(); + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + @Path("/calculate3") + public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) { + return peer.calculateAssessment(totalPerformance); + } + + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.TEXT_PLAIN) + @Path("/calculate2") + public String testDesReturn(Assessment assessment){ + Assessment shuttle = new Assessment(); //neues Objekt, dass dann bearbeitet werden kann + //System.out.println(assessment.getBewertung()); + shuttle.setAssessment(assessment); //inhalte werden in die DB geschrieben und es wird erfolg zurückgemeldet + return "1"; + } + + + + + + /*} + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Path("dummy/calculate2") + public Assessment dummyAssessment(){ + StudentIdentifier student = new StudentIdentifier("projectID", "StudentId"); + Performance performance; + StudentIdentifier bewertender; + String projektId; + int bewertung; + boolean adressat; + Date deadline; + Assessment shuttle = new Assessment(student, ) + + 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..f897c2561574cf9d896ce445d6879d8bc74443f4 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,15 @@ 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.Assessment; 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 +44,7 @@ public class QuizView { } //////////////////////////////////////////funktioniert/////////////////////////////////////// + @POST @Consumes(MediaType.APPLICATION_JSON) @Path("/peerRating/project/{projectId}") @@ -46,15 +52,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 +90,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 +162,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 +215,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/GroupCreationService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupCreationService.java index 5238e9530cee936020be2d577c172fffaba79e7c..09fba126c48b52b04893ac4d08a4f207ffe478a5 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupCreationService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupCreationService.java @@ -38,10 +38,8 @@ public class GroupCreationService { management.create(project); } - groups.forEach(group -> management.createGroup(group, project.getId())); - + groups.forEach(group -> management.create(group)); // TODO: read List<Group> of database to get Id for chatRoomName (Should be ProjectName - GroupId) - // TODO: add projectName as DatabaseEntry // TODO: implement sql service injection for, so connection is only done once in app 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/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java deleted file mode 100644 index 50da0c81b96dd2a5501eab940ce84682ac2d72c8..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java +++ /dev/null @@ -1,59 +0,0 @@ -package unipotsdam.gf.modules.journal; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import unipotsdam.gf.core.management.project.Project; -import unipotsdam.gf.core.management.user.User; -import unipotsdam.gf.assignments.Assignee; -import unipotsdam.gf.assignments.NotImplementedLogger; -import unipotsdam.gf.interfaces.IJournal; -import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; -import unipotsdam.gf.modules.journal.model.EPorfolio; -import unipotsdam.gf.modules.journal.model.Journal; -import unipotsdam.gf.modules.researchreport.ResearchReport; - -import javax.swing.text.html.HTML; -import java.io.File; -import java.util.List; - -public class DummyJournalImpl implements IJournal { - - - private Logger log = LoggerFactory.getLogger(DummyJournalImpl.class); - - @Override - public String exportJournal(StudentIdentifier student) { - NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); - return null; - } - - @Override - public Boolean getPortfoliosForEvaluationPrepared(Project project) { - NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); - return false; - } - - @Override - public void assignMissingPortfolioTasks(Project project) { - NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); - } - - @Override - public void uploadJournalEntry(Journal journalEntry, User student) { - NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); - } - - @Override - public void uploadFinalPortfolio( - Project project, List<Journal> journalEntries, ResearchReport finalResearchReport, File presentation, - User user) { - NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); - } - - @Override - public EPorfolio getFinalPortfolioForAssessment( - Project project, User user) { - NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); - return null; - } -} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPorfolio.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPortfolio.java similarity index 61% rename from gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPorfolio.java rename to gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPortfolio.java index 1377afb417a9b58a14ef68d4c0524daf2aa63f9a..be23df134dd8e3f8f8c56d6c04f5e118fba3bf01 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPorfolio.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/EPortfolio.java @@ -9,21 +9,21 @@ import java.util.ArrayList; * Class for passing e-portfolio to assessment */ -public class EPorfolio { +public class EPortfolio { - StudentIdentifier student; - ProjectDescription descrition; - ArrayList<Journal> journals; - ResearchReport report; - //TODO mehr? + private StudentIdentifier student; + private ProjectDescription description; + private ArrayList<Journal> journals; + private ResearchReport report; - public EPorfolio() { + + public EPortfolio() { } - public EPorfolio(StudentIdentifier student, ProjectDescription descrition, ArrayList<Journal> journals, ResearchReport report) { + public EPortfolio(StudentIdentifier student, ProjectDescription description, ArrayList<Journal> journals, ResearchReport report) { this.student = student; - this.descrition = descrition; + this.description = description; this.journals = journals; this.report = report; } @@ -36,12 +36,12 @@ public class EPorfolio { this.student = student; } - public ProjectDescription getDescrition() { - return descrition; + public ProjectDescription getDescription() { + return description; } - public void setDescrition(ProjectDescription descrition) { - this.descrition = descrition; + public void setDescription(ProjectDescription description) { + this.description = description; } public ArrayList<Journal> getJournals() { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java index 499c53d55036a3618d391d74052d0524c1d3be19..7c098dbb1aac9b0aa9f9a7aca2db9b54ab889d28 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java @@ -9,7 +9,7 @@ import java.util.Date; import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml; /** - * Model Class for the learnig journal of the e-portfolio + * Model Class for the learning journal of the e-portfolio */ public class Journal { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java index 2a4b7e63cb02c70f5f58bfe78f519e5d4b2298da..1d7d8006da568b5e497305f3b19f48328e308715 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Link.java @@ -2,10 +2,10 @@ package unipotsdam.gf.modules.journal.model; public class Link { - String id; - String projectDescription; - String name; - String link; + private String id; + private String projectDescription; + private String name; + private String link; public Link() { } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java index d1e0558be5e4e8fe473137a497be85416c13c8a9..aad24cdcafd882b5dc7288323e7a7358c8400535 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java @@ -1,10 +1,9 @@ package unipotsdam.gf.modules.journal.model; -import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import java.util.ArrayList; -import java.util.Map; +import java.util.Date; import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml; @@ -20,34 +19,32 @@ public class ProjectDescription { private String descriptionMD; private boolean open; private ArrayList<Link> links; - private ArrayList<String> group; private long timestamp; public ProjectDescription() { } - public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links, ArrayList<String> group, long timestamp) { + public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links) { this.id = id; - this.student = new StudentIdentifier(project,name); + this.student = new StudentIdentifier(project, name); this.descriptionHTML = convertMarkdownToHtml(description); - this.descriptionMD =description; + this.descriptionMD = description; this.links = links; - this.group = group; - this.timestamp = timestamp; - this.open =true; + this.timestamp = new Date().getTime(); + this.open = true; } - public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links, ArrayList<String> group, long timestamp, boolean open) { + + public ProjectDescription(String id, String name, String description, String project, ArrayList<Link> links, long timestamp, boolean open) { this.id = id; - this.student = new StudentIdentifier(project,name); + this.student = new StudentIdentifier(project, name); this.descriptionHTML = convertMarkdownToHtml(description); - this.descriptionMD =description; + this.descriptionMD = description; this.links = links; - this.group = group; this.timestamp = timestamp; this.open = open; } - public void setDescription (String description){ + public void setDescription(String description) { this.descriptionMD = description; this.descriptionHTML = convertMarkdownToHtml(description); } @@ -100,14 +97,6 @@ public class ProjectDescription { this.links = links; } - public ArrayList<String> getGroup() { - return group; - } - - public void setGroup(ArrayList<String> group) { - this.group = group; - } - public long getTimestamp() { return timestamp; } @@ -125,7 +114,6 @@ public class ProjectDescription { ", descriptionMD='" + descriptionMD + '\'' + ", open=" + open + ", links=" + links + - ", group=" + group + ", timestamp=" + timestamp + '}'; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java index f9ff960168c8515ae8c188aa2e3d87bb85d74be6..56a0943a832f092b74676dc6a5133f573404df7b 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAO.java @@ -1,5 +1,6 @@ package unipotsdam.gf.modules.journal.model.dao; +import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.journal.model.JournalFilter; @@ -16,10 +17,11 @@ public interface JournalDAO { Journal getJournal(String id); - ArrayList<Journal> getAllByProject(String project); + ArrayList<Journal> getAllByProject(String project, String student); ArrayList<Journal> getAllByProjectAndFilter(String project, String student, JournalFilter filter); void closeJournal(String id); + ArrayList<String> getOpenJournals(Project project); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java index 1c5ce831a639be436e37f2cbc7dce58bd1eebc34..0ea368909eb9cdb4679bf36b77d51ea11dc490e6 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImpl.java @@ -2,6 +2,7 @@ package unipotsdam.gf.modules.journal.model.dao; import unipotsdam.gf.core.database.mysql.MysqlConnect; import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.journal.model.JournalFilter; @@ -95,7 +96,7 @@ public class JournalDAOImpl implements JournalDAO { } @Override - public ArrayList<Journal> getAllByProject(String project) { + public ArrayList<Journal> getAllByProject(String project, String student) { ArrayList<Journal> journals = new ArrayList<>(); @@ -104,8 +105,8 @@ public class JournalDAOImpl implements JournalDAO { connection.connect(); // build and execute request - String request = "SELECT * FROM journals WHERE project= ?;"; - VereinfachtesResultSet rs = connection.issueSelectStatement(request, project); + String request = "SELECT * FROM journals WHERE project= ? AND (author = ? OR visibility = \"ALL\" or visibility = \"GROUP\");"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, project, student); while (rs.next()) { journals.add(getJournalFromResultSet(rs)); @@ -144,7 +145,7 @@ public class JournalDAOImpl implements JournalDAO { @Override public ArrayList<Journal> getAllByProjectAndFilter(String project, String student, JournalFilter filter) { if (filter == JournalFilter.ALL) { - return getAllByProject(project); + return getAllByProject(project, student); } else { return getAllByStudent(student); } @@ -165,6 +166,29 @@ public class JournalDAOImpl implements JournalDAO { connection.close(); } + @Override + public ArrayList<String> getOpenJournals(Project project) { + ArrayList<String> userIds = new ArrayList<>(); + + // establish connection + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + // build and execute request + String request = "SELECT * FROM journals WHERE project = ? AND open = ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, project.getId(), true); + + while (rs.next()) { + userIds.add(getJournalFromResultSet(rs).getStudentIdentifier().getStudentId()); + } + + // close connection + connection.close(); + + return userIds; + + } + /** * extracts a journal from VereinfachtesResultSet * diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java index f78a69f71a2db188392b540104f1c1e430785d13..3b7ff8613a52c7c616b82cc91be9ba514dba42e5 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java @@ -36,7 +36,7 @@ public class LinkDAOImpl implements LinkDAO{ MysqlConnect connection = new MysqlConnect(); connection.connect(); - // build and execute requestxam + // build and execute request stream String request = "DELETE FROM links WHERE id = ?;"; connection.issueInsertOrDeleteStatement(request, linkId); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java index 3137a9fe0be906f35f38e23115190f14b3a0576a..0ebb749d4cf824e02a95646123595c3b2b0fc1b0 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAO.java @@ -1,8 +1,11 @@ package unipotsdam.gf.modules.journal.model.dao; +import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.ProjectDescription; +import java.util.ArrayList; + public interface ProjectDescriptionDAO { void createDescription(ProjectDescription projectDescription); @@ -12,4 +15,6 @@ public interface ProjectDescriptionDAO { ProjectDescription getDescription(String id); void deleteDescription(StudentIdentifier projectDescription); void closeDescription(String projectDescriptionId); + + ArrayList<String> getOpenDescriptions(Project project); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java index ec76a9622ddbc43270f0ffefc0016aed8265bd9b..c0b07344e684abc9a2912d02f8be0b2486e12d06 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionDAOImpl.java @@ -4,6 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import unipotsdam.gf.core.database.mysql.MysqlConnect; import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.ProjectDescription; import unipotsdam.gf.modules.journal.util.JournalUtils; @@ -13,8 +14,6 @@ import java.util.UUID; public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO { - private final Logger log = LoggerFactory.getLogger(ProjectDescriptionDAOImpl.class); - @Override public void createDescription(ProjectDescription projectDescription) { @@ -114,7 +113,7 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO { connection.connect(); // build and execute request - String request = "DELETE FROM projectdescription WHERE WHERE author = ? AND project = ?;"; + String request = "DELETE FROM projectdescription WHERE author = ? AND project = ?;"; connection.issueInsertOrDeleteStatement(request, studentIdentifier.getStudentId(),studentIdentifier.getProjectId()); // close connection @@ -137,6 +136,28 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO { connection.close(); } + @Override + public ArrayList<String> getOpenDescriptions(Project project) { + ArrayList<String> userIds = new ArrayList<>(); + + // establish connection + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + // build and execute request + String request = "SELECT * FROM projectdescription WHERE project = ? AND open = ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, project.getId(), true); + + while (rs.next()) { + userIds.add(getDescriptionFromResultSet(rs).getStudent().getStudentId()); + } + + // close connection + connection.close(); + + return userIds; + } + private ProjectDescription getDescriptionFromResultSet(VereinfachtesResultSet rs) { String id = rs.getString("id"); long timestamp = rs.getTimestamp(2).getTime(); @@ -145,7 +166,7 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO { String text = rs.getString("text"); boolean open = rs.getBoolean("open"); - return new ProjectDescription(id,author,text,project,new ArrayList<>(),new ArrayList<>(),timestamp, open); + return new ProjectDescription(id,author,text,project,new ArrayList<>(), timestamp, open); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java index 15ca144ac8807f6b12522242395d571b0118e99e..d4e9d8a8e99438365fa13c1b2ddad1c30c3d7957 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/IJournalImpl.java @@ -1,69 +1,79 @@ package unipotsdam.gf.modules.journal.service; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.interfaces.IJournal; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; -import unipotsdam.gf.modules.journal.model.EPorfolio; +import unipotsdam.gf.modules.journal.model.EPortfolio; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.researchreport.ResearchReport; -import javax.swing.text.html.HTML; import java.io.File; import java.util.ArrayList; import java.util.List; public class IJournalImpl implements IJournal { - JournalService journalService = new JournalServiceImpl(); - ProjectDescriptionService descriptionService = new ProjectDescriptionImpl(); + private final Logger log = LoggerFactory.getLogger(IJournalImpl.class); + + private final JournalService journalService = new JournalServiceImpl(); + private final ProjectDescriptionService descriptionService = new ProjectDescriptionImpl(); + @Override - public String exportJournal(StudentIdentifier student) { - return null; + public Boolean getPortfoliosForEvaluationPrepared(Project project) { + return descriptionService.checkIfAllDescriptionsClosed(project) && journalService.checkIfAllJournalClosed(project); } + @Override - public Boolean getPortfoliosForEvaluationPrepared(Project project) { - //Teilnehmer suchen + public void assignMissingPortfolioTasks(Project project) { - //Hat jeder Teilnehmer ein geschlossenenes Portfolio + ArrayList<User> descUser = descriptionService.getOpenUserByProject(project); - //Hat jeder die nötigen Journal + for(User user : descUser){ - return null; - } + log.debug("Send close description message to user {}", user.getId()); + //TODO send message when implemented - @Override - public void assignMissingPortfolioTasks(Project project) { - //Teilnehmer suchen + } + + ArrayList<User> journalUser = journalService.getOpenUserByProject(project); + + for(User user : journalUser){ + + log.debug("Send close journal message to user {}", user.getId()); + //TODO send message when implemented - //Hat jeder Teilnehmer ein geschlossenenes Portfolio + } - //Hat jeder die nötigen Journal } @Override public void uploadJournalEntry(Journal journalEntry, User student) { - + //TODO } @Override public void uploadFinalPortfolio(Project project, List<Journal> journalEntries, ResearchReport finalResearchReport, File presentation, User user) { - + //TODO } @Override - public EPorfolio getFinalPortfolioForAssessment(Project project, User user) { + public EPortfolio getFinalPortfolioForAssessment(Project project, User user) { - EPorfolio result = new EPorfolio(); + EPortfolio result = new EPortfolio(); StudentIdentifier studentIdentifier = new StudentIdentifier(project.getId(),user.getId()); - result.setDescrition(descriptionService.getProjectbyStudent(studentIdentifier)); + result.setDescription(descriptionService.getProjectByStudent(studentIdentifier)); result.setJournals(journalService.getAllJournals(user.getId(),project.getId())); //TODO result.setReport(...); return result; } + + } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java index 755b1cf594ca1fb3516d4096567bbc2eba522b8f..be8dc781a90624f648196f0a74a55203ae053215 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalService.java @@ -1,5 +1,7 @@ package unipotsdam.gf.modules.journal.service; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.journal.model.JournalFilter; @@ -54,4 +56,8 @@ public interface JournalService { void closeJournal(String journal); + + boolean checkIfAllJournalClosed(Project project); + + ArrayList<User> getOpenUserByProject(Project project); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java index 79bf05ed35a80df31fdf7f4c1cb93ad5a16c62c0..e6367199fb8ecea4fc583389ca7cef4b553027d1 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/JournalServiceImpl.java @@ -2,6 +2,9 @@ package unipotsdam.gf.modules.journal.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.journal.model.JournalFilter; @@ -15,7 +18,7 @@ import java.util.ArrayList; public class JournalServiceImpl implements JournalService { private final Logger log = LoggerFactory.getLogger(JournalServiceImpl.class); - JournalDAO journalDAO = new JournalDAOImpl(); + private final JournalDAO journalDAO = new JournalDAOImpl(); @Override public Journal getJournal(String id) { @@ -42,7 +45,6 @@ public class JournalServiceImpl implements JournalService { } //If Visibility Group, show if student is in group and filter allows it - //TODO: project != Group, for testing ok, change for real Service if (j.getVisibility() == Visibility.GROUP && j.getStudentIdentifier().getProjectId().equals(project) && filter == JournalFilter.ALL) { result.add(j); } @@ -60,7 +62,7 @@ public class JournalServiceImpl implements JournalService { public ArrayList<Journal> getAllJournals(String student, String project) { log.debug(">> get all journals(" + student + "," + project + ")"); - return journalDAO.getAllByProject(project); + return journalDAO.getAllByProject(project, student); } @Override @@ -96,6 +98,23 @@ public class JournalServiceImpl implements JournalService { log.debug("<<< close journal"); } - //TODO Export for assessment -} + @Override + public boolean checkIfAllJournalClosed(Project project) { + return (journalDAO.getOpenJournals(project).size() == 0); + } + + @Override + public ArrayList<User> getOpenUserByProject(Project project) { + + ManagementImpl management = new ManagementImpl(); + + ArrayList<String> userId = journalDAO.getOpenJournals(project); + ArrayList<User> users = new ArrayList<>(); + + for(String id : userId){ + users.add(management.getUserByToken(id)); + } + return users; + } +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java index 77ed95bb2febbf0a04a3cb6399493e657ba68125..22ca2a4b63429bdda422f3be7547439caa8c1f0d 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java @@ -1,5 +1,8 @@ package unipotsdam.gf.modules.journal.service; +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.Link; import unipotsdam.gf.modules.journal.model.ProjectDescription; @@ -8,20 +11,19 @@ import unipotsdam.gf.modules.journal.model.dao.LinkDAOImpl; import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAO; import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAOImpl; -import java.util.Date; +import java.util.ArrayList; public class ProjectDescriptionImpl implements ProjectDescriptionService { - ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl(); - LinkDAO linkDAO = new LinkDAOImpl(); + private final ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl(); + private final LinkDAO linkDAO = new LinkDAOImpl(); @Override - public ProjectDescription getProjectbyStudent(StudentIdentifier studentIdentifier) { + public ProjectDescription getProjectByStudent(StudentIdentifier studentIdentifier) { - //if no description exists, create a new + //if no description exists (when page is opened for the first time), create a new one if(descriptionDAO.getDescription(studentIdentifier)==null){ - //TODO richtige Daten, standartwerte über config? - ProjectDescription description = new ProjectDescription("0", studentIdentifier.getStudentId(), "Hier soll ein Turtorialtext stehen", studentIdentifier.getProjectId(), null, null, new Date().getTime()); + ProjectDescription description = new ProjectDescription("0", studentIdentifier.getStudentId(), "Hier soll ein Turtorialtext stehen", studentIdentifier.getProjectId(), null); descriptionDAO.createDescription(description); } @@ -32,7 +34,7 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService { } @Override - public ProjectDescription getProjectbyId(String id) { + public ProjectDescription getProjectById(String id) { ProjectDescription returnDesc = descriptionDAO.getDescription(id); returnDesc.setLinks(linkDAO.getAllLinks(returnDesc.getId())); return returnDesc; @@ -41,7 +43,7 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService { @Override public void saveProjectText(StudentIdentifier studentIdentifier, String text) { - ProjectDescription desc = getProjectbyStudent(studentIdentifier); + ProjectDescription desc = getProjectByStudent(studentIdentifier); desc.setDescription(text); descriptionDAO.updateDescription(desc); } @@ -61,4 +63,22 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService { public void closeDescription(String projectDescrID) { descriptionDAO.closeDescription(projectDescrID); } + + @Override + public boolean checkIfAllDescriptionsClosed(Project project) { + return (descriptionDAO.getOpenDescriptions(project).size() == 0); + } + + @Override + public ArrayList<User> getOpenUserByProject(Project project) { + ManagementImpl management = new ManagementImpl(); + + ArrayList<String> userId = descriptionDAO.getOpenDescriptions(project); + ArrayList<User> users = new ArrayList<>(); + + for(String id : userId){ + users.add(management.getUserByToken(id)); + } + return users; + } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java index 2d76e6c454b6c745611742a95b734f9a9d7212a6..a99aef7d96d10670e5e6b580481b5df727a543cf 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java @@ -1,8 +1,12 @@ package unipotsdam.gf.modules.journal.service; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.ProjectDescription; +import java.util.ArrayList; + /** * Service for learning Journal */ @@ -10,9 +14,9 @@ import unipotsdam.gf.modules.journal.model.ProjectDescription; public interface ProjectDescriptionService { - ProjectDescription getProjectbyStudent(StudentIdentifier studentIdentifier); + ProjectDescription getProjectByStudent(StudentIdentifier studentIdentifier); - ProjectDescription getProjectbyId(String id); + ProjectDescription getProjectById(String id); void saveProjectText(StudentIdentifier studentIdentifier, String text); void addLink(String project, String link, String name); @@ -20,4 +24,8 @@ public interface ProjectDescriptionService { void deleteLink(String link); void closeDescription(String projectDescriptionId); + + boolean checkIfAllDescriptionsClosed(Project project); + + ArrayList<User> getOpenUserByProject(Project project); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java index d38cf359ae62c553574bce825ea6b17abce99118..4133b81fc2b406d71f03ab56d3c4e9fd6f365744 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java @@ -15,7 +15,7 @@ public class JournalUtils { public static final Logger log = LoggerFactory.getLogger(JournalUtils.class); /** - * Coverts a strirng to enum category + * Coverts a string to enum category * * @param category string * @return category, TITLE if string does not match @@ -30,7 +30,7 @@ public class JournalUtils { } catch (IllegalArgumentException e) { c = Category.TITEL; //TODO extra Category for fail? - JournalUtils.log.debug("Illegal argument for visibility, default to TITLR"); + JournalUtils.log.debug("Illegal argument for visibility, default to TITLE"); } return c; } @@ -67,10 +67,9 @@ public class JournalUtils { connection.connect(); // build and execute request - //TODO Formatstring String request = "SELECT COUNT(*) > 0 AS `exists` FROM " + table+ " WHERE id = ?;"; VereinfachtesResultSet rs = connection.issueSelectStatement(request,id); - log.debug("querry: " + rs.toString()); + JournalUtils.log.debug("query: " + rs.toString()); if (rs.next()) { // save the response int count = rs.getInt("exists"); @@ -79,11 +78,7 @@ public class JournalUtils { connection.close(); // return true if we found the id - if (count < 1) { - return false; - } else { - return true; - } + return count >= 1; } // something happened diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java index 68059e911c2c6e91921895d1cc26bb9a837bd3ea..d85291ced130bb3ec0108c8f05e56d238b42c1b4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/JournalView.java @@ -60,8 +60,8 @@ public class JournalView { log.debug(">>> getJournals: student=" + student + " project=" + project +" filter=" + filter ); - JournalFilter filt = (filter.equals("ALL")) ? JournalFilter.ALL:JournalFilter.OWN; - ArrayList<Journal> result = journalService.getAllJournals(student,project,filt); + JournalFilter journalFilter = (filter.equals("ALL")) ? JournalFilter.ALL:JournalFilter.OWN; + ArrayList<Journal> result = journalService.getAllJournals(student,project,journalFilter); log.debug(">>> getJournals: size=" + result.size()); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java index 2b9fe312ee621cfb9ce686deeccfcce77f16c8e1..a8cb61a98d5c351f52b87ab03e817cd4d098de64 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java @@ -32,7 +32,7 @@ public class ProjectDescriptionView { public Response getProjectDescription(@PathParam("project") String project, @PathParam("student") String student){ log.debug(">>> getProjectDescription: " + project + "/" + student); - ProjectDescription result = descriptionService.getProjectbyStudent(new StudentIdentifier(project, student)); + ProjectDescription result = descriptionService.getProjectByStudent(new StudentIdentifier(project, student)); log.debug(">>> getProjectDescription"); return Response.ok(result).build(); @@ -71,7 +71,7 @@ public class ProjectDescriptionView { public Response addLink(@FormParam("link") String link, @FormParam("name") String name, @FormParam("projectdescriptionId") String project){ log.debug(">>> addLink: " + name + ":" + link); - ProjectDescription desc = descriptionService.getProjectbyId(project); + ProjectDescription desc = descriptionService.getProjectById(project); descriptionService.addLink(project,link, name ); @@ -122,7 +122,7 @@ public class ProjectDescriptionView { public Response closeDescription(String desc){ log.debug(">>> closeDescription: " + desc); - StudentIdentifier student = descriptionService.getProjectbyId(desc).getStudent(); + StudentIdentifier student = descriptionService.getProjectById(desc).getStudent(); descriptionService.closeDescription(desc); try { URI location = new URI("../pages/eportfolio.jsp?token=" + student.getStudentId() + "&projectId=" + student.getProjectId()); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java index b8098bebafa5b556b4403ef1ac256b7ac1450d2b..443ce212400945a30640d7b3213233a3ed4e6e1f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java @@ -1,6 +1,5 @@ package unipotsdam.gf.modules.peer2peerfeedback; -import org.mockito.Mockito; import uk.co.jemos.podam.api.PodamFactory; import uk.co.jemos.podam.api.PodamFactoryImpl; import unipotsdam.gf.assignments.Assignee; @@ -8,6 +7,7 @@ import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.interfaces.Feedback; +import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback; import unipotsdam.gf.modules.researchreport.ResearchReport; import java.io.File; @@ -33,6 +33,8 @@ public class DummyFeedback implements Feedback { return null; } + public Peer2PeerFeedback createPeer2PeerFeedback (Peer2PeerFeedback feedback){return null; } + @Override public Boolean giveFeedback(Peer2PeerFeedback feedback, ResearchReport document) { return null; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java deleted file mode 100644 index 9b44f2d2e81a8ca1133da2917cfb47ba69bfdb7d..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/ExampleFeedback.java +++ /dev/null @@ -1,30 +0,0 @@ -package unipotsdam.gf.modules.peer2peerfeedback; - -import unipotsdam.gf.core.management.user.User; - -import java.io.File; - -/** - Peer2PeerFeedback example - created by Katharina - */ - -public class ExampleFeedback { - - String feedbacktopic = "Vorschlag zur Methodik"; - String feedbacktype = "Text"; - Category feedbackcategory = Category.METHODIK; - User feedbackrec = new User(); - User feedbacksend = new User(); - File file = new File("src/main/resources/example.txt"); //gibt erstmal nur einen Pfad an - //String path = file.getAbsolutePath(); - - - public Peer2PeerFeedback examplePeerFeedback (){ - - Peer2PeerFeedback example = new Peer2PeerFeedback(feedbacktopic, feedbacktype, - feedbackcategory, file, feedbacksend, feedbackrec); - - return example; - } -} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java deleted file mode 100644 index 55bd0e9dad14bc9e1954f223599ebdb4587f0dd6..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/Peer2PeerFeedback.java +++ /dev/null @@ -1,104 +0,0 @@ -package unipotsdam.gf.modules.peer2peerfeedback; - -import unipotsdam.gf.core.management.user.User; - -import java.io.File; - -/** - Peer2PeerFeedback Object - created by Katharina - */ - -public class Peer2PeerFeedback{ - - - private String feedbacktopic; - private String feedbacktype; - private Category feedbackcategory; - private File document; - private User feedbacksender; - private User feedbackreceiver; - - public Peer2PeerFeedback(String feedbacktopic, String feedbacktype, Category feedbackcategory, File document, User feedbacksender, User feedbackreceiver) { - this.feedbacktopic = feedbacktopic; - this.feedbacktype = feedbacktype; - this.feedbackcategory = feedbackcategory; - this.document = document; - this.feedbacksender = feedbacksender; - this.feedbackreceiver = feedbackreceiver; - } - - public String getFeedbacktopic() { - - return feedbacktopic; - } - - public void setFeedbacktopic(String feedbacktopic) { - - this.feedbacktopic = feedbacktopic; - } - - - public String getFeedbacktype() { - - return feedbacktype; - } - - public void setFeedbacktype(String feedbacktype) { - - this.feedbacktype = feedbacktype; - } - - - - public Category getFeedbackcategory() { - return feedbackcategory; - } - - public void setFeedbackcategory(Category feedbackcategory) { - this.feedbackcategory = feedbackcategory; - } - - - public File getDocument() { - - return document; - } - - public void setDocument(File document) { - - this.document = document; - } - - - public User getFeedbacksender() { - return feedbacksender; - } - - public void setFeedbacksender(User feedbacksender) { - this.feedbacksender = feedbacksender; - } - - public User getFeedbackreceiver() { - return feedbackreceiver; - } - - public void setFeedbackreceiver(User feedbackreceiver) { - this.feedbackreceiver = feedbackreceiver; - } - - - @Override - public String toString() { - return "Peer2PeerFeedback{" + - "feedbacktopic=" + feedbacktopic + - ", feedbacktype=" + feedbacktype + - ", feedbackreference=" + feedbackcategory + - ", feedbacksender='" + feedbacksender + - ", feedbackreceiver=" + feedbackreceiver + - ", document=" + document.toString() + - '}'; - } - - -} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/PeerFeedbackService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/PeerFeedbackService.java new file mode 100644 index 0000000000000000000000000000000000000000..60a1f82710a3e27b29d1cb402ff8a58fa9b567b4 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/PeerFeedbackService.java @@ -0,0 +1,5 @@ +package unipotsdam.gf.modules.peer2peerfeedback; + +public interface PeerFeedbackService { + +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java new file mode 100644 index 0000000000000000000000000000000000000000..f7b899b487b07220779ccf5674bd0d1d8d259b23 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Controller/PeerFeedbackController.java @@ -0,0 +1,112 @@ +package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Controller; + +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.modules.peer2peerfeedback.Category; +import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback; + +import java.util.ArrayList; +import java.util.UUID; + +public class PeerFeedbackController { + + //@Override + public void createPeer2PeerFeedback(Peer2PeerFeedback feedback) { + + // create a new id if we found no id. + String uuid = UUID.randomUUID().toString(); + // while (existsfeedbackId(uuid)) { //Todo: existsfeedbackId + // uuid = UUID.randomUUID().toString(); + // } + + // establish connection + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + // build and execute request + String request = "INSERT INTO peerfeedback (`id`, `reciever`, `sender`, `text`, `category`, `filename`) VALUES (?,?,?,?,?,?);"; + connection.issueInsertOrDeleteStatement(request, uuid, feedback.getFeedbackreceiver(), feedback.getFeedbacksender(), feedback.getText(), feedback.getFeedbackcategory(), feedback.getFilename()); + + // close connection + connection.close(); + + // build response annotation + //Annotation annotationResponse = getAnnotation(uuid); + + // return Response.ok().build(); + //return null; + + } + + //@Override + public Peer2PeerFeedback getPeer2PeerFeedback(String id) { + + // establish connection + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + // build and execute request + String request = "SELECT * FROM peerfeedback WHERE id = ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, id); + System.out.print(rs); + + if (rs.next()) { + + // save annotation + Peer2PeerFeedback feedback = getPeerfeedbackFromResultSet(rs); + + // close connection + connection.close(); + System.out.print(feedback); + + return feedback; + } else { + + // close connection + connection.close(); + System.out.print("null"); + return null; + } + + } + + public ArrayList<Peer2PeerFeedback> getAllFeedbacks(String sender) { + + ArrayList<Peer2PeerFeedback> feedbacks = new ArrayList<>(); + + // establish connection + MysqlConnect connection = new MysqlConnect(); + connection.connect(); + + // build and execute request + String request = "SELECT * FROM peerfeedback WHERE sender= ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, sender); + + while (rs.next()) { + feedbacks.add(getPeerfeedbackFromResultSet(rs)); + } + + // close connection + connection.close(); + System.out.print(feedbacks); + return feedbacks; + + } + + + private Peer2PeerFeedback getPeerfeedbackFromResultSet(VereinfachtesResultSet rs) { + + String id = rs.getString("id"); + long timestamp = rs.getTimestamp(2).getTime(); + String reciever = rs.getString("reciever"); + String sender = rs.getString("sender"); + String text = rs.getString("text"); + Object category = rs.getObject("category"); + String filename = rs.getString("filename"); + + //AnnotationBody body = new AnnotationBody(title, comment, startCharacter, endCharacter); + + //return new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", "test", "filename"); + return new Peer2PeerFeedback(id,timestamp,Category.TITEL,reciever, sender, text, filename); + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Model/Peer2PeerFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Model/Peer2PeerFeedback.java new file mode 100644 index 0000000000000000000000000000000000000000..3974138735cb7cba9b824310fcdad5b2eee9e079 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/Model/Peer2PeerFeedback.java @@ -0,0 +1,94 @@ +package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model; + +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.modules.peer2peerfeedback.Category; +import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml; + +import java.io.File; + +/** + Peer2PeerFeedback Object + created by Katharina + */ + +public class Peer2PeerFeedback{ + + + private String id; + private long timestamp; + private Category category; + private String text; + private String sender; + private String receiver; + private String filename; + + public Peer2PeerFeedback(String id, long timestamp, Category category, String text, String sender, String receiver, String filename) { + this.id = id; + this.timestamp = timestamp; + this.category = category; + this.text = convertMarkdownToHtml(text); + this.sender = sender; + this.receiver = receiver; + this.filename = filename; + } + + public Peer2PeerFeedback(){ + + } + + public String getID() { return id; } + + public void setID(String id) { this.id = id; } + + public long getTimestamp() { return timestamp; } + + public void setTimestamp(long timestamp) { this.timestamp = timestamp; } + + public Category getFeedbackcategory() { + return category; + } + + public void setFeedbackcategory(Category category) { + this.category = category; + } + + public String getText() { return text; } + + public void setText(String text) { this.text = text; } + + public String getFilename() { return filename; } + + public void setFilename(String filename) { this.filename = filename; } + + public String getFeedbacksender() { + return sender; + } + + public void setFeedbacksender(String feedbacksender) { + this.sender = sender; + } + + public String getFeedbackreceiver() { + return receiver; + } + + public void setFeedbackreceiver(String feedbackreceiver) { + this.receiver = receiver; + } + + + @Override + public String toString() { + return "Peer2PeerFeedback{" + + "id=" + id + + ", timestamp=" + timestamp + + ", category=" + category + + ", sender='" + sender + + ", receiver=" + receiver + + ", text=" + text + + ", filename=" + filename + + '}'; + } + + +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java new file mode 100644 index 0000000000000000000000000000000000000000..90f0f0519bb334fce5818a3c1fd12220cdb96536 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/peerfeedback/View/PeerFeedbackView.java @@ -0,0 +1,57 @@ +package unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.View; + +import com.sun.tools.xjc.model.Model; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import unipotsdam.gf.modules.peer2peerfeedback.Category; +import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback; +import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Controller.PeerFeedbackController; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.ArrayList; + +@Path("/peerfeedback") +//@Consumes({"application/json"}) +//@Produces({"application/json"}) +//@Consumes(MediaType.APPLICATION_FORM_URLENCODED) +//@Produces(MediaType.TEXT_PLAIN) +@Consumes(MediaType.APPLICATION_FORM_URLENCODED) +@Produces(MediaType.APPLICATION_JSON) +public class PeerFeedbackView { + + //private final Logger log = LoggerFactory.getLogger(PeerFeedbackView.class); + + @POST + @Path("/save") + public Response createPeerfeedback(@FormParam("text") String text, @FormParam("student") String student, @FormParam("id") String id, @FormParam("reciever") String reciever, + @FormParam("sender") String sender, @FormParam("filename") String filename, @FormParam("category") Category category, @FormParam("timestamp") Long timestamp) { + + // save peerfeedback request in database and receive the new peerfeedback object + //PeerFeedbackController controller = new PeerFeedbackController(); + //Peer2PeerFeedback pf = controller.createPeer2PeerFeedback(feedback); + //return Response.ok(pf).build(); + + String message = text + student; + Peer2PeerFeedback feedback = new Peer2PeerFeedback("id", 1234, Category.TITEL, "reciever", "sender", text, "filename"); + PeerFeedbackController controller = new PeerFeedbackController(); + controller.createPeer2PeerFeedback(feedback); + + + return Response.ok().build(); //feedback + + } + + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("{sender}") + public Response getPeerfeedback(@PathParam("sender") String sender){ + + PeerFeedbackController controller = new PeerFeedbackController(); + ArrayList<Peer2PeerFeedback> fd = controller.getAllFeedbacks(sender); + return Response.ok(fd).build(); + } + + +} diff --git a/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css b/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css deleted file mode 100644 index bd132c97584a6d2df270969e785a565d28f9c3d6..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/webapp/assets/css/researchReport.css +++ /dev/null @@ -1,182 +0,0 @@ -/* -html, body - width: 100% - height: 100% - margin: 0 - padding: 0 - font-size: 10px - font-family: 'Roboto', sans-serif - background-color: gray - -.researchReportForm - width: 100% - display: grid - grid-template-rows: 5rem 90vh 5rem - grid-template-columns: 15% 85% - grid-template-areas: "sidebar header header" "sidebar editor editor" "sidebar buttons ." "sidebar progress ." - - - - -.researchReportMenu - background: black - color: white - grid-area: sidebar - nav - font-size: 1.5rem - menu - menuitem - a - color: White - text-decoration: none - margin: 0 0 0 1rem - - -.researchReportTitlebar - background: #003f60 - color: White - grid-area: header - display: flex - justify-content: center - align-items: center - - -.researchReportEditor - grid-area: editor - background: gray - color: black - display: flex - justify-content: Left - align-items: Center - .editor-inhalt - margin: 6rem - padding: 6rem - font-size: 2rem - color: #fff - text-align: Left - width: 10% - - - -.researchReportProgress - background: #003f60 - color: red - grid-area: progress - display: flex - justify-content: center - align-items: center - nav - font-size: 1.2rem - menu - menuitem - a - color: white - text-decoration: none - margin: 0 0 0 0rem - cursor: pointer - - - - - -.researchReportButtons - background-color: #4CAF50 - border: 1.8px solid black - color: black - padding: 15px 25px - text-align: center - font-size: 16px - cursor: pointer - -*/ - - - - - -html, body { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - font-size: 10px; - font-family: "Roboto", sans-serif; - background-color: gray; -} - -.researchReportForm { - width: 100%; - display: grid; - grid-template-rows: 5rem 90vh 5rem; - grid-template-columns: 15% 85%; - grid-template-areas: "sidebar header header" "sidebar editor editor" "sidebar . buttons " "sidebar progress ."; -} - -.researchReportMenu { - background: black; - color: white; - grid-area: sidebar; -} -.researchReportMenu nav { - font-size: 1.5rem; -} -.researchReportMenu nav menu menuitem a { - color: White; - text-decoration: none; - margin: 0 0 0 1rem; -} - -.researchReportTitlebar { - background: #003f60; - color: White; - grid-area: header; - display: flex; - justify-content: center; - align-items: center; -} - -.researchReportEditor { - grid-area: editor; - background: gray; - color: black; - display: flex; - justify-content: Left; - align-items: Center; -} -.researchReportEditor .editor-inhalt { - margin: 6rem; - padding: 6rem; - font-size: 2rem; - color: #fff; - text-align: Left; - width: 10%; -} - -.researchReportProgress { - background: #003f60; - color: red; - grid-area: progress; - display: flex; - justify-content: center; - align-items: center; -} -.researchReportProgress nav { - font-size: 1.5rem; -} -.researchReportProgress nav menu menuitem a { - color: White; - text-decoration: none; - margin: 0 0 0 1rem; - cursor: pointer; -} - -.researchReportButtons { - background-color: #4CAF50; - border: 1.8px solid black; - color: black; - padding: 15px 25px; - text-align: center; - font-size: 16px; - cursor: pointer; -} - diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createProject.js b/gemeinsamforschen/src/main/webapp/assets/js/createProject.js deleted file mode 100644 index 409171b0173bbcbd105b0d9955123fc78570d606..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/webapp/assets/js/createProject.js +++ /dev/null @@ -1,5 +0,0 @@ -$(document).ready(function(){ - $('#submit').on('click', function(){ - location.href="specificRequirement.jsp?token="+getUserTokenFromUrl(); - }); -}); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js deleted file mode 100644 index a56e8a766a20f895dd8674056e796e5613bbc5b0..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js +++ /dev/null @@ -1,58 +0,0 @@ -$(document).ready(function() { - $('#notAllRated').hide(); - $(".carousel").carousel({ - interval: false - }); - $('#assessThePeer').on("click", function () { - assessPeer(); - }); -}); - -function assessPeer(){ - let peerStudents =$('.peerStudent'); - ///////initialize variables/////// - let dataP = new Array(peerStudents.size()); - let rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous']; - - ///////read values from html/////// - 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++ ){ - let category = rateThis[rate]; - workRating[category]=($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val()); - } - - peerRating.workRating = workRating; - //////write values in Post-Variable - 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){ - $('#notAllRated').show(); - return; - } - } - } - let projectId=$('#projectId').html().trim(); - $.ajax({ - 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(); - }, - 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 deleted file mode 100644 index 33e3ada606d22727234e01d6fa131f67e1240009..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/webapp/assets/js/footer.js +++ /dev/null @@ -1,31 +0,0 @@ -$(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/overview-docent.js b/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js deleted file mode 100644 index 77cd2693f2740cc2cb0a36e504271eecae90310e..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js +++ /dev/null @@ -1,12 +0,0 @@ -$(document).ready(function(){ - $('#project1Link').on('click', function(){ - location.href="project-docent.jsp?token="+getUserTokenFromUrl()+'&projectId='+'gemeinsamForschen'; - }); - $('#project2Link').on('click', function(){ - location.href="project-docent.jsp?token="+getUserTokenFromUrl()+'&projectId='+'Kaleo'; - }); - $('#createProject').on('click', function(){ - location.href="createProject.jsp?token="+getUserTokenFromUrl(); - }); - -}); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/utility.js b/gemeinsamforschen/src/main/webapp/assets/js/utility.js deleted file mode 100644 index c5b8b37d083e2cc80f2260ded050c6c710143ade..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/webapp/assets/js/utility.js +++ /dev/null @@ -1,26 +0,0 @@ -$(document).ready(function(){ - $('#headLineProject').html($('#projectId').html()); -}); - -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("="); - $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]); - } - return $_GET['token']; - -} - -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) { - return pair[1]; - } - } - return (false); -} diff --git a/gemeinsamforschen/src/main/webapp/core/gemeinsamForschen.tld b/gemeinsamforschen/src/main/webapp/core/gemeinsamForschen.tld index 3c2db0269960c9ff430c6e6d82e74a225d195972..b32f459cea3a6a036b622c85cb47749d45a1d3a0 100644 --- a/gemeinsamforschen/src/main/webapp/core/gemeinsamForschen.tld +++ b/gemeinsamforschen/src/main/webapp/core/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/assets/bootstrap/css/bootstrap.min.css b/gemeinsamforschen/src/main/webapp/libs/bootstrap/css/bootstrap.min.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/bootstrap/css/bootstrap.min.css rename to gemeinsamforschen/src/main/webapp/libs/bootstrap/css/bootstrap.min.css diff --git a/gemeinsamforschen/src/main/webapp/assets/bootstrap/js/bootstrap.min.js b/gemeinsamforschen/src/main/webapp/libs/bootstrap/js/bootstrap.min.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/bootstrap/js/bootstrap.min.js rename to gemeinsamforschen/src/main/webapp/libs/bootstrap/js/bootstrap.min.js diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Community-ChatComments.css b/gemeinsamforschen/src/main/webapp/libs/css/Community-ChatComments.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Community-ChatComments.css rename to gemeinsamforschen/src/main/webapp/libs/css/Community-ChatComments.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Contact-Form-Clean.css b/gemeinsamforschen/src/main/webapp/libs/css/Contact-Form-Clean.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Contact-Form-Clean.css rename to gemeinsamforschen/src/main/webapp/libs/css/Contact-Form-Clean.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Customizable-Carousel-swipe-enabled.css b/gemeinsamforschen/src/main/webapp/libs/css/Customizable-Carousel-swipe-enabled.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Customizable-Carousel-swipe-enabled.css rename to gemeinsamforschen/src/main/webapp/libs/css/Customizable-Carousel-swipe-enabled.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Login-Form-Clean.css b/gemeinsamforschen/src/main/webapp/libs/css/Login-Form-Clean.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Login-Form-Clean.css rename to gemeinsamforschen/src/main/webapp/libs/css/Login-Form-Clean.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/MUSA_panel-table.css b/gemeinsamforschen/src/main/webapp/libs/css/MUSA_panel-table.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/MUSA_panel-table.css rename to gemeinsamforschen/src/main/webapp/libs/css/MUSA_panel-table.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/MUSA_panel-table1.css b/gemeinsamforschen/src/main/webapp/libs/css/MUSA_panel-table1.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/MUSA_panel-table1.css rename to gemeinsamforschen/src/main/webapp/libs/css/MUSA_panel-table1.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Navigation-with-Button1.css b/gemeinsamforschen/src/main/webapp/libs/css/Navigation-with-Button1.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Navigation-with-Button1.css rename to gemeinsamforschen/src/main/webapp/libs/css/Navigation-with-Button1.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Sidebar-Menu-1.css b/gemeinsamforschen/src/main/webapp/libs/css/Sidebar-Menu-1.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Sidebar-Menu-1.css rename to gemeinsamforschen/src/main/webapp/libs/css/Sidebar-Menu-1.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Sidebar-Menu.css b/gemeinsamforschen/src/main/webapp/libs/css/Sidebar-Menu.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Sidebar-Menu.css rename to gemeinsamforschen/src/main/webapp/libs/css/Sidebar-Menu.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Sidebar-Menu1.css b/gemeinsamforschen/src/main/webapp/libs/css/Sidebar-Menu1.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Sidebar-Menu1.css rename to gemeinsamforschen/src/main/webapp/libs/css/Sidebar-Menu1.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/Team-Boxed.css b/gemeinsamforschen/src/main/webapp/libs/css/Team-Boxed.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/Team-Boxed.css rename to gemeinsamforschen/src/main/webapp/libs/css/Team-Boxed.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/annotationStyle.css b/gemeinsamforschen/src/main/webapp/libs/css/annotationStyle.css similarity index 92% rename from gemeinsamforschen/src/main/webapp/assets/css/annotationStyle.css rename to gemeinsamforschen/src/main/webapp/libs/css/annotationStyle.css index a9ed0b540fd86a20c6375dfd3e602bd0d0f8a35b..9e618c7d558bef2e5e8c6e4adcfe93b92e8b7f54 100644 --- a/gemeinsamforschen/src/main/webapp/assets/css/annotationStyle.css +++ b/gemeinsamforschen/src/main/webapp/libs/css/annotationStyle.css @@ -17,7 +17,8 @@ ol { .rightcolumn { float: right; width: 25%; - display: inline-block; + display: flex; + flex-flow: column; overflow: scroll; /* background-color: blue; */ } @@ -29,7 +30,9 @@ ol { /* background-color: yellow; */ } .rightcontent { - margin: 10px; + padding: 10px; + flex: 1; + overflow: scroll; } .leftcontent { max-height: 100%; @@ -51,7 +54,7 @@ ol { background-color: white; } .annotation-card:hover { - box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2); + box-shadow: 0 8px 12px 0 rgba(0,0,0,0.2); } .annotation-header { padding: 5px; @@ -164,4 +167,9 @@ ol { color: black; font-weight: bold; } +#annotation-search { + width: 100%; + padding: 5px; + font-size: 11px; +} diff --git a/gemeinsamforschen/src/main/webapp/assets/css/create-journal.css b/gemeinsamforschen/src/main/webapp/libs/css/create-journal.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/create-journal.css rename to gemeinsamforschen/src/main/webapp/libs/css/create-journal.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/e-portfolio.css b/gemeinsamforschen/src/main/webapp/libs/css/e-portfolio.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/e-portfolio.css rename to gemeinsamforschen/src/main/webapp/libs/css/e-portfolio.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/editDescription.css b/gemeinsamforschen/src/main/webapp/libs/css/editDescription.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/editDescription.css rename to gemeinsamforschen/src/main/webapp/libs/css/editDescription.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/footer.css b/gemeinsamforschen/src/main/webapp/libs/css/footer.css similarity index 53% rename from gemeinsamforschen/src/main/webapp/assets/css/footer.css rename to gemeinsamforschen/src/main/webapp/libs/css/footer.css index 2e2c0e2201dbb15067036094d7b3347845b22d96..beb5cbc6a2d2f0a9015b498d756e4a0531d77ca8 100644 --- a/gemeinsamforschen/src/main/webapp/assets/css/footer.css +++ b/gemeinsamforschen/src/main/webapp/libs/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/css/jquery.tagsinput.css b/gemeinsamforschen/src/main/webapp/libs/css/jquery.tagsinput.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/jquery.tagsinput.css rename to gemeinsamforschen/src/main/webapp/libs/css/jquery.tagsinput.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/projects.css b/gemeinsamforschen/src/main/webapp/libs/css/projects.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/projects.css rename to gemeinsamforschen/src/main/webapp/libs/css/projects.css diff --git a/gemeinsamforschen/src/main/webapp/libs/css/researchReport.css b/gemeinsamforschen/src/main/webapp/libs/css/researchReport.css new file mode 100644 index 0000000000000000000000000000000000000000..d9074aad2960cacb3b11921b1aefbdede8bad780 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/css/researchReport.css @@ -0,0 +1,144 @@ +/*Uncompiled for Codepen +body, html + width: 100% + height: 100% + margin: 0 + padding: 0 + font-size: 10px + font-family: 'Roboto', sans-serif + background-color: gray + +.researchReportForm + width: 100% + display: grid + grid-template-rows: 5rem 100vh 7rem 5rem + grid-template-columns: 1fr 1fr 1fr 1fr 1fr + grid-template-areas: "header header header header header" "editor editor editor editor editor" ". . buttons upload ." "progress progress progress progress progress" + .researchReportTitlebar + grid-area: header + background-color: #003f60 + color: white + display: flex + justify-content: center + align-items: center + + .researchReportEditor + grid-area: editor + background: gray + color: black + display: flex + justify-content: Center + align-items: Center + + .editor-inhalt + margin: 10rem + padding: 6rem + font-size: 2rem + color: #fff + text-align: Left + width: 10% + + .researchReportButtons + background-color: #4CAF50 + border: 1.8px solid black + color: gray + grid-area: buttons + padding: 15px 25px + text-align: Center + font-size: 16px + cursor: pointer + + + .researchReportUpload + grid-area: upload + + + .researchReportProgress + background: #003f60 + color: red + grid-area: progress + display: flex + justify-content: center + align-items: center + nav + font-size: 1.5rem + menu + menuitem + a + color: White + text-decoration: none + margin: 0 0 0 1rem + cursor: pointer + */ + +body, html { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + font-size: 10px; + font-family: "Roboto", sans-serif; + background-color: gray; +} + +.researchReportForm { + width: 100%; + display: grid; + grid-template-rows: 5rem 100vh 7rem 5rem; + grid-template-columns: 1fr 1fr 1fr 1fr 1fr; + grid-template-areas: "header header header header header" "editor editor editor editor editor" ". . buttons upload ." "progress progress progress progress progress"; +} +.researchReportForm .researchReportTitlebar { + grid-area: header; + background-color: #003f60; + color: white; + display: flex; + justify-content: center; + align-items: center; +} +.researchReportForm .researchReportEditor { + grid-area: editor; + background: gray; + color: black; + display: flex; + justify-content: Center; + align-items: Center; +} +.researchReportForm .researchReportEditor .editor-inhalt { + margin: 10rem; + padding: 6rem; + font-size: 2rem; + color: #fff; + text-align: Left; + width: 10%; +} +.researchReportForm .researchReportButtons { + background-color: #4CAF50; + border: 1.8px solid black; + color: gray; + grid-area: buttons; + padding: 15px 25px; + text-align: Center; + font-size: 16px; + cursor: pointer; +} +.researchReportForm .researchReportUpload { + grid-area: upload; +} +.researchReportForm .researchReportProgress { + background: #003f60; + color: red; + grid-area: progress; + display: flex; + justify-content: center; + align-items: center; +} +.researchReportForm .researchReportProgress nav { + font-size: 1.5rem; +} +.researchReportForm .researchReportProgress nav menu menuitem a { + color: White; + text-decoration: none; + margin: 0 0 0 1rem; + cursor: pointer; +} diff --git a/gemeinsamforschen/src/main/webapp/libs/css/researchReportOverview.css b/gemeinsamforschen/src/main/webapp/libs/css/researchReportOverview.css new file mode 100644 index 0000000000000000000000000000000000000000..b4fbd6ef76562af9044476a5994be84fcff8e3dd --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/css/researchReportOverview.css @@ -0,0 +1,149 @@ +/* +Uncompiled for Codepen + +body, html + width: 100% + height: 100% + margin: 0 + padding: 0 + font-size: 15px + font-family: 'Roboto', sans-serif + background-color: gray + +.researchReportOverview + width: 100% + display: grid + grid-template-rows: 3rem 50vh 1rem 50vh + grid-template-columns: 1fr 1fr 1fr 1fr 1fr + grid-template-areas: "header header header header header" "report report report report report" ". . upload . ." "feed feed feed feed feed" + + .researchReportTitlebar + grid-area: header + background-color: #003f60 + color: white + display: flex + justify-content: center + align-items: center + + table + table-layout: auto + width: 100% + border-collapse: collapse + overflow: scroll + + + + th + border: 1px solid #999 + padding: 0.5rem + text-align: center + + td + border: 1px solid #999 + padding: 0.5rem + text-align: left + + .reports + grid-area: report + margin: auto + width: 50% + border: 3px solid #003f60 + padding: 10px + background-color: white + + tr:hover + background-color: #c0eef1 + + .feedbacks + grid-area: feed + margin: auto + width: 50% + border: 3px solid #003f60 + padding: 10px + background-color: white + + + + .researchReportUpload + grid-area: upload + + + + */ + +body, html { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + font-size: 15px; + font-family: "Roboto", sans-serif; + background-color: gray; +} + +.researchReportOverview { + width: 100%; + display: grid; + grid-template-rows: 4rem 50vh 2rem 50vh; + grid-template-columns: 1fr 1fr 1fr 1fr 1fr; + grid-template-areas: "header header header header header" "report report report report report" ". . buttons . ." "feed feed feed feed feed"; +} +.researchReportOverview .researchReportTitlebar { + grid-area: header; + background-color: #003f60; + color: white; + display: flex; + justify-content: center; + align-items: center; +} +.researchReportOverview table { + table-layout: auto; + width: 100%; + border-collapse: collapse; + overflow: scroll; +} +.researchReportOverview th { + border: 1px solid #999; + padding: 0.5rem; + text-align: center; +} +.researchReportOverview td { + border: 1px solid #999; + padding: 0.5rem; + text-align: left; +} +.researchReportOverview .reports { + grid-area: report; + margin: auto; + width: 50%; + border: 3px solid #003f60; + padding: 10px; + background-color: white; +} +.researchReportOverview tr:hover { + background-color: #c0eef1; +} +.researchReportOverview .feedbacks { + grid-area: feed; + margin: auto; + width: 50%; + border: 3px solid #003f60; + padding: 10px; + background-color: white; +} +.researchReportOverview .researchReportUpload { + grid-area: upload; + + +} + +.researchReportOverview .researchReportButtons { + background-color: #4CAF50; + border: 1.8px solid black; + color: gray; + grid-area: buttons; + padding: 15px 25px; + text-align: Center; + font-size: 16px; + cursor: pointer; +} diff --git a/gemeinsamforschen/src/main/webapp/assets/css/styles.css b/gemeinsamforschen/src/main/webapp/libs/css/styles.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/styles.css rename to gemeinsamforschen/src/main/webapp/libs/css/styles.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/unstructured-annotation.css b/gemeinsamforschen/src/main/webapp/libs/css/unstructured-annotation.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/unstructured-annotation.css rename to gemeinsamforschen/src/main/webapp/libs/css/unstructured-annotation.css diff --git a/gemeinsamforschen/src/main/webapp/assets/css/unstructured-upload.css b/gemeinsamforschen/src/main/webapp/libs/css/unstructured-upload.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/css/unstructured-upload.css rename to gemeinsamforschen/src/main/webapp/libs/css/unstructured-upload.css diff --git a/gemeinsamforschen/src/main/webapp/libs/css/viewfeedback.css b/gemeinsamforschen/src/main/webapp/libs/css/viewfeedback.css new file mode 100644 index 0000000000000000000000000000000000000000..625f097619306e338664716c6fd15adac0e219c8 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/css/viewfeedback.css @@ -0,0 +1,42 @@ +.feedback-container { + border: 2px solid #dedede; + background-color: #f1f1f1; + border-radius: 5px; + padding: 10px; + margin: 10px 0; +} + +.darker { + border-color: #ccc; + background-color: #ddd; +} + +.feedback-container::after { + content: ""; + clear: both; + display: table; +} + +.feedback-container img { + float: left; + max-width: 60px; + width: 100%; + margin-right: 20px; + border-radius: 50%; +} + +.feedback-container img.right { + float: right; + margin-left: 20px; + margin-right:0; +} + +.time-right { + float: right; + color: #aaa; +} + +.time-left { + float: left; + color: #999; +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/FontAwesome.otf b/gemeinsamforschen/src/main/webapp/libs/fonts/FontAwesome.otf similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/FontAwesome.otf rename to gemeinsamforschen/src/main/webapp/libs/fonts/FontAwesome.otf diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/font-awesome.min.css b/gemeinsamforschen/src/main/webapp/libs/fonts/font-awesome.min.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/font-awesome.min.css rename to gemeinsamforschen/src/main/webapp/libs/fonts/font-awesome.min.css diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.eot b/gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.eot similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.eot rename to gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.eot diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.svg b/gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.svg similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.svg rename to gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.svg diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.ttf b/gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.ttf similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.ttf rename to gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.ttf diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.woff b/gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.woff similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.woff rename to gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.woff diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.woff2 b/gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.woff2 similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/fontawesome-webfont.woff2 rename to gemeinsamforschen/src/main/webapp/libs/fonts/fontawesome-webfont.woff2 diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.eot b/gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.eot similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.eot rename to gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.eot diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.min.css b/gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.min.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.min.css rename to gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.min.css diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.svg b/gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.svg similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.svg rename to gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.svg diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.ttf b/gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.ttf similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.ttf rename to gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.ttf diff --git a/gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.woff b/gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.woff similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/fonts/ionicons.woff rename to gemeinsamforschen/src/main/webapp/libs/fonts/ionicons.woff diff --git a/gemeinsamforschen/src/main/webapp/assets/img/1.jpg b/gemeinsamforschen/src/main/webapp/libs/img/1.jpg similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/img/1.jpg rename to gemeinsamforschen/src/main/webapp/libs/img/1.jpg diff --git a/gemeinsamforschen/src/main/webapp/assets/img/2.jpg b/gemeinsamforschen/src/main/webapp/libs/img/2.jpg similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/img/2.jpg rename to gemeinsamforschen/src/main/webapp/libs/img/2.jpg diff --git a/gemeinsamforschen/src/main/webapp/assets/img/3.jpg b/gemeinsamforschen/src/main/webapp/libs/img/3.jpg similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/img/3.jpg rename to gemeinsamforschen/src/main/webapp/libs/img/3.jpg diff --git a/gemeinsamforschen/src/main/webapp/assets/img/fides-logo.svg b/gemeinsamforschen/src/main/webapp/libs/img/fides-logo.svg similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/img/fides-logo.svg rename to gemeinsamforschen/src/main/webapp/libs/img/fides-logo.svg diff --git a/gemeinsamforschen/src/main/webapp/libs/img/noImg.png b/gemeinsamforschen/src/main/webapp/libs/img/noImg.png new file mode 100644 index 0000000000000000000000000000000000000000..efc3eb6959ce4f5badd7802c54bccfeccbf2ecf3 Binary files /dev/null and b/gemeinsamforschen/src/main/webapp/libs/img/noImg.png differ diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/.gitignore b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/.gitignore similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/.gitignore rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/.gitignore diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/Gruntfile.js b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/Gruntfile.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/Gruntfile.js rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/Gruntfile.js diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/README.md b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/README.md similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/README.md rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/README.md diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/bower.json b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/bower.json similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/bower.json rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/bower.json diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.css b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.css rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.css diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.js b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.js rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/dist/jquery.tagsinput.min.js diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/example.html b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/example.html similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/example.html rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/example.html diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/grunt-tasks/assets_production.js b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/grunt-tasks/assets_production.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/grunt-tasks/assets_production.js rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/grunt-tasks/assets_production.js diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/grunt-tasks/options/cssmin.js b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/grunt-tasks/options/cssmin.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/grunt-tasks/options/cssmin.js rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/grunt-tasks/options/cssmin.js diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/grunt-tasks/options/uglify.js b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/grunt-tasks/options/uglify.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/grunt-tasks/options/uglify.js rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/grunt-tasks/options/uglify.js diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/package.json b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/package.json similarity index 85% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/package.json rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/package.json index 8195019e54e4fea3eedb6e13ab4ff95686722e7f..09d867b21f51f370d2a4298fa4f050e6eaaf9bf4 100644 --- a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/package.json +++ b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/package.json @@ -20,15 +20,17 @@ }, "homepage": "https://github.com/xoxco/jQuery-Tags-Input", "devDependencies": { + "filepond": "^1.8.6", + "filepond-plugin-image-preview": "^1.0.10", "glob": "^4.3.1", "grunt": "^0.4.5", + "grunt-cli": "^0.1.13", "grunt-contrib-cssmin": "^0.10.0", "grunt-contrib-uglify": "^0.6.0", "grunt-contrib-watch": "^0.6.1", "grunt-newer": "^0.8.0", "jit-grunt": "^0.8.0", "load-grunt-tasks": "^0.6.0", - "time-grunt": "^0.4.0", - "grunt-cli": "^0.1.13" + "time-grunt": "^0.4.0" } } diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/src/jquery.tagsinput.css b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/src/jquery.tagsinput.css similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/src/jquery.tagsinput.css rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/src/jquery.tagsinput.css diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/src/jquery.tagsinput.js b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/src/jquery.tagsinput.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/src/jquery.tagsinput.js rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/src/jquery.tagsinput.js diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/test/fake_json_endpoint.html b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/test/fake_json_endpoint.html similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/test/fake_json_endpoint.html rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/test/fake_json_endpoint.html diff --git a/gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/test/fake_plaintext_endpoint.html b/gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/test/fake_plaintext_endpoint.html similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/jQuery-Tags-Input-master/test/fake_plaintext_endpoint.html rename to gemeinsamforschen/src/main/webapp/libs/jQuery-Tags-Input-master/test/fake_plaintext_endpoint.html diff --git a/gemeinsamforschen/src/main/webapp/libs/js/AlertAssessmentOutlier.js b/gemeinsamforschen/src/main/webapp/libs/js/AlertAssessmentOutlier.js new file mode 100644 index 0000000000000000000000000000000000000000..c839478e287cb4652039897471ab07afecdb92cd --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/AlertAssessmentOutlier.js @@ -0,0 +1,401 @@ +$(document).ready(function () { + + + $('#DiaBlende').on('click',function () { + + + + $.ajax({ + url: "../rest/assessments4/diagramm1/"+getQueryVariable("projectId"), + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + + success: function (response) { + var ctx = document.getElementById("Diagramm").getContext('2d'); + var myChart = new Chart(ctx, response); + + }, + error: function (a,b,c) { + alert('some error' + b); + } + }); + + /* + var ctx = document.getElementById("Diagramm").getContext('2d'); + var myChart = new Chart(ctx, { + type: 'line', + data: { + labels: ["05.06.1009", "05.06.1009", "05.06.1009", "05.06.1009"], + datasets: [{ + label: "Note Student 1", + data: [ + 5,4,4,3], + borderColor: "rgba(255,0,3,0.2)", + backgroundColor: "rgba(255,0,3,0.2)", + fill:false + } + , + { + label:"Note Student 2", + data: [ + 1,2,3,4 ] + ,borderColor: 'rgba(0,255,0,0.2)' + , backgroundColor: 'rgba(0,255,3,0.2)' + ,fill:false + + }, + { + label:"Note Student 3", + data: [ + 5,2,4,6] + ,borderColor: 'rgba(0,255,0,0.2)' + , backgroundColor: 'rgba(0,255,3,0.2)' + ,fill:false + + }] + }, + + options: {legend:{display:false}} + });*/ + }); +}); + +// hier noch dynamik ergänzen, damit der Student und die Gruppe ausgelesen werden + +$(document).ready(function () { + $('#ProblemGrp1').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp1').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); + +$(document).ready(function () { + $('#ProblemGrp1S1').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp1S1').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); +$(document).ready(function () { + $('#ProblemGrp1S2').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp1S2').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); +$(document).ready(function () { + $('#ProblemGrp2').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp2').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); +$(document).ready(function () { + $('#ProblemGrp2S3').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp2S3').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); +$(document).ready(function () { + $('#ProblemGrp2S4').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp2S4').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); +$(document).ready(function () { + $('#ProblemGrp3').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp3').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); +$(document).ready(function () { + $('#ProblemGrp3S5').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp3S5').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); +$(document).ready(function () { + $('#ProblemGrp3S6').on('click',function () { + var alarm = prompt("hier gibt es Unstimmigeiten","Vorgeschlagene Note:") + if (alarm === "1"||alarm=="2"||alarm=="3"||alarm=="4"||alarm=="5"||alarm=="6") { + + var dataP= JSON.stringify({"adressat":true,"student": { + "projectId": getQueryVariable("projectId"), + "studentId": "fgnxnw" + }, "deadline":new Date(), + "bewertender": { + "projectId": getQueryVariable("projectId"), + "studentId": document.getElementById("user").innerText + }, + "projektId":getQueryVariable("projectId"), + "bewertung":alarm + }); + $.ajax({ + url: "../rest/assessments2/calculate2", + type: 'POST', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + data: dataP, + success: function (response) { + document.getElementById('ProblemGrp3S6').innerHTML=response; + }, + error: function (a,b,c) { + alert('some error' + b); + } + }) + } + else{ + window.alert("Bitte eine Zahl zwischen eins und 6 angeben") + } + }); +}); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Customizable-Carousel-swipe-enabled.js b/gemeinsamforschen/src/main/webapp/libs/js/Customizable-Carousel-swipe-enabled.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/Customizable-Carousel-swipe-enabled.js rename to gemeinsamforschen/src/main/webapp/libs/js/Customizable-Carousel-swipe-enabled.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js b/gemeinsamforschen/src/main/webapp/libs/js/Quiz-docent.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js rename to gemeinsamforschen/src/main/webapp/libs/js/Quiz-docent.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js b/gemeinsamforschen/src/main/webapp/libs/js/Quiz.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/Quiz.js rename to gemeinsamforschen/src/main/webapp/libs/js/Quiz.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Sidebar-Menu.js b/gemeinsamforschen/src/main/webapp/libs/js/Sidebar-Menu.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/Sidebar-Menu.js rename to gemeinsamforschen/src/main/webapp/libs/js/Sidebar-Menu.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationRest.js b/gemeinsamforschen/src/main/webapp/libs/js/annotationRest.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/annotationRest.js rename to gemeinsamforschen/src/main/webapp/libs/js/annotationRest.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js b/gemeinsamforschen/src/main/webapp/libs/js/annotationScript.js similarity index 93% rename from gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js rename to gemeinsamforschen/src/main/webapp/libs/js/annotationScript.js index b6f25d8c8adba325836a6a282a147429b155dd34..efc433eacb4af4735bab281066f3ed0703d80269 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js +++ b/gemeinsamforschen/src/main/webapp/libs/js/annotationScript.js @@ -267,10 +267,30 @@ function displayAnnotation(annotation) { dateIcon = "fas fa-clock"; } + // declare variables + let display, input, filter, user, title, comment; + input = $('#annotation-search'); + filter = input.val().toLowerCase(); + + user = annotation.userToken.toLowerCase(); + title = annotation.body.title.toLowerCase(); + comment = annotation.body.comment.toLowerCase(); + + // hiding based on user, title and comment + if (user.indexOf(filter) > -1 || + title.indexOf(filter) > -1 || + comment.indexOf(filter) > -1) { + display = '' + } + else { + display = 'none' + } + // insert annotation card list.prepend( // list element $('<li>') + .css('display', display) .attr('class', 'listelement') .append( // annotation card @@ -296,7 +316,7 @@ function displayAnnotation(annotation) { $('<i>').attr('class', 'fas fa-user') ) .append( - $('<span>').append(annotation.userToken) + $('<span>').attr('class', 'annotation-header-data-user').append(annotation.userToken) ) ) .append( @@ -371,11 +391,9 @@ function displayAnnotation(annotation) { .mouseleave(function () { deleteHighlightedText(); }) - .append(function () { - if ($('#annotations li').filter( ".listelement" ).length > 0) { - return $('<div>').attr('class', 'spacing') - } - }) + .append( + $('<div>').attr('class', 'spacing') + ) ); } @@ -791,3 +809,32 @@ function isAnnotationInRange(start, end) { } return false; } + +/** + * Display or hide annotations based on filter string + */ +function searchAnnotation() { + // declare variables + let input, filter; + input = $('#annotation-search'); + filter = input.val().toLowerCase(); + + // iterate over annotation card and hide those who don't match the search query + $('#annotations').find('li').each(function () { + let user, title, comment; + user = $(this).find('.annotation-header-data-user').text().toLowerCase(); + title = $(this).find('.annotation-header-data-title').text().toLowerCase(); + comment = $(this).find('.annotation-body-text').text().toLowerCase(); + + // hiding based on user, title and comment + if (user.indexOf(filter) > -1 || + title.indexOf(filter) > -1 || + comment.indexOf(filter) > -1) { + $(this).css('display', '') + } + else { + $(this).css('display', 'none') + } + }); + +} diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationWebsocket.js b/gemeinsamforschen/src/main/webapp/libs/js/annotationWebsocket.js similarity index 96% rename from gemeinsamforschen/src/main/webapp/assets/js/annotationWebsocket.js rename to gemeinsamforschen/src/main/webapp/libs/js/annotationWebsocket.js index 5c3ced1b8d2017cf5e7365a17306d90c6ba37d49..585b09c007d0a3a28bf8c9a802fec7397fbe9974 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/annotationWebsocket.js +++ b/gemeinsamforschen/src/main/webapp/libs/js/annotationWebsocket.js @@ -8,7 +8,6 @@ function connect(targetId, targetCategory) { ws.onmessage = function (e) { var message = JSON.parse(e.data); - console.log(message.from) if (message.type === "CREATE") { // get annotation from server diff --git a/gemeinsamforschen/src/main/webapp/assets/js/assessmentCalculator.js b/gemeinsamforschen/src/main/webapp/libs/js/assessmentCalculator.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/assessmentCalculator.js rename to gemeinsamforschen/src/main/webapp/libs/js/assessmentCalculator.js diff --git a/gemeinsamforschen/src/main/webapp/libs/js/changePhase.js b/gemeinsamforschen/src/main/webapp/libs/js/changePhase.js new file mode 100644 index 0000000000000000000000000000000000000000..d35d4ceb258534952e37a952450705f2c0f24b4d --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/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/createJournal.js b/gemeinsamforschen/src/main/webapp/libs/js/createJournal.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/createJournal.js rename to gemeinsamforschen/src/main/webapp/libs/js/createJournal.js diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createProject.js b/gemeinsamforschen/src/main/webapp/libs/js/createProject.js new file mode 100644 index 0000000000000000000000000000000000000000..696572480960c61746fcf08f4f70d407a9037d95 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createProject.js @@ -0,0 +1,26 @@ +$(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/libs/js/createQuiz.js similarity index 73% rename from gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js rename to gemeinsamforschen/src/main/webapp/libs/js/createQuiz.js index b8e097d0a5e1ae22d441c4cc3ac79d3d04c21ab6..37413173379a5a73600abf21938d1ef9be06dede 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js +++ b/gemeinsamforschen/src/main/webapp/libs/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/libs/js/createReportBibo.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportBibo.js new file mode 100644 index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportBibo.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportConcept.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportConcept.js new file mode 100644 index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportConcept.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportDo.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportDo.js new file mode 100644 index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportDo.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportEvaluation.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportEvaluation.js new file mode 100644 index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportEvaluation.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportMethod.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportMethod.js new file mode 100644 index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportMethod.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportOverview.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportOverview.js new file mode 100644 index 0000000000000000000000000000000000000000..1c28d5e60c9e92d28fa0955d73310f5f63fb10c3 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportOverview.js @@ -0,0 +1,21 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#uploader').on('click', function(){ + //location.href="researchReportTitle.jsp?token="+getUserTokenFromUrl(); + //boolean uploaded=true; + }); + $('#backLink').on('click', function(){ + location.href = "overview-student.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportTitle.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportProgress.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportProgress.js new file mode 100644 index 0000000000000000000000000000000000000000..943d90fccab49e3b57a87cbfca5382cc6e6cf68f --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportProgress.js @@ -0,0 +1,41 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + + $('#title').on('click', function(){ + location.href = "researchReportTitle.jsp?token=" + student + "&projectId=" + project; + return false; + }); + $('#recherche').on('click', function(){ + location.href = "researchReportRecherche.jsp?token=" + student + "&projectId=" + project; + return false; + }); + $('#bibo').on('click', function(){ + location.href = "researchReportBibo.jsp?token=" + student + "&projectId=" + project; + return false; + }); + $('#question').on('click', function(){ + location.href = "researchReportQuestion.jsp?token=" + student + "&projectId=" + project; + return false; + }); + $('#concept').on('click', function(){ + location.href = "researchReportConcept.jsp?token=" + student + "&projectId=" + project; + return false; + }); + $('#method').on('click', function(){ + location.href = "researchReportMethod.jsp?token=" + student + "&projectId=" + project; + return false; + }); + $('#reportDo').on('click', function(){ + location.href = "researchReportDo.jsp?token=" + student + "&projectId=" + project; + return false; + }); + $('#evaluation').on('click', function(){ + location.href = "researchReportEvaluation.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportQuestion.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportQuestion.js new file mode 100644 index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportQuestion.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportRecherche.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportRecherche.js new file mode 100644 index 0000000000000000000000000000000000000000..f081bae605541728a5ca619aa6b5a8b792133d20 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportRecherche.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/createReportTitle.js b/gemeinsamforschen/src/main/webapp/libs/js/createReportTitle.js new file mode 100644 index 0000000000000000000000000000000000000000..d158a2933ed6cd848caecf9035cc2c037050a207 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/createReportTitle.js @@ -0,0 +1,17 @@ +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + $('#backLink').on('click', function(){ + location.href = "createReportOverview.jsp?token=" + student + "&projectId=" + project; + return false; + }); + + $('#forwardLink').on('click', function(){ + location.href = "researchReportResearch.jsp?token=" + student + "&projectId=" + project; + return false; + }); + +}) diff --git a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js b/gemeinsamforschen/src/main/webapp/libs/js/e-portfolio.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js rename to gemeinsamforschen/src/main/webapp/libs/js/e-portfolio.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js b/gemeinsamforschen/src/main/webapp/libs/js/editDescription.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/editDescription.js rename to gemeinsamforschen/src/main/webapp/libs/js/editDescription.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/enrollProject.js b/gemeinsamforschen/src/main/webapp/libs/js/enrollProject.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/enrollProject.js rename to gemeinsamforschen/src/main/webapp/libs/js/enrollProject.js diff --git a/gemeinsamforschen/src/main/webapp/libs/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/libs/js/finalAssessment.js new file mode 100644 index 0000000000000000000000000000000000000000..0f57c3bec407e642306c68bb0fed7651af94a53b --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/finalAssessment.js @@ -0,0 +1,181 @@ +$(document).ready(function () { + checkAssessementPhase(); + + + $('#notAllRated').hide(); + $(".carousel").carousel({ + interval: false + }); + buildTablesForPeers(); + + $('#assessThePeer').on("click", function () { + assessPeer(); + }); +}); + + +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.length); + let rateThis = ['responsibility', 'partOfWork', 'cooperation', 'communication', 'autonomous']; + + ///////read values from html/////// + 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++) { + let category = rateThis[rate]; + workRating[category] = ($('input[name=' + rateThis[rate] + peerStudents[peer].id + ']:checked').val()); + } + + peerRating.workRating = workRating; + //////write values in Post-Variable + 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) { + $('#notAllRated').show(); + return; + } + } + } + let projectId = $('#projectId').html().trim(); + $.ajax({ + 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(); + }, + error: function (a, b, c) { + + } + }); +} diff --git a/gemeinsamforschen/src/main/webapp/libs/js/footer.js b/gemeinsamforschen/src/main/webapp/libs/js/footer.js new file mode 100644 index 0000000000000000000000000000000000000000..9407ef60d1a1c1af5d8bce6c5dc1e9c1835645bc --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/footer.js @@ -0,0 +1,3 @@ +$(document).ready(function(){ + +}); diff --git a/gemeinsamforschen/src/main/webapp/libs/js/givepeerfeedback.js b/gemeinsamforschen/src/main/webapp/libs/js/givepeerfeedback.js new file mode 100644 index 0000000000000000000000000000000000000000..58721539a34d8a5af868d09fd6d25c6e87d8061f --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/givepeerfeedback.js @@ -0,0 +1,82 @@ + +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + + + var peerfeedbackID = getQueryVariable("Peerfeedback"); + console.log(peerfeedbackID); + var peerfeedbackID = "a3cef66d-e1b7-4030-8fcd-1413d6e77ba0"; + var sender = "sender"; + console.log(peerfeedbackID); + //if(peerfeedbackID) { + $.ajax({ + url: "../rest/peerfeedback/"+sender //peerfeedbackID {id} + + }).then(function (data) { + //$('#editor').append(data.descriptionMD); + console.log("function1"); + loadFeedback(data); + console.log("function2"); + + //document.getElementById("Peerfeedback").innerHTML = data.text +"text"; + //document.write(data); + //console.log(data); + /** + var newDiv = document.createElement("div"); + var newContent = document.createTextNode(data.text); + newDiv.appendChild(newContent); // füge den Textknoten zum neu erstellten div hinzu. + + // füge das neu erstellte Element und seinen Inhalt ins DOM ein + var currentDiv = document.getElementById("div1"); + currentDiv.appendChild(newDiv); + //document.body.insertBefore(newDiv, currentDiv); + */ + //$('#peerfeedbackID').val(peerfeedbackID); + console.log(data); + }); + // } + function loadFeedback(data) { + for (var feedback in data) { + /**var feedbackString = '<div class="pf-container">' + + '<div class="journal-date"> ' + + data[feedback].timestamp + + '</div>' + + '<div class="journal-name">' + + // TODO id to name + data[feedback].text + + '</div>' + + '<div class="journal-category">' + + data[feedback].id + + '</div>' + + '<div class="journal-edit" align="right">'; + + feedbackString = feedbackString + '</div>' + + '<div class="journal-text">' + + data[feedback].entryHTML + + '</div>' + + '</div><br><br>';*/ + + var newdiv = document.createElement("div"); + + + //newdiv.innerHTML = data[feedback].text; + //newdiv.append(data[feedback].text); + newdiv.insertAdjacentHTML('beforeend',data[feedback].text); + newdiv.className = "feedback-container"; + //var text = convertMarkdownToHtml(data[feedback].text); + //var newcontent = document.createTextNode(data[feedback].text); + //newdiv.appendChild(newcontent); // füge den Textknoten zum neu erstellten div hinzu. + + // füge das neu erstellte Element und seinen Inhalt ins DOM ein + var currentdiv = document.getElementById("div1"); + currentdiv.appendChild(newdiv); + //document.body.insertBefore(newDiv, currentDiv); + //document.getElementById("div").innerHTML = data[feedback].text; + + //$('.Peerfeedback').append(feedbackString) + }}; +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/grading.js b/gemeinsamforschen/src/main/webapp/libs/js/grading.js new file mode 100644 index 0000000000000000000000000000000000000000..5f6823dab004b402bdb5e4eccbb87a88c8541f53 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/grading.js @@ -0,0 +1,8 @@ +$(document).ready(function () { + $('#ProjektFinalisieren').on('click',function () { + + document.getElementById("ProjektFinalisieren").style.color="magenta"; + + + }); +}); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/jquery.min.js b/gemeinsamforschen/src/main/webapp/libs/js/jquery.min.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/jquery.min.js rename to gemeinsamforschen/src/main/webapp/libs/js/jquery.min.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/jquery.tagsinput.js b/gemeinsamforschen/src/main/webapp/libs/js/jquery.tagsinput.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/jquery.tagsinput.js rename to gemeinsamforschen/src/main/webapp/libs/js/jquery.tagsinput.js diff --git a/gemeinsamforschen/src/main/webapp/libs/js/overview-docent.js b/gemeinsamforschen/src/main/webapp/libs/js/overview-docent.js new file mode 100644 index 0000000000000000000000000000000000000000..57444d11682ab734826fd91d6b29f3619847520a --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/overview-docent.js @@ -0,0 +1,14 @@ +$(document).ready(function(){ + $('#project1Link').on('click', function(){ + window.location.href="project-docent_CG.jsp?token="+getUserTokenFromUrl(); + location.href="project-docent_CG.jsp?token="+getUserTokenFromUrl()+'&projectId='+'gemeinsamForschen'; + }); + $('#project2Link').on('click', function(){ + window.location.href="project-docent_CG.jsp?token="+getUserTokenFromUrl(); + location.href="project-docent_CG.jsp?token="+getUserTokenFromUrl()+'&projectId='+'Kaleo'; + }); + $('#createProject').on('click', function(){ + location.href="createProject.jsp?token="+getUserTokenFromUrl(); + }); + +}); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/overview-student.js b/gemeinsamforschen/src/main/webapp/libs/js/overview-student.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/overview-student.js rename to gemeinsamforschen/src/main/webapp/libs/js/overview-student.js diff --git a/gemeinsamforschen/src/main/webapp/libs/js/peerfeedback.js b/gemeinsamforschen/src/main/webapp/libs/js/peerfeedback.js new file mode 100644 index 0000000000000000000000000000000000000000..beb297c9c329233a74183dbcd35034cd89be3106 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/peerfeedback.js @@ -0,0 +1,55 @@ +/** + * POST: Save an peerfeedback in the database + * + * @param Peer2PeerFeedback The post request + * @param responseHandler The response handler + */ +/**function createPeerfeedback(Peer2PeerFeedback, responseHandler) { + var url = "../rest/peerfeedback/save"; + var json = JSON.stringify(Peer2PeerFeedback); + $.ajax({ + url: url, + type: "POST", + data: json, + contentType: "application/json", + dataType: "json", + success: function (response) { + responseHandler(response); + } + }); +}*/ + +var student = getQueryVariable("token"); +var project = getQueryVariable("projectId"); + +function go(){ + var a = document.getElementById("editor").valueOf().toString(); + var b = document.getElementById("as"); + b.innerHTML = a.toString(); + + //b = document.getElementById("editor").innerHTML; + + +} + +$(document).ready(function() { + $('#student').val(student); + $('#project').val(project); + + $.ajax({ + url: "../rest/peerfeedback/save" + }).then(function (data) { + $('#editor').append(data.descriptionMD); + + /** //TODO preselet in select tags + new InscrybMDE({ + element: document.getElementById("editor"), + spellChecker: false, + forceSync: true, + });*/ + + //console.log(data); + location.href="givefeedback.jsp?token=" + getUserTokenFromUrl(); + alert("Feedback wurde gesendet!"); + }); +}) \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/libs/js/profile.js b/gemeinsamforschen/src/main/webapp/libs/js/profile.js new file mode 100644 index 0000000000000000000000000000000000000000..63b2a09e747bacbc099f3f188ccc0d1222799881 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/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/project-student.js b/gemeinsamforschen/src/main/webapp/libs/js/project-student.js similarity index 93% rename from gemeinsamforschen/src/main/webapp/assets/js/project-student.js rename to gemeinsamforschen/src/main/webapp/libs/js/project-student.js index 520600a93a3444968585c2d382cd2497acb5c0b5..91e62e10ffcba41e1d9200d943e1ae662256b591 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/project-student.js +++ b/gemeinsamforschen/src/main/webapp/libs/js/project-student.js @@ -36,9 +36,17 @@ $(document).ready(function(){ location.href="viewfeedback.jsp?token="+getUserTokenFromUrl(); }); + $('.annotationview').click(function () { + location.href="annotation-document.jsp?token="+getUserTokenFromUrl(); + }); + $('#btnUnstructuredUpload').click(function () { location.href="unstructured-upload.jsp?token="+getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId"); }) + + $('.viewprojectstudent').click(function () { + location.href="project-student.jsp?token="+getUserTokenFromUrl(); + }) }); /** diff --git a/gemeinsamforschen/src/main/webapp/libs/js/project-student.js.orig b/gemeinsamforschen/src/main/webapp/libs/js/project-student.js.orig new file mode 100644 index 0000000000000000000000000000000000000000..91e62e10ffcba41e1d9200d943e1ae662256b591 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/project-student.js.orig @@ -0,0 +1,110 @@ +$(document).ready(function(){ + // fetch all submission part project representations from database + getSubmissionPartsByProjectId(getQueryVariable("projectId"), function (response) { + + // iterate over response and display each element + for (let i = 0; i < response.length; i++) { + displaySubmission(response[i].user, response[i].category, response[i].fullSubmissionId); + } + + // add click listener to feedback buttons + $('.annotationview').click(function () { + let fullSubmissionId = $(this).closest("li").data("fullSubmissionId"); + let category = $(this).closest("li").data("category"); + location.href="annotation-document.jsp?token=" + getUserTokenFromUrl() + + "&projectId=" + getQueryVariable("projectId") + + "&fullSubmissionId=" + fullSubmissionId + + "&category=" + category; + }); + + }, function () { + // display empty view + displayEmptyView() + }); + + /* + var memberTable = $('#myGroupMembers'); + memberTable.hide(); + $('#nextPhase').on('click',function(){ + memberTable.show(); + }); + */ + $('.givefeedback').click(function () { + location.href="givefeedback.jsp?token="+getUserTokenFromUrl(); + }); + $('.viewfeedback').click(function () { + location.href="viewfeedback.jsp?token="+getUserTokenFromUrl(); + }); + + $('.annotationview').click(function () { + location.href="annotation-document.jsp?token="+getUserTokenFromUrl(); + }); + + $('#btnUnstructuredUpload').click(function () { + location.href="unstructured-upload.jsp?token="+getUserTokenFromUrl() + "&projectId=" + getQueryVariable("projectId"); + }) + + $('.viewprojectstudent').click(function () { + location.href="project-student.jsp?token="+getUserTokenFromUrl(); + }) +}); + +/** + * Display category of submission part in list + * + * @param user The user of the submission part + * @param category The category of the submission part + * @param fullSubmissionId The id of the full submission the submission part belongs to + */ +function displaySubmission(user, category, fullSubmissionId) { + // build link + $('#submissionUpload').append( + $('<li>') + .append($('<span>').append(category.toUpperCase() + " eingereicht")) + .append($('<a>').attr("class", "annotationview").attr("role", "button") + .append($('<label>').css("font-size", "10px") + .append($('<i>').attr("class", "far fa-comments").css("font-size", "15px")) + .append("feedback") + ) + ) + // add data to link + .data("fullSubmissionId", fullSubmissionId) + .data("category", category) + ); + +} + +/** + * Display a not found message if there are no submission parts in the database (or on error) + */ +function displayEmptyView() { + // build link + $('#submissionUpload').append( + $('<li>') + .append($('<span>').append("keine Daten gefunden")) + ); +} + +/** + * GET: Get all representations of a submission part for a given project id + * + * @param projectId The id of the project + * @param responseHandler The response handler + * @param errorHandler The error handler + */ +function getSubmissionPartsByProjectId(projectId, responseHandler, errorHandler) { + var url = "../rest/submissions/project/" + projectId; + $.ajax({ + url: url, + type: "GET", + dataType: "json", + success: function (response) { + // handle the response + responseHandler(response); + }, + error: function () { + // handle the error + errorHandler(); + } + }) +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js b/gemeinsamforschen/src/main/webapp/libs/js/rateContribution.js similarity index 72% rename from gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js rename to gemeinsamforschen/src/main/webapp/libs/js/rateContribution.js index b7e3c6b5fcaafd34e8c7c7066027d6d1a7d6069c..402b474a1d1d3f9816757b53e8d7b3fed725e750 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js +++ b/gemeinsamforschen/src/main/webapp/libs/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/register.js b/gemeinsamforschen/src/main/webapp/libs/js/register.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/register.js rename to gemeinsamforschen/src/main/webapp/libs/js/register.js diff --git a/gemeinsamforschen/src/main/webapp/libs/js/researchReportUpload.js b/gemeinsamforschen/src/main/webapp/libs/js/researchReportUpload.js new file mode 100644 index 0000000000000000000000000000000000000000..b892da3eca8570202ea7d674579df2cfe5cf3002 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/researchReportUpload.js @@ -0,0 +1,26 @@ +//import * as FilePond from 'filepond'; +//import FilePond from 'filepond'; +//import FilepondPluginImagePreview from 'filepond-plugin-image-preview'; + + +FilePond.registerPlugin( + FilePondPluginImagePreview, +); + +//document.body.appendChild(pond.element); +const inputElement = document.querySelector('input[type="file"]'); +const pond = FilePond.create( + inputElement, + { + allowImagePreview: true, + name: 'filepond', + labelIdle: 'Hier<span class="filepond--label-action"> Browse </span>', + } +); + + +FilePond.setOptions( + { + server: 'test/' //Here insert server + } +); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/assets/js/showProjects.js b/gemeinsamforschen/src/main/webapp/libs/js/showProjects.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/showProjects.js rename to gemeinsamforschen/src/main/webapp/libs/js/showProjects.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/specificRequirement.js b/gemeinsamforschen/src/main/webapp/libs/js/specificRequirement.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/specificRequirement.js rename to gemeinsamforschen/src/main/webapp/libs/js/specificRequirement.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/specificSkills.js b/gemeinsamforschen/src/main/webapp/libs/js/specificSkills.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/specificSkills.js rename to gemeinsamforschen/src/main/webapp/libs/js/specificSkills.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js b/gemeinsamforschen/src/main/webapp/libs/js/takeQuiz.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js rename to gemeinsamforschen/src/main/webapp/libs/js/takeQuiz.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/unstructuredAnnotation.js b/gemeinsamforschen/src/main/webapp/libs/js/unstructuredAnnotation.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/unstructuredAnnotation.js rename to gemeinsamforschen/src/main/webapp/libs/js/unstructuredAnnotation.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/unstructuredRest.js b/gemeinsamforschen/src/main/webapp/libs/js/unstructuredRest.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/unstructuredRest.js rename to gemeinsamforschen/src/main/webapp/libs/js/unstructuredRest.js diff --git a/gemeinsamforschen/src/main/webapp/assets/js/unstructuredUpload.js b/gemeinsamforschen/src/main/webapp/libs/js/unstructuredUpload.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/unstructuredUpload.js rename to gemeinsamforschen/src/main/webapp/libs/js/unstructuredUpload.js diff --git a/gemeinsamforschen/src/main/webapp/libs/js/utility.js b/gemeinsamforschen/src/main/webapp/libs/js/utility.js new file mode 100644 index 0000000000000000000000000000000000000000..f1e57818483d03a870abf92d5e24b23495bab11c --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/libs/js/utility.js @@ -0,0 +1,76 @@ +$(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() { + 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']; + +} + +function getQueryVariable(variable) { + let query = window.location.search.substring(1); + let vars = query.split("&"); + for (let i = 0; i < vars.length; i++) { + let pair = vars[i].split("="); + if (pair[0] === variable) { + return pair[1]; + } + } + return (false); +} + diff --git a/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js b/gemeinsamforschen/src/main/webapp/libs/js/viewQuiz.js similarity index 100% rename from gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js rename to gemeinsamforschen/src/main/webapp/libs/js/viewQuiz.js 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/annotation-document.jsp b/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp index eade463667e6887d498e754002ed7fdb61f9a2a3..3e7d05ba8463e64f6e937f870ef3e1c32dddbd31 100644 --- a/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/annotation-document.jsp @@ -64,6 +64,7 @@ </div> </div> <div class="rightcolumn"> + <input type="text" id="annotation-search" onkeyup="searchAnnotation()" placeholder="Suchen..."> <div class="rightcontent"> <ol id="annotations"> </ol> 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/givefeedback.jsp b/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp index c01c2a3c665c4a23f249fac3e5cba112107e885e..688a5df9105e5918f12ae6464bf5f483f868a37b 100644 --- a/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/givefeedback.jsp @@ -1,10 +1,13 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> + <%-- <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>muster-gemeinsam-forschen</title> @@ -21,37 +24,27 @@ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> <script src="../assets/js/utility.js"></script> <script src="../assets/js/project-student.js"></script> + <link rel="stylesheet" type="text/css" href="../assets/css/editDescription.css"> + <script src="../assets/js/jquery.min.js"></script> + <script src="../assets/bootstrap/js/bootstrap.min.js"></script> + <script src="../assets/js/Sidebar-Menu.js"></script> + <script src="../assets/js/editDescription.js"></script> + --%> + + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> + <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> + <link rel="stylesheet" type="text/css" href="../assets/css/create-journal.css"> + <script src="../assets/js/utility.js"></script> + <script src="../assets/js/project-student.js"></script> + <script src="../assets/js/peerfeedback.js"></script> + <omniDependencies:omniDependencies/> </head> <body> <div id="wrapper"> - <menu:menu></menu:menu> - + <menu:menu/> <div class="page-content-wrapper"> - <div class="container-fluid"> - <h1 id="projectId"> PeerFeedback</h1> - </div> - <div align="right" class="dropdown" > - <button style= "position: absolute; right: 50px;" class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"> - - <i class="glyphicon glyphicon-envelope"></i> - </button> - - <ul class="dropdown-menu"> - <li><a class="viewfeedback" role="button">Feedback A</a></li> - <li><a class="viewfeedback" role="button">Feedback B</a></li> - <li><a class="viewfeedback" role="button">Feedback C</a></li> - </ul> - - <a href="#"> - <span class="glyphicon glyphicon-cog" style="font-size:29px;margin-right:30px;margin-top:3px;"></span> - </a> - - </div> - - <div> - - </div> + <headLine:headLine/> <div> <table> <tr> @@ -85,110 +78,61 @@ </label> </div> <hr /> - <div class="line-spacer"></div> - <td id="Peerfeedback" valign="top"> + <div> + <table> + <tr> + <td id="yourContent"> + <h2> Schreibe dein Feedback! </h2> - <div style="height:100px;padding-bottom:100px;"> - <textarea id="demo1"> - Das ist ein Test! - </textarea> - </div> + <form id= "form" method="POST" action="../rest/peerfeedback/save"> + <%--id="journalform" class="form-journal"--%> + <input type="hidden" id="student" name="student"> + <input type="hidden" id="project" name="project"> + <input type="hidden" id="feedbackid" name="id"> + <input type="hidden" id="reciever" name="reciever"> + <input type="hidden" id="sender" name="sender"> + <input type="hidden" id="filename" name="filename"> + <input type="hidden" id="category" name="category"> + <input type="hidden" id="filename" name="filename"> - <button onclick="save()">Speichern</button> - <p id = "output"> Output... </p> - <script> - var editor = new InscrybMDE({ - element: document.getElementById("demo1"), - spellChecker: false, - //toolbar: ["bold", "italic", "heading", "|", "quote", "table", "code", "|" , "side-by-side", "fullscreen"], - minHeight: "80px", - }); + <div class="journal-form-container"> + <div class="journal-form-editor"> + <textarea id="editor" name="text"></textarea> <%--form="journalform"--%> + </div> - editor.style = "min-height: 100px"; + <div class="journal-form-buttons"> + <input class="btn btn-default btn-sm" type="submit"> + <a id="backLink" class="btn btn-default btn-sm"> Zurück </a> + </div> - function save() { - console.log("save"); - console.log(editor.value()); + <div> + <p id="as">Now what</p> + <input type="button" value="get txt" onclick="go()" /> + </div> - var converter = new showdown.Converter(), - text = editor.value(), - html = converter.makeHtml(text); + </div> + </form> - document.getElementById('output').innerHTML = html;11 - } - </script> + </td> + </tr> + </table> + </div> + - <button class="btn btn-secondary" onclick="goBack()">Zurück</button> <script> function goBack() { window.history.back(); } </script> - </td> - - <td id="chat"> - <div class="card"> - <div class="card-header"> - <h6 class="mb-0">Gruppen+Projekt Chat</h6> - </div> - <div class="card-body"> - <ul class="list-group"> - <li class="list-group-item"> - <div class="media"> - <div></div> - <div class="media-body"> - <div class="media" style="overflow:visible;"> - <div><img src="../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> + </td> + + </tr> </table> </div> @@ -198,6 +142,7 @@ <script src="../assets/js/jquery.min.js"></script> <script src="../assets/bootstrap/js/bootstrap.min.js"></script> <script src="../assets/js/Sidebar-Menu.js"></script> +<script src="../assets/js/createJournal.js"></script> </body> </html> \ No newline at end of file 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-docent_CG.jsp b/gemeinsamforschen/src/main/webapp/pages/project-docent_CG.jsp new file mode 100644 index 0000000000000000000000000000000000000000..ab4ab32c16da0455e463e051cde43c30f1dea16a --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/pages/project-docent_CG.jsp @@ -0,0 +1,166 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> + +<!DOCTYPE html> +<html> + + +<head> + <omniDependencies:omniDependencies/> + <script src="../assets/js/utility.js"></script> + <script src="../assets/js/AlertAssessmentOutlier.js"></script> + <script src="../assets/js/grading.js"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js"></script> +</head> + + + +<body> +<div id="wrapper"> + <menu:menu></menu:menu> + + <div class="page-content-wrapper"> + <div class="container-fluid"> + <headLine:headLine/> + <button class="btn btn-default" type="button">Gruppen erstellen</button> + <button class="btn btn-default" type="button" id="ProjektFinalisieren">Projekt finalisieren</button> + <button class="btn btn-default" type="button">Exportiere Projektergebnisse</button> + </div> + <p hidden id="ProjektId">Projekt1</p> + <button + class="btn btn-default" type="button">Exportiere Zwischenstand</button><button class="btn btn-default" type="button">Quizfrage erstellen</button> + <div> + <div class="container"> + <div class="row"> + <div class="col-md-4"> + <div class="table-responsive" style="width:294px;"> + <table class="table"> + <thead> + <tr> + <th id="testAjax">Gruppe1 </th> + <th>Beiträge </th> + <th> <button id="ProblemGrp1">!</button> </th> + </tr> + </thead> + <tbody> + <tr> + <td>student1 </td> + <td>Interfaces </td> + <th> <button id="ProblemGrp1S1">!</button> </th> + </tr> + <tr> + <td>student2 </td> + <td>Design </td> + <th> <button id="ProblemGrp1S2">!</button> </th> + </tr> + </tbody> + </table> + </div> + <div class="table-responsive" style="width:294px;"> + <table class="table"> + <thead> + <tr> + <th>Gruppe2 </th> + <th>Beiträge </th> + <th> <button id="ProblemGrp2">!</button> </th> + </tr> + </thead> + <tbody> + <tr> + <td>student3 </td> + <td>Interfaces </td> + <th> <button id="ProblemGrp2S3">!</button> </th> + </tr> + <tr> + <td>student4 </td> + <td>Design </td> + <th> <button id="ProblemGrp2S4">!</button> </th> + </tr> + </tbody> + </table> + </div> + <div class="table-responsive" style="width:294px;"> + <table class="table"> + <thead> + <tr> + <th>Gruppe3 </th> + <th>Beiträge </th> + <th> <button id="ProblemGrp3">!</button> </th> + </tr> + </thead> + <tbody> + <tr> + <td>student5 </td> + <td>Interfaces </td> + <th> <button id="ProblemGrp3S5">!</button> </th> + </tr> + <tr> + <td>student6 </td> + <td>Design </td> + <th> <button id="ProblemGrp3S6">!</button> </th> + </tr> + </tbody> + </table> + </div> + </div> + <div class="col-md-4"> + <button id="DiaBlende">Zeitlicher Verlauf</button> + <canvas height="480" width="480", id = "Diagramm" ></canvas> + </div> + <div class="col-md-4"> + <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"></communication:chatWindow> +</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..ddb3cae7992b5aa6647c19e7386f54ffef99c2ed 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> @@ -102,92 +103,14 @@ </tr> </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> + <button onclick="goBack()" class="btn btn-secondary">Zurück</button> </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/project-student.jsp.orig b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig new file mode 100644 index 0000000000000000000000000000000000000000..a5671b8ada831eeef0162fca442adfced0d10762 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp.orig @@ -0,0 +1,187 @@ +<%@ 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 --> + + +<!DOCTYPE html> +<html> + +<head> + <omniDependencies:omniDependencies/> + <script src="../assets/js/project-student.js"></script> + <link rel="stylesheet" href="../assets/css/Community-ChatComments.css"> + +</head> + +<body> +<div id="wrapper"> + <menu:menu/> + + <div class="page-content-wrapper"> + <headLine:headLine/> + <div> + <table> + <tr> + <td id="yourContent"> + <h1>Feedbackable Students</h1> + <!-- here will be all the content --> + <table id="myGroupMembers"> + <tr> + + <td width="100px" valign="top"> + <h3>student1</h3> + <img src="../assets/img/1.jpg"> + <a href="#">student1@uni.de</a> + <hr> + <ul> + + <li> + Projektübersicht hochgeladen + <a class="annotationview" role="button"> + <label style="font-size:10px;"><i class="far fa-comments" + style="font-size:15px;"></i>feedback</label> + </a> + </li> + <li> + Blumen ins Hausaufgabenheft geklebt + <a class="annotationview" role="button"> + <label style="font-size:10px;"><i class="far fa-comments" + style="font-size:15px;"></i>feedback</label> + </a> + </li> + </ul> + </td> + <td></td> + + <td width="100px" valign="top"> + <h3>student2</h3> + <img src="../assets/img/2.jpg"> + <a href="#">student2@uni.de</a> + <hr> + <ul> + <li> + Blumen an Vegetarier verfüttert + <a class="annotationview" role="button"> + <label style="font-size:10px;"><i class="far fa-comments" + style="font-size:15px;"></i>feedback</label> + </a> + </li> + <li> + Literaturverzeichnis hochgeladen + <a class="annotationview" role="button"> + <label style="font-size:10px;"><i class="far fa-comments" + style="font-size:15px;"></i>feedback</label> + </a> + </li> + <li> + Die armen Vegetarier + <a class="annotationview" role="button"> + <label style="font-size:10px;"><i class="far fa-comments" + style="font-size:15px;"></i>feedback</label> + </a> + </li> + </ul> + </td> + <td></td> + + <td width="100px" valign="top"> + <h3>student3</h3> + <img src="../assets/img/3.jpg"> + <a href="#">student3@uni.de</a> + <hr> + <ul id="submissionUpload"> + </ul> + </td> + + </tr> + </table> + +<<<<<<< HEAD + <button onclick="goBack()" class="btn btn-secondary">Zurück</button> + + <script> + function goBack() { + window.history.back(); + } + </script> + + </td> + <td id="chat"> + <div class="card"> + <div class="card-header"> + <h6 class="mb-0">Gruppen+Projekt Chat</h6> + </div> + <div class="card-body"> + <ul class="list-group"> + <li class="list-group-item"> + <div class="media"> + <div></div> + <div class="media-body"> + <div class="media" style="overflow:visible;"> + <div><img src="../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> +======= + <button onclick="goBack()" class="btn btn-secondary">Zurueck</button> +>>>>>>> development_master + </td> + </tr> + </table> + </div> + </div> + <footer:footer/> + +</div> + +</body> + +</html> \ No newline at end of file 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/researchReportBibo.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp index d381386797e3f00c8ffbd18c46527e2cfafb0c8b..edda05a84cad978cd2f722ce55a37f38ca9c0d06 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportBibo.jsp @@ -1,21 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> - +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> @@ -23,19 +16,16 @@ -<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - <div class = "researchReportMenu"> - <nav> - <menu> - <menuitem><p><a href="">Gruppe</a></p> </menuitem> - <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem> - <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem> - <menuitem><p><a href="">Review</a></p></menuitem> - <menuitem><p><a href="">User</a></p></menuitem> - </menu> - </nav> - </div> <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 3/8</h1> @@ -50,26 +40,39 @@ <button class="researchReportButtons"><a href="researchReportQuestion.jsp">Speichern & weiter</a></button> <button class="researchReportButtons"><a href="researchReportRecherche.jsp"> Zurück </a></button> </div> + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond"> </input> + </div> + <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem> - <menuitem><a href="researchReportBibo.jsp"><font color="#green">Literaturverzeichnis</font></a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem> - <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem> - <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem> - <menuitem><a href="researchReportDo.jsp">Durchführung</a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem> + <menuitem><a id="title">Titel</a> </menuitem> + <menuitem><a id="recherche">Recherche</a> </menuitem> + <menuitem><a id="bibo"><font color="#green">Literaturverzeichnis</font></a> </menuitem> + <menuitem><a id="question">Forschnugsfrage</a> </menuitem> + <menuitem><a id="concept">Konzept</a></menuitem> + <menuitem><a id="method">Methodik</a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation">Evalution</a></menuitem> </menu> </nav> </div> -</form> + </form> + </td> + </tr> + </table> + </div> + </div> +</div> -<script> -</script> +<script src="../assets/js/createReportBibo.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp index e3329194ddd6e852c0675f67491510c48dfd0f5b..7e1516822394fcb490e0ebfc49a065b658cfd6e4 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportConcept.jsp @@ -1,21 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> - +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> @@ -25,17 +18,7 @@ <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - <div class = "researchReportMenu"> - <nav> - <menu> - <menuitem><p><a href="">Gruppe</a></p> </menuitem> - <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem> - <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem> - <menuitem><p><a href="">Review</a></p></menuitem> - <menuitem><p><a href="">User</a></p></menuitem> - </menu> - </nav> - </div> + <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 5/8</h1> @@ -50,27 +33,33 @@ <button class="researchReportButtons"><a href="researchReportMethod.jsp">Speichern & weiter</a></button> <button class="researchReportButtons"><a href="researchReportQuestion.jsp"> Zurück </a></button> </div> + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond"> </input> + </div> <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp"Titel</a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem> - <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem> - <menuitem><a href="researchReportConcept.jsp"><font color="#green">Konzept</font></a></menuitem> - <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem> - <menuitem><a href="researchReportDo.jsp">Durchführung</a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem> + <menuitem><a id="title">Titel</a> </menuitem> + <menuitem><a id="recherche">Recherche</a> </menuitem> + <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem> + <menuitem><a id="question">Forschnugsfrage</a> </menuitem> + <menuitem><a id="concept"><font color="#green">Konzept</font></a></menuitem> + <menuitem><a id="method">Methodik</a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation">Evalution</a></menuitem> </menu> </nav> </div> </form> -<script> -</script> +<script src="../assets/js/createReportConcept.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp index 2e61fc39949c13a82749b721846dbf9b316e00f6..8fe4788e758133981ca9f02ff0345f100e2de69a 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportDo.jsp @@ -1,21 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> - +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> @@ -23,19 +16,15 @@ -<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - - <div class = "researchReportMenu"> - <nav> - <menu> - <menuitem><p><a href="">Gruppe</a></p> </menuitem> - <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem> - <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem> - <menuitem><p><a href="">Review</a></p></menuitem> - <menuitem><p><a href="">User</a></p></menuitem> - </menu> - </nav> - </div> +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 7/8</h1> @@ -50,27 +39,39 @@ <button class="researchReportButtons"><a href="researchReportEvaluation.jsp">Speichern & weiter</a></button> <button class="researchReportButtons"><a href="researchReportMethod.jsp"> Zurück </a></button> </div> + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond"> </input> + </div> <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem> - <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem> - <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem> - <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem> - <menuitem><a href="researchReportDo.jsp"><font color="#green">Durchführung</font></a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem> + <menuitem><a id="title">Titel</a> </menuitem> + <menuitem><a id="recherche">Recherche</a> </menuitem> + <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem> + <menuitem><a id="question">Forschnugsfrage</a> </menuitem> + <menuitem><a id="concept">Konzept</a></menuitem> + <menuitem><a id="method"><font color="#green">Methodik</font></a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation">Evalution</a></menuitem> </menu> </nav> </div> -</form> + </form> + </td> + </tr> + </table> + </div> + </div> +</div> -<script> -</script> +<script src="../assets/js/createReportDo.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp index 57bea8045cf358e2b2ff765f684d102b49879246..14e034a250e36e161926ccc873a9c08727e7fc9c 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportEvaluation.jsp @@ -1,21 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> - +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> @@ -23,19 +16,15 @@ -<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - - <div class = "researchReportMenu"> - <nav> - <menu> - <menuitem><p><a href="">Gruppe</a></p> </menuitem> - <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem> - <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem> - <menuitem><p><a href="">Review</a></p></menuitem> - <menuitem><p><a href="">User</a></p></menuitem> - </menu> - </nav> - </div> +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 8/8</h1> @@ -50,27 +39,39 @@ <button class="researchReportButtons"><a href="project-student.jsp">Speichern & weiter</a></button> <button class="researchReportButtons"><a href="researchReportDo.jsp"> Zurück </a></button> </div> + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond"> </input> + </div> <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem> - <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem> - <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem> - <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem> - <menuitem><a href="researchReportDo.jsp">Durchführung</a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp"><font color="#green">Evalution</font></a></menuitem> + <menuitem><a id="title">Titel</a> </menuitem> + <menuitem><a id="recherche">Recherche</a> </menuitem> + <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem> + <menuitem><a id="question">Forschnugsfrage</a> </menuitem> + <menuitem><a id="concept">Konzept</a></menuitem> + <menuitem><a id="method">Methodik</a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation"><font color="#green">Evalution</font></a></menuitem> </menu> </nav> </div> -</form> + </form> + </td> + </tr> + </table> + </div> + </div> +</div> -<script> -</script> +<script src="../assets/js/createReportEvaluation.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp index cea25f4e97b9503d10ed2ddaa85ae698d6f43b01..1722e68b7d6ff471c3f4843d5dd3f843e47d9561 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportMethod.jsp @@ -1,21 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> - +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> @@ -23,19 +16,16 @@ -<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - <div class = "researchReportMenu"> - <nav> - <menu> - <menuitem><p><a href="">Gruppe</a></p> </menuitem> - <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem> - <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem> - <menuitem><p><a href="">Review</a></p></menuitem> - <menuitem><p><a href="">User</a></p></menuitem> - </menu> - </nav> - </div> <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 6/8</h1> @@ -50,27 +40,39 @@ <button class="researchReportButtons"><a href="researchReportDo.jsp">Speichern & weiter</a></button> <button class="researchReportButtons"><a href="researchReportConcept.jsp"> Zurück </a></button> </div> + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond"> </input> + </div> <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem> - <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem> - <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem> - <menuitem><a href="researchReportMethod.jsp"><font color="#green">Methodik</font></a></menuitem> - <menuitem><a href="researchReportDo.jsp">Durchführung</a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem> + <menuitem><a id="title">Titel</a> </menuitem> + <menuitem><a id="recherche">Recherche</a> </menuitem> + <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem> + <menuitem><a id="question">Forschnugsfrage</a> </menuitem> + <menuitem><a id="concept">Konzept</a></menuitem> + <menuitem><a id="method"><font color="#green">Methodik</font></a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation">Evalution</a></menuitem> </menu> </nav> </div> -</form> + </form> + </td> + </tr> + </table> + </div> + </div> +</div> -<script> -</script> +<script src="../assets/js/createReportMethod.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportOverview.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportOverview.jsp new file mode 100644 index 0000000000000000000000000000000000000000..014075eee00ae3a74cb07577d1df4d61ad550ea1 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportOverview.jsp @@ -0,0 +1,125 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> +<html> +<head> + <meta name="viewport" content="width=device-width, initial-scale=1", charset="utf-8"> + <omniDependencies:omniDependencies/> + <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> + <link rel="stylesheet" type="text/css" href="../assets/css/researchReportOverview.css"> + <script src="../assets/js/createReportOverview.js"></script> + <title>Forschungsbericht Ãœbersicht</title> + + +</head> + +<body> + +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportOverview" class="researchReportOverview"> + <div class = "researchReportTitlebar"> + <h1> Forschungsbericht Ãœbersicht</h1> + </div> + + + <div class="reports"> + <h2>Forschungberichte</h2> + <table> + <thead> + <tr> + <th>Titel</th> + <th>Autor</th> + <th>Placeholder</th> + </tr> + </thead> + <tbody> + <tr> + <td>Titel1</td> + <td>Autor1</td> + <td>1</td> + </tr> + <tr> + <td>Titel2</td> + <td>Autor2</td> + <td>2</td> + </tr> + <tr> + <td>Titel3</td> + <td>Autor3</td> + <td>3</td> + </tr> + </tbody> + </table> + </div> + + <!-- <div class="ResearchReportUpload"> + <h3>Gesamten Forschungsbericht hochladen </h3> + <input type="file" class="filepond" name="filepond"> + </div> --> + + <div class="feedbacks"> + <h2>Feedbacks</h2> + <table> + <thead> + <tr> + <th>Titel</th> + <th>Autor</th> + <th>Placeholder</th> + </tr> + </thead> + <tbody> + <tr> + <td>Titel1</td> + <td>Autor1</td> + <td>1</td> + </tr> + <tr> + <td>Titel2</td> + <td>Autor2</td> + <td>2</td> + </tr> + <tr> + <td>Titel3</td> + <td>Autor3</td> + <td>3</td> + </tr> + </tbody> + </table> + </div> + + + <div class="ResearchReportButtons"> + <button class="researchReportButtons"><a id="uploader">Upload File</a></button> + <button class="researchReportButtons"><a id="forwardLink">Bericht erstellen</a></button> + <button class="researchReportButtons"><a id="backLink">Zurück</a></button> + </div> + + </form> + </td> + </tr> + </table> + </div> + </div> +</div> + + + + +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> + + +</body> +</html> diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp index ec485438f6b2494072e76f5dbdffca885719f771..8b69897fa00c07c0042cd6b0e645272351ce9576 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportQuestion.jsp @@ -1,21 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> @@ -24,19 +18,16 @@ -<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - <div class = "researchReportMenu"> - <nav> - <menu> - <menuitem><p><a href="">Gruppe</a></p> </menuitem> - <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem> - <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem> - <menuitem><p><a href="">Review</a></p></menuitem> - <menuitem><p><a href="">User</a></p></menuitem> - </menu> - </nav> - </div> <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 4/8</h1> @@ -51,25 +42,38 @@ <button class="researchReportButtons"><a href="researchReportConcept.jsp">Speichern & weiter</a></button> <button class="researchReportButtons"><a href="researchReportBibo.jsp"> Zurück </a></button> </div> + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond"> </input> + </div> <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem> - <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp"><font color="#green">Forschnugsfrage</font></a> </menuitem> - <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem> - <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem> - <menuitem><a href="researchReportDo.jsp">Durchführung</a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem> + <menuitem><a id="title">Titel</a> </menuitem> + <menuitem><a id="recherche">Recherche</a> </menuitem> + <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem> + <menuitem><a id="question"><font color="#green">Forschnugsfrage</font></a> </menuitem> + <menuitem><a id="concept">Konzept</a></menuitem> + <menuitem><a id="method">Methodik</a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation">Evalution</a></menuitem> </menu> </nav> </div> -</form> + </form> + </td> + </tr> + </table> + </div> + </div> +</div> + -<script> -</script> +<script src="../assets/js/createReportQuestion.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp index e9d3d76bf7b411d6eef1e848d46bb471cc7f683e..4dcecad36722f6527192a266331b945cbe566ab9 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportRecherche.jsp @@ -1,41 +1,31 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> - +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> <body> +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> -<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - <div class = "researchReportMenu"> - <nav> - <menu> - <menuitem><p><a href="">Gruppe</a></p> </menuitem> - <menuitem><p><a href="">Projekt erstellen</a> </p></menuitem> - <menuitem><p><a href="">Forschungsbericht erstellen</a></p></menuitem> - <menuitem><p><a href="">Review</a></p></menuitem> - <menuitem><p><a href="">User</a></p></menuitem> - </menu> - </nav> - </div> <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 2/8</h1> @@ -50,26 +40,42 @@ <button class="researchReportButtons"><a href="researchReportBibo.jsp">Speichern & weiter</a></button> <button class="researchReportButtons"><a href="researchReportTitle.jsp"> Zurück </a></button> </div> + + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond" /> + </div> + <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp">Titel</a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp"><font color="#green">Recherche</font></a> </menuitem> - <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem> - <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem> - <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem> - <menuitem><a href="researchReportDo.jsp">Durchführung</a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem> + <menuitem><a id="title">Titel</a> </menuitem> + <menuitem><a id="recherche"><font color="#green">Recherche</font></a> </menuitem> + <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem> + <menuitem><a id="question">Forschnugsfrage</a> </menuitem> + <menuitem><a id="concept">Konzept</a></menuitem> + <menuitem><a id="method">Methodik</a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation">Evalution</a></menuitem> </menu> </nav> </div> -</form> + </form> + </td> + </tr> + </table> + </div> + </div> +</div> + + -<script> -</script> +<script src="../assets/js/createReportRecherche.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp b/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp index a4bdcacfcc0953dcf759f6b7c13d15544cdc1259..87a24067f088992a897f101860c5b647c167885a 100644 --- a/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/researchReportTitle.jsp @@ -1,31 +1,31 @@ -<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <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://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> - <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> - <script src="../assets/js/utility.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css"> - <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="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet"> <!--FilePond --> + <link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet"> <!--FilePond --> <link rel="stylesheet" type="text/css" href="../assets/css/researchReport.css"> <title>Forschungsbericht erstellen</title> </head> <body> +<div id="wrapper"> + <menu:menu></menu:menu> + <div class="page-content-wrapper"> + <headLine:headLine/> + <div style="margin-left:50px;"> + <table> + <tr> + <td id="yourContent"> + <form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - -<form id="researchReportform" class="researchReportForm" method="POST" action="../rest/researchReport/save"> - - <div class = "researchReportMenu"> + <!-- <div class = "researchReportMenu"> <nav> <menu> <menuitem><p><a href="">Gruppe</a></p> </menuitem> @@ -35,7 +35,7 @@ <menuitem><p><a href="">User</a></p></menuitem> </menu> </nav> - </div> + </div> --> <div class = "researchReportTitlebar"> <h1> Forschungsbericht erstellen 1/8</h1> @@ -47,30 +47,45 @@ </textarea> </div> <div class="ResearchReportButtons"> - <button class="researchReportButtons"><a href="researchReportRecherche.jsp">Speichern & weiter</a></button> - <button class="researchReportButtons"><a href="project-student.jsp"> Zurück </a></button> + <button class="researchReportButtons"><a id="forwardLink">Speichern & weiter</a></button> + <button class="researchReportButtons"><a id="backLink"> Zurück </a></button> </div> + <div class="ResearchReportUpload"> + <input type="file" class="filepond" name="filepond"> </input> + </div> + + <div class="researchReportProgress"> <nav> <menu> - <menuitem><a href="researchReportTitle.jsp"><font color="#green">Titel</font></a> </menuitem> - <menuitem><a href="researchReportRecherche.jsp">Recherche</a> </menuitem> - <menuitem><a href="researchReportBibo.jsp">Literaturverzeichnis</a> </menuitem> - <menuitem><a href="researchReportQuestion.jsp">Forschnugsfrage</a> </menuitem> - <menuitem><a href="researchReportConcept.jsp">Konzept</a></menuitem> - <menuitem><a href="researchReportMethod.jsp">Methodik</a></menuitem> - <menuitem><a href="researchReportDo.jsp">Durchführung</a></menuitem> - <menuitem><a href="researchReportEvaluation.jsp">Evalution</a></menuitem> + <menuitem><a id="title"><font color="#green">Titel</font></a> </menuitem> + <menuitem><a id="recherche">Recherche</a> </menuitem> + <menuitem><a id="bibo">Literaturverzeichnis</a> </menuitem> + <menuitem><a id="question">Forschnugsfrage</a> </menuitem> + <menuitem><a id="concept">Konzept</a></menuitem> + <menuitem><a id="method">Methodik</a></menuitem> + <menuitem><a id="reportDo">Durchführung</a></menuitem> + <menuitem><a id="evaluation">Evalution</a></menuitem> </menu> </nav> </div> </form> + </td> + </tr> + </table> + </div> + </div> +</div> + -<script> +<script src="../assets/js/createReportTitle.js"></script> +<script src="../assets/js/createReportProgress.js"></script> +<script src="https://unpkg.com/filepond/dist/filepond.js"></script> <!--FilePond --> +<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script> <!--FilePond --> +<script>FilePond.parse(document.body);</script> <!--FilePond --> -</script> </body> </html> \ No newline at end of file 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/main/webapp/pages/viewfeedback.jsp b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp index 7782962570fe23549d27559bf209c1eeb53695af..d444f858ad4ac0803d6d99e233a90ed4e809144b 100644 --- a/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/viewfeedback.jsp @@ -1,30 +1,25 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>muster-gemeinsam-forschen</title> - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> - <link rel="stylesheet" href="../assets/css/styles.css"> - <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> - <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> - <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css"> - <link rel="stylesheet" href="../assets/css/Community-ChatComments.css"> - <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css"> - <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css"> + <link rel="stylesheet" href="../assets/css/viewfeedback.css"> + <omniDependencies:omniDependencies/> <script src="../assets/js/utility.js"></script> <script src="../assets/js/project-student.js"></script> + <script src="../assets/js/givepeerfeedback.js"></script> + </head> <body> <div id="wrapper"> - <menu:menu></menu:menu> - + <menu:menu/> <div class="page-content-wrapper"> + <headLine:headLine/> <div class="container-fluid"> <h1 id="projectId"> PeerFeedback</h1> </div> @@ -48,22 +43,66 @@ <div> <table> <tr> - <td id="Peerfeedback"> - <h2>Feedback Nachrichten von Student X</h2> + <tr> + <th>Feedback Nachrichten von Student X</th> + </tr> + + + <td id="filter-feedbacks"> + + + <%--<iframe width="90%" height="200%" src="http://rocketchat.westeurope.cloudapp.azure.com/channel/general?layout=embedded"></iframe> + --%> + <%--<p id="view"></p> type="hidden"--%> + <input type="hidden" name="peerfeedbackID" id="peerfeedbackID-input" value=""/> + <div style="height: 100px; overflow: auto"> + <div class="feedback-container"> + <p>Sender</p> + <span class="time-right">11:00</span> + </div> + </div> - <iframe width="90%" height="200%" src="http://rocketchat.westeurope.cloudapp.azure.com/channel/general?layout=embedded"></iframe> - <button class="btn btn-secondary" onclick="goBack()">Zurück</button> + </td> - <script> - function goBack() { - window.history.back(); - } - </script> + <td id="view-feedbacks"> + + <div style="height: 300px; overflow: auto"> + + <div class="feedback-container"> + <p>Hello. How are you today?</p> + <span class="time-right">11:00</span> + </div> + + <div class="feedback-container"> + <p>Hey! I'm fine. Thanks for asking!</p> + <span class="time-left">11:01</span> + </div> + + <div class="feedback-container"> + <p>Sweet! So, what do you wanna do today?</p> + <span class="time-right">11:02</span> + </div> + + <div id="div1"></div> + + </div> + </td> + + + <button class="btn btn-secondary" onclick="goBack()">Zurück</button> + + <script> + function goBack() { + window.history.back(); + } + </script> </td> + + <td id="chat"> <div class="card"> <div class="card-header"> diff --git a/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql b/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql index e578511f6f5df1bf7e62c2c23bcb2a2ec8c01bca..c68466c5976964bcda06d67682119bd561593a50 100644 --- a/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql +++ b/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql @@ -1,34 +1,26 @@ drop TABLE `users`; -CREATE TABLE `users` ( - `name` varchar(400) NOT NULL, - `password` varchar(200) NOT NULL, - `email` varchar(400) NOT NULL, - `token` varchar(800) 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; -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent1', 'egal', 'test1@uni.de', 'test1'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent1', 'egal', 'test1@uni.de', 'test1'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test1@uni.de', 'test1','1','abc'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent2', 'egal', 'test2@uni.de', 'test2'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test2@uni.de', 'test1','1','abc'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent3', 'egal', 'test3@uni.de', 'test3'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test3@uni.de', 'test1','1','abc'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent4', 'egal', 'test4@uni.de', 'test4'); - -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent5', 'egal', 'test5@uni.de', 'test5'); - -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent6', 'egal', 'test6@uni.de', 'test6'); - -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent7', 'egal', 'test7@uni.de', 'test7'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test4@uni.de', 'test1','1','abc'); \ No newline at end of file diff --git a/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql b/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql new file mode 100644 index 0000000000000000000000000000000000000000..3e5d984640d2942ef1754f7c01c6a38af115c7e4 --- /dev/null +++ b/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql @@ -0,0 +1,54 @@ +/* + Make sure all tables are created with fltrail.sql + Functions with empty grouptable only (because of autoincrement id of group) + */ + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test1@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent2', 'egal', 'test2@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent3', 'egal', 'test3@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent4', 'egal', 'test4@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent5', 'egal', 'test5@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent6', 'egal', 'test6@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent7', 'egal', 'test7@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent8', 'egal', 'test8@uni.de', 'test1','1','abc'); + +INSERT INTO `projects` (`id`, `password`,`active`,`timecreated`,`author`,`adminpassword`,`token`,`phase`) VALUES + ('1','123',1,current_timestamp,'Julian','123','abc','CourseCreation'); + +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test1@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test2@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test3@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test4@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test5@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test6@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test7@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test8@uni.de'); + +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','1'); +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','2'); +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','3'); +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','4'); + +INSERT INTO groupuser (userEmail, groupId) VALUES ('test1@uni.de','1'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test2@uni.de','2'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test3@uni.de','3'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test4@uni.de','4'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test5@uni.de','1'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test6@uni.de','2'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test7@uni.de','3'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test8@uni.de','4'); \ No newline at end of file diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql index 2e37f5d4949ea62d0cf540294fb7d36886aa83cd..7334c920b9272500d574d74d2ccf29d339f0570e 100644 --- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql +++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql @@ -1,274 +1,130 @@ -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 - -( - - userId varchar(400) NOT NULL, - - projectId varchar(400) NOT NULL, - - taskUrl varchar(400) NOT NULL -) - - ENGINE = InnoDB +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; +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; - DEFAULT CHARSET = utf8; +CREATE TABLE `projectuser` ( + `projectId` varchar(400) NOT NULL, + `userId` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `quiz` ( + `studentId` 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 `tags` ( + `projectId` varchar(400) NOT NULL, + `tag` varchar(400) NOT NULL +) ENGINE=InnoDB 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 if not exists phasesSelected ( - `projectId` varchar(100) NOT NULL, - phaseSelected varchar(200) NOT NULL +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' + ON UPDATE CURRENT_TIMESTAMP, ) ENGINE = InnoDB DEFAULT CHARSET = utf8; -CREATE TABLE if not exists categoriesSelected ( - `projectId` varchar(100) NOT NULL, - categorySelected 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 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`); + ADD KEY `projectId` (`projectId`(255),`userId`(255)); -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 +ALTER TABLE `users` + ADD UNIQUE KEY `email` (`email`); -) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; - -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 - -) - 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/scripts/dbschema/fltrail.sql.orig b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql.orig index 0a4cf820cd2c5dae6d31fc8cb069ef2a37005018..503b1b82eada5064c0b20cb238f5b9ee6540cdfc 100644 --- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql.orig +++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql.orig @@ -1,218 +1,260 @@ -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; +<<<<<<< HEAD +CREATE TABLE `annotations` ( + `id` varchar(120) NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `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 +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +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; + +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; + +CREATE TABLE `projectuser` ( + `projectId` varchar(400) NOT NULL, + `userId` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `quiz` ( + `studentId` 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 `tags` ( + `projectId` varchar(400) NOT NULL, + `tag` varchar(400) NOT NULL +) ENGINE=InnoDB 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 `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; + +======= 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; +)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; -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists groupuser - -( - +CREATE TABLE if not exists groupuser ( userEmail varchar(400) NOT NULL, - groupId int NOT NULL - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; +) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists `tags` ( - `projectId` varchar(100) NOT NULL, - `tag` varchar(400) NOT NULL - -) - - ENGINE = InnoDB - +) 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, - + `isStudent` TINYINT(1), UNIQUE (email) ) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; -CREATE TABLE if not exists projectuser - -( - +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` ( - `id` varchar(120) NOT NULL, - `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `userToken` varchar(120) DEFAULT NULL, - `targetId` int(11) DEFAULT NULL, - `title` varchar(120) DEFAULT NULL, - `comment` varchar(400) DEFAULT NULL, - `startCharacter` int(11) DEFAULT NULL, - `endCharacter` int(11) DEFAULT NULL, + `id` varchar(120) NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP + ON UPDATE CURRENT_TIMESTAMP, + `userToken` varchar(120) DEFAULT NULL, + `targetId` int(11) DEFAULT NULL, + `title` varchar(120) DEFAULT NULL, + `comment` varchar(400) DEFAULT NULL, + `startCharacter` int(11) DEFAULT NULL, + `endCharacter` int(11) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8; alter table users - add isStudent tinyint(1) default '1' null; -CREATE TABLE if not exists quiz - -( - +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 tasks - -( - +CREATE TABLE if not exists tasks ( userId varchar(400) NOT NULL, - projectId varchar(400) NOT NULL, - taskUrl varchar(400) NOT NULL ) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; +>>>>>>> origin/#40_dummyProjectCreation +ALTER TABLE `annotations` + ADD PRIMARY KEY (`id`); +<<<<<<< HEAD +ALTER TABLE `groups` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `projectuser` + ADD KEY `projectId` (`projectId`(255),`userId`(255)); + +ALTER TABLE `users` + ADD UNIQUE KEY `email` (`email`); + +======= CREATE TABLE if not exists phasesSelected ( - `projectId` varchar(100) NOT NULL, + `projectId` varchar(100) NOT NULL, phaseSelected varchar(200) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists categoriesSelected ( - `projectId` varchar(100) NOT NULL, - categorySelected varchar(200) NOT NULL + `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 + `projectId` varchar(100) NOT NULL, + gfmSelected varchar(200) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists assessmentMechanismSelected ( - `projectId` varchar(100) NOT NULL, - amSelected varchar(200) NOT NULL + `projectId` varchar(100) NOT NULL, + amSelected varchar(200) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = utf8; +>>>>>>> origin/#40_dummyProjectCreation -<<<<<<< HEAD - 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; -======= -ALTER TABLE `projectuser` - ADD INDEX (`projectId`, `userId`); -ALTER TABLE `projectuser` - ADD UNIQUE (`projectId`, `userId`); -ALTER TABLE `projects` - ADD UNIQUE (`id`); ->>>>>>> origin/session_management +ALTER TABLE `groups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +COMMIT; \ No newline at end of file diff --git a/gemeinsamforschen/src/scripts/dbschema/peerfeedback b/gemeinsamforschen/src/scripts/dbschema/peerfeedback new file mode 100644 index 0000000000000000000000000000000000000000..8e7c7de6b40df09f1a13f31c294daed1cfc58d2f --- /dev/null +++ b/gemeinsamforschen/src/scripts/dbschema/peerfeedback @@ -0,0 +1,16 @@ +USE `fltrail`; + +CREATE TABLE if not exists `peerfeedback` ( + `id` varchar(130) NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP + ON UPDATE CURRENT_TIMESTAMP, + `reciever` varchar(400) NOT NULL, + `sender` varchar(400) NOT NULL, + `text` varchar(1000) NOT NULL, + `category` varchar(400) NOT NULL, + `filename` varchar(400) NOT NULL, + PRIMARY KEY( id ) + +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8; \ No newline at end of file diff --git a/gemeinsamforschen/src/scripts/dbschema/researchReport.sql b/gemeinsamforschen/src/scripts/dbschema/researchReport.sql new file mode 100644 index 0000000000000000000000000000000000000000..c610c1f22db85fcc24784e23048c08376774898b --- /dev/null +++ b/gemeinsamforschen/src/scripts/dbschema/researchReport.sql @@ -0,0 +1,17 @@ +CREATE TABLE `researchReport` ( + `reportID` varchar(400) NOT NULL, + `author` varchar(100) NOT NULL, + `title` varchar(400) NOT NULL, + `method` text NOT NULL, + `research` text NOT NULL, + `question` text NOT NULL, + `concept` text NOT NULL, + `do` text NOT NULL, + `evaluation` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +CREATE TABLE `biblography` ( + `reportID` varchar(400) NOT NULL, + `source` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java index 1bd1d7a2e0f059759079914b2ab766f590df6bef..2022098901c1d33133d46ffa6ebe1268e8b960d9 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java @@ -6,10 +6,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.mockito.Spy; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoRule; @@ -17,18 +14,15 @@ import uk.co.jemos.podam.api.PodamFactory; import uk.co.jemos.podam.api.PodamFactoryImpl; import unipotsdam.gf.config.GFApplicationBinder; import unipotsdam.gf.core.management.Management; -import unipotsdam.gf.core.management.group.Group; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.project.ProjectConfiguration; import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.core.states.ProjectPhase; -import unipotsdam.gf.modules.assessment.QuizAnswer; -import unipotsdam.gf.modules.assessment.controller.model.StudentAndQuiz; import unipotsdam.gf.modules.groupfinding.GroupFormationMechanism; import unipotsdam.gf.modules.groupfinding.GroupfindingCriteria; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.peer2peerfeedback.Category; -import unipotsdam.gf.modules.peer2peerfeedback.Peer2PeerFeedback; +import unipotsdam.gf.modules.peer2peerfeedback.peerfeedback.Model.Peer2PeerFeedback; import unipotsdam.gf.modules.researchreport.ResearchReport; import unipotsdam.gf.modules.researchreport.ResearchReportManagement; import javax.inject.Inject; @@ -39,7 +33,6 @@ import java.util.Iterator; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; 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..1b13a03bcf124f3a2edb682104bce1e56a19bd7b 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java @@ -1,14 +1,76 @@ package unipotsdam.gf.modules.assessment; import org.junit.Test; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; 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 static javax.swing.UIManager.getString; +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(); @@ -28,5 +90,61 @@ public class TestAddAssessment { //Assessment assessment = new Assessment(student, performance); //iPeerAssessment.addAssessmentDataToDB(assessment); } + @Test + public void meanOfAssessments(){ + double Ergebnis=0.0; + double zwischenErgebnis=0.0; + double counter=0.0; + List<Double> results = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + + connect.connect(); + String mysqlRequest = "SELECT * FROM `assessments` WHERE `empfaengerId`=? AND `projektId`=?"; + String test = "fgnxn"; + String test2 = "projekt"; + VereinfachtesResultSet ausgabe = connect.issueSelectStatement(mysqlRequest,test, test2); + while (ausgabe.next()){ + counter++; + zwischenErgebnis=zwischenErgebnis+ausgabe.getInt("bewertung"); + results.add((double) ausgabe.getInt("bewertung")); + } + results.add(zwischenErgebnis/counter); + System.out.println(results); + //Integer bewertung = ausgabe.getInt("bewertung"); + connect.close(); + } + @Test + public void groupDatafromDB(){ + MysqlConnect connect = new MysqlConnect(); + List<String> userNamen=new ArrayList<>(); + GroupEvalDataDatasets datenSaetze = new GroupEvalDataDatasets(); + GroupEvalDataList datenDia = new GroupEvalDataList(); + connect.connect(); + + String mysqlRequestGroupuser = "SELECT * FROM `groupuser` WHERE `groupId`=? "; + + VereinfachtesResultSet namenDerUser = connect.issueSelectStatement(mysqlRequestGroupuser,3); + int[] bewertungenZwischen=new int[10]; + while (namenDerUser.next()){ + userNamen.add(namenDerUser.getString("userEmail")); + } + for (int i=0;i<userNamen.size();i++){ + String mysqlRequestAssessment = "SELECT * FROM `assessments` WHERE `empfaengerId`=?"; + VereinfachtesResultSet bewertungDerUser = connect.issueSelectStatement(mysqlRequestAssessment,userNamen.get(i)); + + while (bewertungDerUser.next()) { + //bewertungenZwischen.add(bewertungDerUser.getInt("bewertung")); + System.out.println("Hass"); + } + datenSaetze.setData(bewertungenZwischen); + //datenSaetze.setLabel(userNamen.get(i)); + datenDia.appendDataSet(datenSaetze); + System.out.println(datenSaetze.getData()); + System.out.println(datenSaetze.getLabel()); + + } + connect.close(); + } + } diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java.orig b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java.orig new file mode 100644 index 0000000000000000000000000000000000000000..9551fecdd8a1ff851d2613269ab51347f7b791cc --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java.orig @@ -0,0 +1,156 @@ +package unipotsdam.gf.modules.assessment; + +import org.junit.Test; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.interfaces.IPeerAssessment; +import unipotsdam.gf.modules.assessment.controller.model.*; +import unipotsdam.gf.modules.assessment.controller.service.FBAssessement; +<<<<<<< HEAD +import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +======= + +import java.util.ArrayList; +import java.util.List; + +import static javax.swing.UIManager.getString; +>>>>>>> origin/PeerAssessmentChristian_2 + +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(); + int [] quizAnswers = new int[5]; + quizAnswers[0] = 0; + quizAnswers[1] = 1; + quizAnswers[2] = 0; + quizAnswers[3] = 1; + quizAnswers[4] = 1; + int [] workRating = new int[3]; + workRating[0] = 5; //Führungsqualität + workRating[1] = 1; //Pünktlichkeit + workRating[2] = 4; //Hilfsbereitschaft oder so + + StudentIdentifier student = new StudentIdentifier("Spaß", "Haralf"); + //Performance performance = new Performance(student, quizAnswers,"so ein toller Typ", workRating); + //Assessment assessment = new Assessment(student, performance); + //iPeerAssessment.addAssessmentDataToDB(assessment); + } + @Test + public void meanOfAssessments(){ + double Ergebnis=0.0; + double zwischenErgebnis=0.0; + double counter=0.0; + List<Double> results = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + + connect.connect(); + String mysqlRequest = "SELECT * FROM `assessments` WHERE `empfaengerId`=? AND `projektId`=?"; + String test = "fgnxn"; + String test2 = "projekt"; + VereinfachtesResultSet ausgabe = connect.issueSelectStatement(mysqlRequest,test, test2); + while (ausgabe.next()){ + counter++; + zwischenErgebnis=zwischenErgebnis+ausgabe.getInt("bewertung"); + results.add((double) ausgabe.getInt("bewertung")); + } + results.add(zwischenErgebnis/counter); + System.out.println(results); + //Integer bewertung = ausgabe.getInt("bewertung"); + connect.close(); + } + @Test + public void groupDatafromDB(){ + MysqlConnect connect = new MysqlConnect(); + List<String> userNamen=new ArrayList<>(); + GroupEvalDataDatasets datenSaetze = new GroupEvalDataDatasets(); + GroupEvalDataList datenDia = new GroupEvalDataList(); + connect.connect(); + + String mysqlRequestGroupuser = "SELECT * FROM `groupuser` WHERE `groupId`=? "; + + VereinfachtesResultSet namenDerUser = connect.issueSelectStatement(mysqlRequestGroupuser,3); + int[] bewertungenZwischen=new int[10]; + while (namenDerUser.next()){ + userNamen.add(namenDerUser.getString("userEmail")); + } + for (int i=0;i<userNamen.size();i++){ + String mysqlRequestAssessment = "SELECT * FROM `assessments` WHERE `empfaengerId`=?"; + VereinfachtesResultSet bewertungDerUser = connect.issueSelectStatement(mysqlRequestAssessment,userNamen.get(i)); + + while (bewertungDerUser.next()) { + //bewertungenZwischen.add(bewertungDerUser.getInt("bewertung")); + System.out.println("Hass"); + } + datenSaetze.setData(bewertungenZwischen); + //datenSaetze.setLabel(userNamen.get(i)); + datenDia.appendDataSet(datenSaetze); + System.out.println(datenSaetze.getData()); + System.out.println(datenSaetze.getLabel()); + + } + connect.close(); + } + + +} diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/communication/view/CommunicationViewTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/communication/view/CommunicationViewTest.java deleted file mode 100644 index d9bbfc17d3e19b4b5d5a737134c5b90c445a13a8..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/communication/view/CommunicationViewTest.java +++ /dev/null @@ -1,128 +0,0 @@ -package unipotsdam.gf.modules.communication.view; - -import org.glassfish.jersey.test.JerseyTest; -import org.glassfish.jersey.test.util.runner.ConcurrentRunner; -import org.junit.Test; -import org.junit.runner.RunWith; -import unipotsdam.gf.config.GFResourceConfig; -import unipotsdam.gf.core.management.user.User; -import unipotsdam.gf.modules.communication.model.Message; -import unipotsdam.gf.modules.communication.model.chat.ChatRoom; - -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.Response; -import java.util.ArrayList; -import java.util.List; - -import static javax.ws.rs.core.Response.Status.BAD_REQUEST; -import static javax.ws.rs.core.Response.Status.CREATED; -import static javax.ws.rs.core.Response.Status.NOT_FOUND; -import static javax.ws.rs.core.Response.Status.OK; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; - -@RunWith(ConcurrentRunner.class) -public class CommunicationViewTest extends JerseyTest { - - private final static String ENDPOINT = "chat/"; - - @Override - protected Application configure() { - CommunicationView communicationView = new CommunicationView(); - GFResourceConfig gfResourceConfig = new GFResourceConfig(); - gfResourceConfig.register(communicationView); - return gfResourceConfig; - } - - @Test - public void getChatRoomInformation() { - String path = ENDPOINT + "info/"; - Response responseOk = target().path(path + "1").request().get(); - assertThat(responseOk.getStatus(), is(OK.getStatusCode())); - assertNotNull(responseOk.readEntity(ChatRoom.class)); - - Response responseNotFound = target().path(path).request().get(); - assertThat(responseNotFound.getStatus(), is(NOT_FOUND.getStatusCode())); - } - - @Test - public void getChatHistory() { - String path = ENDPOINT + "history/"; - Response responseOk = target().path(path + "1").request().get(); - assertThat(responseOk.getStatus(), is(OK.getStatusCode())); - assertNotNull(responseOk.readEntity(List.class)); - - Response responseNotFound = target().path(path).request().get(); - assertThat(responseNotFound.getStatus(), is(NOT_FOUND.getStatusCode())); - } - - @Test - public void createChatRoom() { - String path = ENDPOINT + "create"; - Response responseOk = target().path(path).queryParam("name", "test").request().post(null); - assertThat(responseOk.getStatus(), is(CREATED.getStatusCode())); - assertNotNull(responseOk.readEntity(String.class)); - - ArrayList<User> users = new ArrayList<>(); - users.add(new User("test", "test", "test", true)); - Response responseOk2 = target().path(path).queryParam("name", "test").request().post(Entity.json(users)); - assertThat(responseOk2.getStatus(), is(CREATED.getStatusCode())); - assertNotNull(responseOk2.readEntity(String.class)); - - Response responseBadRequest = target().path(path).request().post(Entity.json(users)); - assertThat(responseBadRequest.getStatus(), is(BAD_REQUEST.getStatusCode())); - } - - @Test - public void sendMessage() { - String path = ENDPOINT + "send"; - Message message = new Message(); - message.setMessage("test"); - message.setRoomIdOrChannel("1"); - Response responseOk = target().path(path + "/1").request().post(Entity.json(message)); - assertThat(responseOk.getStatus(), is(OK.getStatusCode())); - assertNotNull(responseOk.readEntity(String.class)); - - Response responseBadRequest = target().path(path + "/1").request().post(Entity.json(null)); - assertThat(responseBadRequest.getStatus(), is(BAD_REQUEST.getStatusCode())); - } - - @Test - public void addUserToChatRoom() { - String fullPath = ENDPOINT + "addUser" + "/1"; - - User user = new User("test", "test", "test", true); - Response responseOk = target().path(fullPath).request().post(Entity.json(user)); - assertThat(responseOk.getStatus(), is(OK.getStatusCode())); - assertNotNull(responseOk.readEntity(String.class)); - - Response responseBadRequest = target().path(fullPath).request().post(Entity.json(null)); - assertThat(responseBadRequest.getStatus(), is(BAD_REQUEST.getStatusCode())); - } - - @Test - public void removeUserFromChatRoom() { - String fullPath = ENDPOINT + "removeUser" + "/1"; - - User user = new User("test2", "test2", "test", true); - Response responseOk = target().path(fullPath).request().post(Entity.json(user)); - assertThat(responseOk.getStatus(), is(OK.getStatusCode())); - assertNotNull(responseOk.readEntity(String.class)); - - Response responseBadRequest = target().path(fullPath).request().post(Entity.json(null)); - assertThat(responseBadRequest.getStatus(), is(BAD_REQUEST.getStatusCode())); - } - - @Test - public void setChatRoomTopic() { - String fullPath = ENDPOINT + "setTopic" + "/1"; - Response responseOk = target().path(fullPath).queryParam("topic", "test").request().post(null); - assertThat(responseOk.getStatus(), is(OK.getStatusCode())); - assertNotNull(responseOk.readEntity(String.class)); - - Response responseBadRequest = target().path(fullPath).request().post(Entity.json(null)); - assertThat(responseBadRequest.getStatus(), is(BAD_REQUEST.getStatusCode())); - } -} diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java new file mode 100644 index 0000000000000000000000000000000000000000..008ec65f6695807383dfcf4290acc293ef65e41a --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/JournalDAOImplTest.java @@ -0,0 +1,317 @@ +package unipotsdam.gf.modules.journal.model.dao; + +import org.junit.Test; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.journal.model.Journal; +import unipotsdam.gf.modules.journal.model.JournalFilter; +import unipotsdam.gf.modules.journal.model.Visibility; +import unipotsdam.gf.modules.journal.util.JournalUtils; +import unipotsdam.gf.modules.peer2peerfeedback.Category; + +import java.util.ArrayList; + +import static org.junit.Assert.*; + +public class JournalDAOImplTest { + + private final JournalDAO journalDAO = new JournalDAOImpl(); + private final MysqlConnect connection = new MysqlConnect(); + private final String testId = "-1"; + private final String testStudent = "testStudent"; + private final String testProject = "testProject"; + private final String testEntry = "This is a Test"; + private final Visibility testVisibility = Visibility.ALL; + private final Category testCategory = Category.TITEL; + private final Journal testJournal = new Journal(testId, new StudentIdentifier(testProject, testStudent), testEntry, testVisibility, testCategory); + + @Test + public void createJournal() { + + // Create Journal + Journal createJournal = testJournal; + journalDAO.createJournal(createJournal); + + connection.connect(); + + // Get that Journal + ArrayList<Journal> resultJournals = getJournals(); + + //Only one Journal should exist + assertEquals(1, resultJournals.size()); + + Journal resultJournal = resultJournals.get(0); + + //check if data correct + assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent); + assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject); + assertEquals(resultJournal.getEntryMD(), testEntry); + + //Journal should get real id while create + assertFalse(resultJournal.getId().equals(testId)); + + assertEquals(resultJournal.getVisibility(), testVisibility); + assertEquals(resultJournal.getCategory(), testCategory); + + //cleanup + cleanup(resultJournal.getId()); + + connection.close(); + } + + @Test + public void updateJournal() { + + Journal updateJournal = testJournal; + //createJournal + + connection.connect(); + + // build and execute request + create(updateJournal); + + //change Data + Visibility newVisibility = Visibility.MINE; + Category newCategory = Category.DURCHFUEHRUNG; + String newEntry = "Still a test"; + + updateJournal.setVisibility(newVisibility); + updateJournal.setCategory(newCategory); + updateJournal.setEntry(newEntry); + + //update that Journal + journalDAO.updateJournal(updateJournal); + + //check if update successful + ArrayList<Journal> resultJournals = getJournals(); + + //Only one Journal should exist + assertEquals(1, resultJournals.size()); + + Journal resultJournal = resultJournals.get(0); + + //check if data correct + assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent); + assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject); + assertEquals(resultJournal.getEntryMD(), newEntry); + assertEquals(resultJournal.getId(), testId); + assertEquals(resultJournal.getVisibility(), newVisibility); + assertEquals(resultJournal.getCategory(), newCategory); + + //cleanup + cleanup(updateJournal.getId()); + connection.close(); + + } + + @Test + public void deleteJournal() { + Journal deleteJournal = testJournal; + + //createJournal + connection.connect(); + + // build and execute request + create(deleteJournal); + + //check if Journal was added + ArrayList<Journal> resultJournals = getJournals(); + + assertEquals(1, resultJournals.size()); + + Journal resultJournal = resultJournals.get(0); + + + //delete Journal + journalDAO.deleteJournal(resultJournal.getId()); + + //check if deleted + resultJournals = getJournals(); + + assertEquals(0, resultJournals.size()); + + connection.close(); + } + + @Test + public void getJournal() { + + //create Journal + Journal getJournal = testJournal; + //createJournal + + connection.connect(); + + // build and execute request + create(getJournal); + + //get that Journal + Journal resultJournal = journalDAO.getJournal(testId); + + //check data + assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent); + assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject); + assertEquals(resultJournal.getEntryMD(), testEntry); + assertEquals(resultJournal.getId(), testId); + assertEquals(resultJournal.getVisibility(), testVisibility); + assertEquals(resultJournal.getCategory(), testCategory); + + //cleanup + cleanup(resultJournal.getId()); + + connection.close(); + + } + + @Test + public void getAllByProject() { + connection.connect(); + + //add Some Journals + Journal j1 = testJournal; + create(j1); + j1.setId("-2"); + create(j1); + j1.setId("-3"); + j1.getStudentIdentifier().setProjectId("otherProject"); + create(j1); + + //get for project + ArrayList<Journal> resultJournals = journalDAO.getAllByProject(testProject, testStudent); + + //should be 2 Journals + assertEquals(2, resultJournals.size()); + + //should be j1 and j2 + for (Journal j : resultJournals) { + assertTrue(j.getId().equals("-1") || j.getId().equals("-2")); + } + + //cleanup + cleanup("-1", "-2", "-3"); + } + + @Test + public void getAllByProjectAndFilter() { + + connection.connect(); + + //Create some journals + Journal j1 = testJournal; + create(j1); + j1.getStudentIdentifier().setStudentId("otherStudent"); + j1.setId("-2"); + create(j1); + j1.setId("-3"); + j1.setVisibility(Visibility.MINE); + create(j1); + + //all should return 2 Journals + assertEquals(2, journalDAO.getAllByProjectAndFilter(testProject, testStudent, JournalFilter.ALL).size()); + + //Own should return 1 Journal + assertEquals(1, journalDAO.getAllByProjectAndFilter(testProject, testStudent, JournalFilter.OWN).size()); + + //Cleanup + cleanup("-1", "-2", "-3"); + connection.close(); + } + + @Test + public void closeJournal() { + connection.connect(); + + //create Journal + Journal closeJournal = testJournal; + create(closeJournal); + + Journal resultJournal = getJournals().get(0); + + //check if open + assertTrue(resultJournal.isOpen()); + + //close Journal + journalDAO.closeJournal(resultJournal.getId()); + + //check if closed + resultJournal = getJournals().get(0); + assertFalse(resultJournal.isOpen()); + + //cleanup + cleanup(resultJournal.getId()); + } + + @Test + public void getOpenJournals() { + connection.connect(); + + Project openProject = new Project(); + openProject.setId(testProject); + + //create some Journals + Journal j1 = testJournal; + create(j1); + j1.setOpen(false); + j1.setId("-2"); + create(j1); + j1.setId("-3"); + j1.getStudentIdentifier().setProjectId("otherProject"); + create(j1); + + //getOpenJournals + ArrayList<String> resultJournals = journalDAO.getOpenJournals(openProject); + + //should be 1 Journal + assertEquals(1, resultJournals.size()); + + //should be journal -1 + assertEquals(testStudent, resultJournals.get(0)); + + cleanup("-1", "-2", "-3"); + connection.close(); + } + + + //utility + + private ArrayList<Journal> getJournals() { + String request = "SELECT * FROM journals WHERE project= ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, testProject); + + ArrayList<Journal> resultJournals = new ArrayList<>(); + while (rs.next()) { + resultJournals.add(getJournalFromResultSet(rs)); + } + return resultJournals; + } + + private void create(Journal getJournal) { + String createRequest = "INSERT INTO journals (`id`, `author`, `project`, `text`, `visibility`,`category`, `open` ) VALUES (?,?,?,?,?,?,?);"; + connection.issueInsertOrDeleteStatement(createRequest, getJournal.getId(), getJournal.getStudentIdentifier().getStudentId(), + getJournal.getStudentIdentifier().getProjectId(), getJournal.getEntryMD(), getJournal.getVisibility(), getJournal.getCategory(), getJournal.isOpen()); + } + + private void cleanup(String... ids) { + for (String id : ids) { + String deleteRequest = "DELETE FROM journals WHERE id = ?;"; + connection.issueInsertOrDeleteStatement(deleteRequest, id); + } + } + + private Journal getJournalFromResultSet(VereinfachtesResultSet rs) { + + String id = rs.getString("id"); + long timestamp = rs.getTimestamp(2).getTime(); + String student = rs.getString("author"); + String project = rs.getString("project"); + String text = rs.getString("text"); + String visibility = rs.getString("visibility"); + String category = rs.getString("category"); + boolean open = rs.getBoolean("open"); + + return new Journal(id, new StudentIdentifier(project, student), text, timestamp, JournalUtils.stringToVisibility(visibility), JournalUtils.stringToCategory(category), open); + + } +} \ No newline at end of file diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java new file mode 100644 index 0000000000000000000000000000000000000000..82b1b95d2e5711e2df937329a858027e26e3e982 --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java @@ -0,0 +1,166 @@ +package unipotsdam.gf.modules.journal.model.dao; + +import org.junit.Test; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.modules.journal.model.Link; + +import java.util.ArrayList; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +public class LinkDAOImplTest { + + MysqlConnect connection = new MysqlConnect(); + LinkDAO linkDAO = new LinkDAOImpl(); + + String testId = "-1"; + String testProjectDescription = "testproject"; + String testName = "testname"; + String testLink = "https://www.test.de"; + Link testLinkObj = new Link(testId, testProjectDescription, testName, testLink); + + @Test + public void addLink() { + + connection.connect(); + + //add Link + Link addLink = testLinkObj; + + linkDAO.addLink(addLink); + + //check if added + ArrayList<Link> resultLinks = getLinks(addLink.getProjectDescription()); + + assertEquals(1, resultLinks.size()); + + //check data + Link resultLink = resultLinks.get(0); + + assertEquals(testLink, resultLink.getLink()); + assertEquals(testName, resultLink.getName()); + assertEquals(testProjectDescription, resultLink.getProjectDescription()); + + assertFalse(testId.equals(resultLink.getId())); + + //cleanup + cleanup(resultLink.getId()); + + connection.close(); + } + + @Test + public void deleteLink() { + connection.connect(); + + //add Link + Link deleteLink = testLinkObj; + + create(deleteLink); + + + //check if Link was created + ArrayList<Link> reultLinks = getLinks(deleteLink.getProjectDescription()); + assertEquals(1, reultLinks.size()); + + //delete link + linkDAO.deleteLink(deleteLink.getId()); + + //check if Link deleted + reultLinks = getLinks(deleteLink.getProjectDescription()); + assertEquals(0, reultLinks.size()); + + //cleanup + cleanup(deleteLink.getId()); + + connection.close(); + } + + @Test + public void getLink() { + connection.connect(); + + //addLink + Link getLink = testLinkObj; + create(getLink); + + //get Link + Link resultLink = linkDAO.getLink(getLink.getId()); + + //check Data + assertEquals(testLink, resultLink.getLink()); + assertEquals(testName, resultLink.getName()); + assertEquals(testProjectDescription, resultLink.getProjectDescription()); + + //cleanup + cleanup(getLink.getId()); + + connection.close(); + + } + + @Test + public void getAllLinks() { + connection.connect(); + + //addLinks + Link l = testLinkObj; + create(l); + l.setId("-2"); + l.setName("othername"); + create(l); + l.setId("-3"); + l.setLink("404"); + create(l); + + //gettLinks + ArrayList<Link> resultLinks = getLinks(testProjectDescription); + + //check + assertEquals(3, resultLinks.size()); + + //cleanup + cleanup("-1", "-2", "-3"); + + connection.close(); + } + + //Utility + private void create(Link deleteLink) { + String request = "INSERT INTO links (`id`, `projecdesription`, `name`, `link`) VALUES (?,?,?,?);"; + connection.issueInsertOrDeleteStatement(request, deleteLink.getId(), deleteLink.getProjectDescription(), deleteLink.getName(), deleteLink.getLink()); + } + + private void cleanup(String... addLinks) { + + for (String addLink : addLinks) { + + String request = "DELETE FROM links WHERE id = ?;"; + connection.issueInsertOrDeleteStatement(request, addLink); + } + } + + private Link getLinkFromResultSet(VereinfachtesResultSet rs) { + + String id = rs.getString("id"); + String project = rs.getString("projecdesription"); + String name = rs.getString("name"); + String link = rs.getString("link"); + return new Link(id, project, name, link); + } + + private ArrayList<Link> getLinks(String addLink) { + ArrayList<Link> resultLinks = new ArrayList<>(); + + String request = "SELECT * FROM links WHERE projecdesription= ?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, addLink); + + while (rs.next()) { + resultLinks.add(getLinkFromResultSet(rs)); + } + + return resultLinks; + } +} \ No newline at end of file diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionImplDAOTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionImplDAOTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c63a1b8d70c2fd9251cab2852516f55a11966741 --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/ProjectDescriptionImplDAOTest.java @@ -0,0 +1,225 @@ +package unipotsdam.gf.modules.journal.model.dao; + +import org.junit.Test; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.journal.model.ProjectDescription; + +import java.util.ArrayList; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class ProjectDescriptionImplDAOTest { + + private final ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl(); + private final MysqlConnect connection = new MysqlConnect(); + + private String testId = "-1"; + private String testStudent = "testStudent"; + private String testDescription = "testDescription"; + private String testProjekt = "testProjekt"; + + private ProjectDescription testProjectDescription = new ProjectDescription(testId, testStudent, testDescription, testProjekt, null /*Links are added in Service*/); + + @Test + public void createDescription() { + + connection.connect(); + + descriptionDAO.createDescription(testProjectDescription); + + ArrayList<ProjectDescription> resultProjectDescriptions = getProjectDescription(); + + //should be 1 + assertEquals(1, resultProjectDescriptions.size()); + + ProjectDescription result = resultProjectDescriptions.get(0); + + //check data + assertFalse(testId.equals(result.getId())); + assertEquals(testDescription, result.getDescriptionMD()); + assertEquals(testStudent, result.getStudent().getStudentId()); + assertEquals(testProjekt, result.getStudent().getProjectId()); + + cleanup(result.getId()); + connection.close(); + } + + @Test + public void updateDescription() { + + connection.connect(); + + ProjectDescription updateDescription = testProjectDescription; + + create(updateDescription); + + updateDescription.setDescription(testDescription + testDescription); + + descriptionDAO.updateDescription(updateDescription); + + ArrayList<ProjectDescription> resultProjectDescriptions = getProjectDescription(); + + //should be 1 + assertEquals(1, resultProjectDescriptions.size()); + + ProjectDescription result = resultProjectDescriptions.get(0); + + //check data + assertEquals(testId, result.getId()); + assertEquals(testDescription + testDescription, result.getDescriptionMD()); + + cleanup(testId); + connection.close(); + + } + + @Test + public void getDescriptionSI() { + connection.connect(); + + ProjectDescription getDescription = testProjectDescription; + + create(getDescription); + + ProjectDescription result = descriptionDAO.getDescription(new StudentIdentifier(testProjekt, testStudent)); + + assertEquals(testId, result.getId()); + assertEquals(testDescription, result.getDescriptionMD()); + assertEquals(testStudent, result.getStudent().getStudentId()); + assertEquals(testProjekt, result.getStudent().getProjectId()); + + cleanup(result.getId()); + connection.close(); + } + + @Test + public void getDescriptionID() { + connection.connect(); + + ProjectDescription getDescription = testProjectDescription; + + create(getDescription); + + ProjectDescription result = descriptionDAO.getDescription(testId); + + assertEquals(testId, result.getId()); + assertEquals(testDescription, result.getDescriptionMD()); + assertEquals(testStudent, result.getStudent().getStudentId()); + assertEquals(testProjekt, result.getStudent().getProjectId()); + + cleanup(result.getId()); + connection.close(); + } + + @Test + public void deleteDescription() { + connection.connect(); + + ProjectDescription deleteDescription = testProjectDescription; + + create(deleteDescription); + + ArrayList<ProjectDescription> resultDescriptions = getProjectDescription(); + + //should be 1 + assertEquals(1, resultDescriptions.size()); + + descriptionDAO.deleteDescription(new StudentIdentifier(testProjekt, testStudent)); + + resultDescriptions = getProjectDescription(); + + //should be 0 + assertEquals(0, resultDescriptions.size()); + + connection.close(); + } + + @Test + public void closeDescription() { + connection.connect(); + + ProjectDescription closeDescription = testProjectDescription; + + create(closeDescription); + + ArrayList<ProjectDescription> resultDescriptions = getProjectDescription(); + + //should be 1 + assertEquals(1, resultDescriptions.size()); + assertTrue(resultDescriptions.get(0).isOpen()); + + descriptionDAO.closeDescription(testId); + + resultDescriptions = getProjectDescription(); + + //should be 1 + assertEquals(1, resultDescriptions.size()); + assertFalse(resultDescriptions.get(0).isOpen()); + + connection.close(); + } + + @Test + public void getOpenDescriptions() { + connection.connect(); + + ProjectDescription openDescription = testProjectDescription; + create(openDescription); + openDescription.setId("-2"); + create(openDescription); + openDescription.setId("-3"); + openDescription.setOpen(false); + create(openDescription); + + Project project = new Project(); + project.setId(testProjekt); + + ArrayList<String> resultDescriptions = descriptionDAO.getOpenDescriptions(project); + assertEquals(2, resultDescriptions.size()); + + cleanup("-1","-2","-3"); + connection.close(); + } + + + //Utility + private ArrayList<ProjectDescription> getProjectDescription() { + String request = "SELECT * FROM projectdescription WHERE project=?;"; + VereinfachtesResultSet rs = connection.issueSelectStatement(request, testProjekt); + + ArrayList<ProjectDescription> resultDescriptions = new ArrayList<>(); + while (rs.next()) { + resultDescriptions.add(getDescriptionFromResultSet(rs)); + } + return resultDescriptions; + } + + private void create(ProjectDescription projectDescription) { + String request = "INSERT INTO projectdescription(`id`, `author`, `project`, `text`, `open`) VALUES (?,?,?,?,?);"; + connection.issueInsertOrDeleteStatement(request, projectDescription.getId(), projectDescription.getStudent().getStudentId(), projectDescription.getStudent().getProjectId(), projectDescription.getDescriptionMD(), projectDescription.isOpen()); + } + + private void cleanup(String... ids) { + for (String id : ids) { + String request = "DELETE FROM projectdescription WHERE id = ? ;"; + connection.issueInsertOrDeleteStatement(request, id); + } + } + + private ProjectDescription getDescriptionFromResultSet(VereinfachtesResultSet rs) { + String id = rs.getString("id"); + long timestamp = rs.getTimestamp(2).getTime(); + String author = rs.getString("author"); + String project = rs.getString("project"); + String text = rs.getString("text"); + boolean open = rs.getBoolean("open"); + + return new ProjectDescription(id, author, text, project, new ArrayList<>(), timestamp, open); + } + +} diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java new file mode 100644 index 0000000000000000000000000000000000000000..05ce97fb48f7880edf0b40c40b79be515661bc81 --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/JournalServiceImplTest.java @@ -0,0 +1,212 @@ +package unipotsdam.gf.modules.journal.service; + +import org.junit.After; +import org.junit.Test; +import unipotsdam.gf.core.management.Management; +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.journal.model.Journal; +import unipotsdam.gf.modules.journal.model.Visibility; +import unipotsdam.gf.modules.journal.model.dao.JournalDAO; +import unipotsdam.gf.modules.journal.model.dao.JournalDAOImpl; +import unipotsdam.gf.modules.peer2peerfeedback.Category; + +import java.util.ArrayList; + +import static org.junit.Assert.*; + +public class JournalServiceImplTest { + + private final String testId = "-1"; + private final String testStudent = "testStudent"; + private final String testProject = "testProject"; + private final String testEntry = "This is a Test"; + private final Visibility testVisibility = Visibility.ALL; + private final Category testCategory = Category.TITEL; + private final Journal testJournal = new Journal(testId, new StudentIdentifier(testProject, testStudent), testEntry, testVisibility, testCategory); + private JournalService journalService = new JournalServiceImpl(); + private JournalDAO journalDAO = new JournalDAOImpl(); + private Management management = new ManagementImpl(); + + @After + public void cleanUp() { + + ArrayList<Journal> deleteJournals = journalDAO.getAllByProject(testProject, testStudent); + + for (Journal j : deleteJournals) { + journalDAO.deleteJournal(j.getId()); + } + } + + @Test + public void getJournal() { + + journalDAO.createJournal(testJournal); + + //get id of added Journal + String journalID = journalDAO.getAllByProject(testProject, testStudent).get(0).getId(); + + Journal resultJournal = journalService.getJournal(journalID); + + assertNotNull(resultJournal); + + assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent); + assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject); + assertEquals(resultJournal.getEntryMD(), testEntry); + assertEquals(resultJournal.getId(), journalID); + assertEquals(resultJournal.getVisibility(), testVisibility); + assertEquals(resultJournal.getCategory(), testCategory); + + } + + @Test + public void getAllJournalsSi() { + + journalDAO.createJournal(testJournal); + journalDAO.createJournal(testJournal); + journalDAO.createJournal(testJournal); + testJournal.setStudentIdentifier(new StudentIdentifier("a", "b")); + journalDAO.createJournal(testJournal); + + ArrayList<Journal> resultJurnals = journalService.getAllJournals(testStudent, testProject); + + assertEquals(3, resultJurnals.size()); + + //Delete extra Journal + String jId = journalDAO.getAllByProject("a", "b").get(0).getId(); + journalDAO.deleteJournal(jId); + } + + @Test + public void getAllJournalsFilter() { + journalDAO.createJournal(testJournal); + testJournal.setVisibility(Visibility.MINE); + journalDAO.createJournal(testJournal); + testJournal.setVisibility(Visibility.GROUP); + journalDAO.createJournal(testJournal); + testJournal.setStudentIdentifier(new StudentIdentifier(testProject, "b")); + testJournal.setVisibility(Visibility.ALL); + journalDAO.createJournal(testJournal); + + ArrayList<Journal> resultJournals = journalService.getAllJournals("b", testProject); + + assertEquals(3, resultJournals.size()); + + //Delete extra Journal + String jId = journalDAO.getAllByProject(testProject, "b").get(0).getId(); + journalDAO.deleteJournal(jId); + + } + + @Test + public void saveJournal() { + //Create new + + journalService.saveJournal("0",testStudent,testProject,testEntry,testVisibility.toString(),testVisibility.toString()); + + String journalID = journalDAO.getAllByProject(testProject, testStudent).get(0).getId(); + + Journal resultJournal = journalDAO.getJournal(journalID); + + assertNotNull(resultJournal); + + assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent); + assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject); + assertEquals(resultJournal.getEntryMD(), testEntry); + assertEquals(resultJournal.getId(), journalID); + assertEquals(resultJournal.getVisibility(), testVisibility); + assertEquals(resultJournal.getCategory(), testCategory); + + + //Update + + journalService.saveJournal(journalID,testStudent,testProject,testEntry+testEntry,Visibility.MINE.toString(),Category.AUSWERTUNG.toString()); + + resultJournal = journalDAO.getJournal(journalID); + + assertNotNull(resultJournal); + + assertEquals(resultJournal.getStudentIdentifier().getStudentId(), testStudent); + assertEquals(resultJournal.getStudentIdentifier().getProjectId(), testProject); + assertEquals(resultJournal.getEntryMD(), testEntry+testEntry); + assertEquals(resultJournal.getId(), journalID); + assertEquals(resultJournal.getVisibility(), Visibility.MINE); + assertEquals(resultJournal.getCategory(), Category.AUSWERTUNG); + + + } + + @Test + public void deleteJournal() { + + journalDAO.createJournal(testJournal); + + ArrayList<Journal> resultJournals = journalDAO.getAllByProject(testProject, testStudent); + assertEquals(1, resultJournals.size()); + + String jId = resultJournals.get(0).getId(); + + journalService.deleteJournal(jId); + + resultJournals = journalDAO.getAllByProject(testProject, testStudent); + assertEquals(0, resultJournals.size()); + + } + + @Test + public void closeJournal() { + + journalDAO.createJournal(testJournal); + + Journal resultJournal = journalDAO.getAllByProject(testProject, testStudent).get(0); + + assertTrue(resultJournal.isOpen()); + + journalService.closeJournal(resultJournal.getId()); + resultJournal = journalDAO.getAllByProject(testProject, testStudent).get(0); + + assertFalse(resultJournal.isOpen()); + } + + @Test + public void checkIfAllJournalClosed() { + + Project project = new Project(); + project.setId(testProject); + + journalDAO.createJournal(testJournal); + journalDAO.createJournal(testJournal); + + ArrayList<Journal> resultJournals = journalDAO.getAllByProject(testProject,testStudent); + + assertFalse(journalService.checkIfAllJournalClosed(project)); + + for(Journal j : resultJournals){ + journalDAO.closeJournal(j.getId()); + } + + assertTrue(journalService.checkIfAllJournalClosed(project)); + + } + + @Test + public void getOpenUserByProject() { + + User user = new User("Test", "Test", "test@test.de", true); + String token = management.getUserToken(user); + + Project project = new Project(); + + testJournal.getStudentIdentifier().setStudentId(token); + project.setId(testProject); + + journalDAO.createJournal(testJournal); + + ArrayList<User> resultUsers = journalService.getOpenUserByProject(project); + + assertEquals(1,resultUsers.size()); + assertEquals(user.getEmail(),resultUsers.get(0).getId()); + } +} \ No newline at end of file diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImplTest.java new file mode 100644 index 0000000000000000000000000000000000000000..66b84406055c680e3c314354ec6897e9126eff5e --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImplTest.java @@ -0,0 +1,204 @@ +package unipotsdam.gf.modules.journal.service; + +import org.junit.After; +import org.junit.Test; +import unipotsdam.gf.core.management.Management; +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.journal.model.Link; +import unipotsdam.gf.modules.journal.model.ProjectDescription; +import unipotsdam.gf.modules.journal.model.dao.LinkDAO; +import unipotsdam.gf.modules.journal.model.dao.LinkDAOImpl; +import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAO; +import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAOImpl; + +import java.util.ArrayList; + +import static org.junit.Assert.*; + +public class ProjectDescriptionImplTest { + + private ProjectDescriptionService projectDescriptionService = new ProjectDescriptionImpl(); + + private ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl(); + private LinkDAO linkDAO = new LinkDAOImpl(); + private Management management = new ManagementImpl(); + + private String testId = "-1"; + private String testStudent = "testStudent"; + private String testDescription = "testDescription"; + private String testProject = "testProject"; + + private String testProjectDescription = "testproject"; + private String testName = "testname"; + private String testLink = "https://www.test.de"; + private Link testLinkObj = new Link(testId, testProjectDescription, testName, testLink); + + private ArrayList<Link> linkArrayList = new ArrayList<>(); + + private ProjectDescription testProjectDescriptionObj = new ProjectDescription(testId, testStudent, testDescription, testProject, linkArrayList); + + @After + public void cleanUp() { + StudentIdentifier deleteIdentifier = new StudentIdentifier(testProject, testStudent); + ProjectDescription deleteDescription = descriptionDAO.getDescription(deleteIdentifier); + descriptionDAO.deleteDescription(deleteIdentifier); + + if (deleteDescription != null) { + ArrayList<Link> deleteLinks = linkDAO.getAllLinks(deleteDescription.getId()); + + for (Link l : deleteLinks) { + linkDAO.deleteLink(l.getId()); + } + } + } + + @Test + public void getProjectbyStudent() { + //NO description exists + projectDescriptionService.getProjectByStudent(new StudentIdentifier(testProject, testStudent)); + + ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + String id = resProjectDescription.getId(); + + assertNotNull(resProjectDescription); + assertEquals("Hier soll ein Turtorialtext stehen", resProjectDescription.getDescriptionMD()); + assertEquals(testStudent, resProjectDescription.getStudent().getStudentId()); + assertEquals(testProject, resProjectDescription.getStudent().getProjectId()); + + //description exists + resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + + assertNotNull(resProjectDescription); + assertEquals(id, resProjectDescription.getId()); + assertEquals("Hier soll ein Turtorialtext stehen", resProjectDescription.getDescriptionMD()); + assertEquals(testStudent, resProjectDescription.getStudent().getStudentId()); + assertEquals(testProject, resProjectDescription.getStudent().getProjectId()); + + } + + @Test + public void getProjectbyId() { + + descriptionDAO.createDescription(testProjectDescriptionObj); + String id = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)).getId(); + + testLinkObj.setProjectDescription(id); + linkDAO.addLink(testLinkObj); + + ProjectDescription resProjectDescription = projectDescriptionService.getProjectById(id); + + assertNotNull(resProjectDescription); + assertEquals(testDescription, resProjectDescription.getDescriptionMD()); + assertEquals(testStudent, resProjectDescription.getStudent().getStudentId()); + assertEquals(testProject, resProjectDescription.getStudent().getProjectId()); + + ArrayList<Link> links = resProjectDescription.getLinks(); + assertEquals(1, links.size()); + assertEquals(testLink, links.get(0).getLink()); + assertEquals(testName, links.get(0).getName()); + + } + + @Test + public void saveProjectText() { + descriptionDAO.createDescription(testProjectDescriptionObj); + + projectDescriptionService.saveProjectText(new StudentIdentifier(testProject, testStudent), testName); + + ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + + assertEquals(testName, resProjectDescription.getDescriptionMD()); + + } + + @Test + public void addLink() { + descriptionDAO.createDescription(testProjectDescriptionObj); + ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + + projectDescriptionService.addLink(resProjectDescription.getId(), testLink, testName); + + ArrayList<Link> resLinks = linkDAO.getAllLinks(resProjectDescription.getId()); + + assertEquals(1, resLinks.size()); + assertEquals(resProjectDescription.getId(), resLinks.get(0).getProjectDescription()); + assertEquals(testName, resLinks.get(0).getName()); + assertEquals(testLink, resLinks.get(0).getLink()); + + } + + @Test + public void deleteLink() { + descriptionDAO.createDescription(testProjectDescriptionObj); + ProjectDescription resProjectDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + + testLinkObj.setProjectDescription(resProjectDescription.getId()); + linkDAO.addLink(testLinkObj); + + ArrayList<Link> resLinks = linkDAO.getAllLinks(resProjectDescription.getId()); + + assertEquals(1, resLinks.size()); + + projectDescriptionService.deleteLink(resLinks.get(0).getId()); + + resLinks = linkDAO.getAllLinks(resProjectDescription.getId()); + assertEquals(0, resLinks.size()); + + } + + @Test + public void closeDescription() { + + descriptionDAO.createDescription(testProjectDescriptionObj); + + ProjectDescription resDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + + assertTrue(resDescription.isOpen()); + + projectDescriptionService.closeDescription(resDescription.getId()); + + resDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + + assertFalse(resDescription.isOpen()); + } + + @Test + public void checkIfAllDescriptionsClosed() { + + descriptionDAO.createDescription(testProjectDescriptionObj); + + Project project = new Project(); + project.setId(testProject); + assertFalse(projectDescriptionService.checkIfAllDescriptionsClosed(project)); + + ProjectDescription resDescription = descriptionDAO.getDescription(new StudentIdentifier(testProject, testStudent)); + + descriptionDAO.closeDescription(resDescription.getId()); + + assertTrue(projectDescriptionService.checkIfAllDescriptionsClosed(project)); + + } + + @Test + public void getOpenUserByProject() { + User user = new User("Test", "Test", "test@test.de", true); + String token = management.getUserToken(user); + + Project project = new Project(); + project.setId(testProject); + + testProjectDescriptionObj.getStudent().setStudentId(token); + descriptionDAO.createDescription(testProjectDescriptionObj); + + ArrayList<User> resultUser = projectDescriptionService.getOpenUserByProject(project); + + assertEquals(1, resultUser.size()); + assertEquals(user.getEmail(), resultUser.get(0).getId()); + + StudentIdentifier delUser = new StudentIdentifier(testProject, token); + descriptionDAO.deleteDescription(delUser); + } +} \ No newline at end of file