diff --git a/.gitignore b/.gitignore index fdd8abe91e7a54c6db8d2dce5d522e4c8a61ff12..08a5755e850dceadea7ed43d961e9c8bc31f8d5d 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ /.idea/vcs.xml /.idea/workspace.xml **/.idea -**/GFRocketChatConfig.java \ No newline at end of file +**/GFRocketChatConfig.java +/studentview/.idea/workspace.xml 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 17049249f83b82a452f31e805723a65bf11f7678..de7d93efe990daf69fb5f5cd80e095ddc007736a 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java @@ -130,5 +130,7 @@ public interface Management { void create(ProjectConfiguration projectConfiguration, Project project); ProjectConfiguration getProjectConfiguration(Project project); + + String getProjectToken(String projectName, String password); } 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 c5bcc092ed699e2ab8ca7f93fcafd946dd58fb26..8875c571b97a9537eab6a29b379a9e822d6dc61b 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java @@ -49,10 +49,10 @@ public class ManagementImpl implements Management { 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()); + 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 @@ -67,11 +67,16 @@ public class ManagementImpl implements Management { MysqlConnect connect = new MysqlConnect(); connect.connect(); String mysqlRequest = - "INSERT INTO projects (`id`, `password`, `active`, `timecreated`, `author`, " - + "`adminPassword`, `token`, `phase`) values (?,?,?,?,?,?,?,?)"; + "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()); + project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token, + project.getPhase() == null ? ProjectPhase.CourseCreation : project.getPhase()); + + String mysql2Request = "INSERT INTO tags (`projectId`, `tag`) values (?,?)"; + String[] tags = project.getTags(); + for (String tag : tags) { + connect.issueInsertOrDeleteStatement(mysql2Request, project.getId(), tag); + } connect.close(); } @@ -100,13 +105,13 @@ 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.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(), user.getToken(), + user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail()); connect.close(); } @@ -139,10 +144,7 @@ public class ManagementImpl implements Management { @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 = ?"; + "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(); @@ -183,13 +185,15 @@ public class ManagementImpl implements Management { String adminPassword = vereinfachtesResultSet.getString("adminpassword"); String token = vereinfachtesResultSet.getString("token"); String phase = vereinfachtesResultSet.getString("phase"); - Project project = new Project(id, password, active, timestamp, author, adminPassword, token, ProjectPhase.valueOf(phase)); + 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 void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) { + private void fillGroupFromResultSet( + VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) { int id = vereinfachtesResultSet.getInt("id"); if (existingGroups.containsKey(id)) { existingGroups.get(id).addMember(getUserFromResultSet(vereinfachtesResultSet)); @@ -232,8 +236,6 @@ public class ManagementImpl implements Management { /** - * - * * @param value * @return */ @@ -241,8 +243,7 @@ public class ManagementImpl implements Management { MysqlConnect connect = new MysqlConnect(); connect.connect(); String mysqlRequest = "SELECT * FROM users where " + field + " = ?"; - VereinfachtesResultSet vereinfachtesResultSet = - connect.issueSelectStatement(mysqlRequest, value); + VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, value); boolean next = vereinfachtesResultSet.next(); if (next) { User user = getUserFromResultSet(vereinfachtesResultSet); @@ -256,14 +257,13 @@ public class ManagementImpl implements Management { @Override public Project getProjectById(String id) { - if (id == null){ + if (id == null) { return null; } MysqlConnect connect = new MysqlConnect(); connect.connect(); String mysqlRequest = "SELECT * FROM projects where id = ?"; - VereinfachtesResultSet vereinfachtesResultSet = - connect.issueSelectStatement(mysqlRequest, id); + VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, id); boolean next = vereinfachtesResultSet.next(); if (next) { Project project = getProjectFromResultSet(vereinfachtesResultSet); @@ -304,11 +304,9 @@ public class ManagementImpl implements Management { 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); + 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); @@ -334,10 +332,25 @@ public class ManagementImpl implements Management { return projectConfigurationDAO.loadProjectConfiguration(project); } - public String saveProfilePicture(FileInputStream image, String studentId){ + @Override + public String getProjectToken(String projectName, String password) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String query = "SELECT a.token from projects a where a.password = ? and a.id = ?"; + VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(projectName, password); + + String result = ""; + while (vereinfachtesResultSet.next()) { + result = vereinfachtesResultSet.getString("token"); + } + connect.close(); + return result; + } + + public String saveProfilePicture(FileInputStream image, String studentId) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - Blob blobbedImage= (Blob) image; + 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/project/Project.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java index 6ca31795c7dd6b06f1d9a40ff1a8d9d66e2f32a9..14871803ee64aba859de3f5702790905ebc1eb4e 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 @@ -2,6 +2,7 @@ package unipotsdam.gf.core.management.project; import unipotsdam.gf.core.states.ProjectPhase; +import javax.xml.bind.annotation.XmlRootElement; import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.ZoneId; @@ -9,6 +10,7 @@ import java.time.ZoneId; /** * Created by dehne on 31.05.2018. */ +@XmlRootElement(name = "Project") public class Project { private String id; @@ -19,11 +21,12 @@ public class Project { private String adminPassword; private String token; private ProjectPhase phase; + private String[] tags; public Project() { } - public Project(String id, String password, Boolean active, String author, String adminPassword) { + public Project(String id, String password, Boolean active, String author, String adminPassword, String[] tags) { this.id = id; this.password = password; this.active = active; @@ -32,6 +35,7 @@ public class Project { this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC"))); // default starting at course creation if new this.setPhase(ProjectPhase.CourseCreation); + this.tags = tags; } public Project(String id, String password, Boolean active, @@ -45,6 +49,7 @@ public class Project { this.adminPassword = adminPassword; this.token = token; this.phase = phase; + this.tags = tags; } public String getId() { @@ -112,6 +117,14 @@ public class Project { this.phase = phase; } + public String[] getTags() { + return tags; + } + + public void setTags(String[] tags) { + this.tags = tags; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("Project{"); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectService.java new file mode 100644 index 0000000000000000000000000000000000000000..36d80a9b9de5c78727abf19c08628d5d983f54ab --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectService.java @@ -0,0 +1,57 @@ +package unipotsdam.gf.core.management.project; + +import unipotsdam.gf.core.management.Management; +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.interfaces.ICommunication; + +import javax.annotation.ManagedBean; +import javax.inject.Inject; +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.net.URISyntaxException; + + +@ManagedBean +@Path("/project") +public class ProjectService { + + + @Inject + private Management iManagement; + + @PUT + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.TEXT_PLAIN) + @Path("/create") + public Response createProject(Project project) throws URISyntaxException { + + iManagement.create(project); + return Response.ok("project has been created").build(); + } + + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.TEXT_PLAIN) + @Path("/token") + public String getProjectToken( + @QueryParam("project") String projectName, @QueryParam("password") String password) + throws URISyntaxException { + + String token = iManagement.getProjectToken(projectName, password); + return token; + } + + /* @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.TEXT_PLAIN) + @Path("/token") + public String projectExists( + @QueryParam("project") String projectName, @QueryParam("password") String password) + throws URISyntaxException { + + String token = iManagement.getProjectToken(projectName, password); + return token; + }*/ +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IMunschkin.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IMunschkin.java deleted file mode 100644 index 7b0acf2b2d1a17044d63cd98cca96cbb901a79b6..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IMunschkin.java +++ /dev/null @@ -1,12 +0,0 @@ -package unipotsdam.gf.interfaces; - -import unipotsdam.gf.modules.munchkin.model.Munschkin; - -/** - * Created by dehne on 25.04.2018. - */ -public interface IMunschkin { - - Munschkin getMunschkin (int id); - void letMunchKinFight(Munschkin otherMunchkin); -} 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 09fba126c48b52b04893ac4d08a4f207ffe478a5..bbdc11bf67597bdbcc938744feac3d1fef4983e9 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 @@ -30,7 +30,7 @@ public class GroupCreationService { public boolean createExampleProject() { User docentUser = getDocentUser(); - Project project = new Project("1", "", true, docentUser.getEmail(), "admin"); + Project project = new Project("1", "", true, docentUser.getEmail(), "admin", null); List<Group> groups = createDummyGroups(project.getId()); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/controller/MunchkinImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/controller/MunchkinImpl.java deleted file mode 100644 index 458537256ed3017a3bf72d3ae28af793854bda7c..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/controller/MunchkinImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package unipotsdam.gf.modules.munchkin.controller; - -import unipotsdam.gf.interfaces.IMunschkin; -import unipotsdam.gf.modules.munchkin.model.Munschkin; - -import java.sql.*; - -/** - * Created by dehne on 24.04.2018. - */ -public class MunchkinImpl implements IMunschkin { - - static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; - static final String DB_URL = "jdbc:mysql://localhost"; - - // Database credentials - static final String USER = "root"; - static final String PASS = ""; - - // Es gibt natürlich auch libraries, die den Datenbankzugriff einfacher gestalten. Ziel soll sein, dass alle - // die Basics können. Es ist auch sinnvoll, die Datenbankzugriffe in eine eigene Klasse auszulagern!! - @Override - public Munschkin getMunschkin(int id) { - - Munschkin munschkin = new Munschkin(); - - // JDBC driver name and database URL - Connection conn = null; - Statement stmt = null; - try { - //STEP 2: Register JDBC driver - Class.forName("com.mysql.jdbc.Driver"); - - //STEP 3: Open a connection - System.out.println("Connecting to database..."); - conn = DriverManager.getConnection(DB_URL, USER, PASS); - - //STEP 4: Execute a query - System.out.println("Creating statement..."); - stmt = conn.createStatement(); - String sql; - sql = "Use munschkins;"; - System.out.println(sql); - ResultSet rs = stmt.executeQuery(sql); - sql = "SELECT MunschkinId, LastName, FirstName, BadThings, Strength FROM Munschkins WHERE " + - "MunschkinId="+id+";"; - rs = stmt.executeQuery(sql); - - //STEP 5: Extract data from result set - while (rs.next()) { - //Retrieve by column name - munschkin.setMunschkinId(rs.getInt("MunschkinId")); - munschkin.setBadThings(rs.getString("BadThings")); - munschkin.setLastName(rs.getString("LastName")); - munschkin.setFirstName(rs.getString("FirstName")); - munschkin.setStrength(rs.getInt("Strength")); - } - //STEP 6: Clean-up environment - rs.close(); - stmt.close(); - conn.close(); - } catch (SQLException se) { - //Handle errors for JDBC - se.printStackTrace(); - } catch (Exception e) { - //Handle errors for Class.forName - e.printStackTrace(); - } finally { - //finally block used to close resources - try { - if (stmt != null) - stmt.close(); - } catch (SQLException se2) { - }// nothing we can do - try { - if (conn != null) - conn.close(); - } catch (SQLException se) { - se.printStackTrace(); - }//end finally try - }//end try - - return munschkin; - } - - @Override - public void letMunchKinFight(Munschkin otherMunchkin) { - // TODO was euer Algorithmus sonst noch so kann - } -} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/model/Munschkin.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/model/Munschkin.java deleted file mode 100644 index 883392b74bfe646099f7331010ada5650a1d3a98..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/model/Munschkin.java +++ /dev/null @@ -1,85 +0,0 @@ -package unipotsdam.gf.modules.munchkin.model; - -import javax.xml.bind.annotation.XmlRootElement; - -/** - * Created by dehne on 24.04.2018. - */ - -@XmlRootElement(name = "Munschkin") -public class Munschkin { - private int munschkinId; - private String lastName; - private String firstName; - private String BadThings; - private int strength; - - public Munschkin() { - - } - -/* - public Munschkin(int munschkinId, String lastName, String firstName, String badThings, int strength) { - this.munschkinId = munschkinId; - this.lastName = lastName; - this.firstName = firstName; - BadThings = badThings; - this.strength = strength; - } -*/ - - - - public int getMunschkinId() { - return munschkinId; - } - - public void setMunschkinId(int munschkinId) { - this.munschkinId = munschkinId; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getBadThings() { - return BadThings; - } - - public void setBadThings(String badThings) { - BadThings = badThings; - } - - public int getStrength() { - return strength; - } - - public void setStrength(int strength) { - this.strength = strength; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder("Munschkin{"); - sb.append("munschkinId=").append(munschkinId); - sb.append(", lastName='").append(lastName).append('\''); - sb.append(", firstName='").append(firstName).append('\''); - sb.append(", BadThings='").append(BadThings).append('\''); - sb.append(", strength=").append(strength); - sb.append(", badThings='").append(getBadThings()).append('\''); - sb.append('}'); - return sb.toString(); - } -} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/service/RestyMunschkin.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/service/RestyMunschkin.java deleted file mode 100644 index 256554946e5218afacaedc914e21fe9c1f70ca01..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/munchkin/service/RestyMunschkin.java +++ /dev/null @@ -1,60 +0,0 @@ -package unipotsdam.gf.modules.munchkin.service; - -/** - * Created by dehne on 24.04.2018. - */ - -import unipotsdam.gf.interfaces.IMunschkin; -import unipotsdam.gf.modules.munchkin.controller.MunchkinImpl; -import unipotsdam.gf.modules.munchkin.model.Munschkin; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api") -public class RestyMunschkin { - - - // This method is called if HTML is request - @GET - @Produces(MediaType.TEXT_HTML) - @Path("/hello/{id}") - public String sayHtmlHello(@PathParam("id") String id) { - IMunschkin munchkinImpl = new MunchkinImpl(); - Munschkin munschkin = munchkinImpl.getMunschkin(Integer.parseInt(id)); - return "<html> " + "<title>" + "Hello Munschkin" + "</title>" + "<body><h1>" + munschkin - .toString() + "</body></h1>" + "</html> "; - } - - // This method is called if HTML is request - @GET - @Produces(MediaType.APPLICATION_XML) - @Path("/munschkin/{id}") - public Munschkin getMunschkin(@PathParam("id") String id) { - IMunschkin munchkinImpl = new MunchkinImpl(); - Munschkin munschkin = munchkinImpl.getMunschkin(Integer.parseInt(id)); - return munschkin; - } - - @GET - @Produces(MediaType.TEXT_HTML) - @Path("/project/{projectId}/quiz/{quizId}") - public String exampleQuiz(@PathParam("projectId") String name, @PathParam("quizId") String quiz) { - /**String[] correctAnswers = new String[2]; - correctAnswers[0] = "42"; - correctAnswers[1] = "24"; - String[] wrongAnswers = {"a god created creature", "a sum of my mistakes"}; - if (false){ - return "ProjectId not found: " + name; - } - Quiz sampleQuiz = new Quiz("multiple","Who am I and if so, how many?", correctAnswers,wrongAnswers); - log.info("HelloWorldview helloWorld Method answered: "+ sampleQuiz.toString()); - return sampleQuiz.toString();*/ - return "<html> " + "<title>" + "Hello Munschkin" + "</title>" + "<body><h1>" + "</body></h1>" + "</html> "; - - } - - -} diff --git a/gemeinsamforschen/src/main/webapp/core/overview-docent.js b/gemeinsamforschen/src/main/webapp/core/overview-docent.js index 77cd2693f2740cc2cb0a36e504271eecae90310e..dd6a331cd5539f798b452d95ac5dde4beee020c6 100644 --- a/gemeinsamforschen/src/main/webapp/core/overview-docent.js +++ b/gemeinsamforschen/src/main/webapp/core/overview-docent.js @@ -6,7 +6,7 @@ $(document).ready(function(){ location.href="project-docent.jsp?token="+getUserTokenFromUrl()+'&projectId='+'Kaleo'; }); $('#createProject').on('click', function(){ - location.href="createProject.jsp?token="+getUserTokenFromUrl(); + location.href="./management/create-project.jsp?token="+getUserTokenFromUrl(); }); }); \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/management/create-project.jsp b/gemeinsamforschen/src/main/webapp/management/create-project.jsp index c7be48010ccca471a7ea94968845991f6c889c62..22f36e299534f2363ce79bbffd9177210a132574 100644 --- a/gemeinsamforschen/src/main/webapp/management/create-project.jsp +++ b/gemeinsamforschen/src/main/webapp/management/create-project.jsp @@ -10,6 +10,9 @@ <%@ taglib uri="../core/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/gemeinsamForschen.tld" prefix="omniDependencies" %> +<omniDependencies:omniDependencies hierarchy="1"></omniDependencies:omniDependencies> +<script type="text/javascript" src="../libs/jQuery-Tags-Input-master/src/jquery.tagsinput.js"></script> + <html> <head> @@ -17,11 +20,10 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Projekterstellung</title> <script src="js/config.js"></script> - <script src="js/newProject.js"></script> + <script src="js/create-project.js"></script> </head> <body> -<p id="user" hidden><?php echo $userName; ?></p> <div class="loader-inactive" id="loader"> <div class="sk-cube1 sk-cube"></div> diff --git a/gemeinsamforschen/src/main/webapp/management/js/newProject.js b/gemeinsamforschen/src/main/webapp/management/js/create-project.js similarity index 86% rename from gemeinsamforschen/src/main/webapp/management/js/newProject.js rename to gemeinsamforschen/src/main/webapp/management/js/create-project.js index be07b3fead5a21b1ba8d1703d8f5688f01facc53..5b15e0881bc8f39f9a93315d1a55df230d2271e5 100644 --- a/gemeinsamforschen/src/main/webapp/management/js/newProject.js +++ b/gemeinsamforschen/src/main/webapp/management/js/create-project.js @@ -54,23 +54,35 @@ function createNewProject(allTheTags, activ) { document.getElementById('loader').className = "loader"; document.getElementById('wrapper').className = "wrapper-inactive"; - var localurl = "../database/getProjects.php?project=" + projectName; + var localurl = "../../gemeinsamforschen/rest/project/create"; if (allTheTags.length !== 5) { document.getElementById('tagHelper').className = "alert alert-warning"; } else { document.getElementById('tagHelper').className = ""; } + // TODO find out author + var project = { + "id": projectName, + "password": password, + "active": true, + "timecreated": null, + "author": "STFHXOqQj2", + "adminPassword": adminPassword, + "token": "QCqGuQlYLL", + "phase": "GroupFormation", + "tags": allTheTags + } $('#projectIsMissing').hide(); $.ajax({ //check local DB for existence of projectName url: localurl, - projectName: projectName, + contentType: 'application/json', activ: activ, - Accept: "text/plain; charset=utf-8", - contentType: "text/plain", + type: 'PUT', + data: JSON.stringify(project), success: function (response) { - if (response !== "project missing") { + if (response === "project missing") { $('#projectNameExists').show(); document.getElementById('loader').className = "loader-inactive"; document.getElementById('wrapper').className = "wrapper"; @@ -114,7 +126,7 @@ function createNewProject(allTheTags, activ) { document.getElementById('loader').className = "loader-inactive"; document.getElementById('wrapper').className = "wrapper"; if ($('#Teilnehmer').prop("checked")) { //if author wants to join the course, he needs to be redirected to enter-preferences.jsp - var url = "../database/getProjects.php?project=" + projectName + "&password=" + document.getElementById('passwordProject').value; + var url = "../../gemeinsamforschen/rest/project/token?project=" + projectName + "&password=" + document.getElementById('passwordProject').value; $.ajax({ url: url, projectName: projectName, @@ -128,7 +140,7 @@ function createNewProject(allTheTags, activ) { } }); } else { //if author is just author and not member, he will be directed to projects.php - location.href = "projects.php?token=" + getUserTokenFromUrl(); + location.href = "../project-docent.jsp?token=" + getUserTokenFromUrl(); } }); } @@ -144,7 +156,7 @@ function createNewProject(allTheTags, activ) { } function addProjectToLocalDB(allTheTags, projectName, password, activ, adminPassword) { - var tags = JSON.stringify(allTheTags); + /*var tags = JSON.stringify(allTheTags); var author = $("#user").text().trim(); var url = "../database/putProject.php?project=" + projectName + "&password=" + password + "&activ=" + activ + "&token=" + getUserTokenFromUrl() + "&adminpassword=" + adminPassword + "&author=" + author; return $.ajax({ @@ -158,5 +170,6 @@ function addProjectToLocalDB(allTheTags, projectName, password, activ, adminPass error: function (a, b, c) { console.log(a); } - }); + });*/ + // Project has been added with the exist function - maybe that was the wrong approach? } \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/overview-docent.jsp b/gemeinsamforschen/src/main/webapp/overview-docent.jsp index b90362fcfb6f42c332b75cc2ad9f6957014ab30e..470a45bb4472244ef60b2f5646fe0453a391fa32 100644 --- a/gemeinsamforschen/src/main/webapp/overview-docent.jsp +++ b/gemeinsamforschen/src/main/webapp/overview-docent.jsp @@ -83,7 +83,9 @@ </tr> </table> </div> - <button class="btn btn-default" type="button" id="createProject" style="margin-left:250px;">Projekt erstellen</button> + + <button class="btn btn-default" type="button" id="createProject" style="margin-left:250px;">Projekt + erstellen</button> </div> </body> diff --git a/gemeinsamforschen/src/test/java/MunschkinLoaderTest.java b/gemeinsamforschen/src/test/java/MunschkinLoaderTest.java deleted file mode 100644 index d86b172c252c26ab5b8c2e4213a58d7b970ee1d1..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/test/java/MunschkinLoaderTest.java +++ /dev/null @@ -1,20 +0,0 @@ -import unipotsdam.gf.interfaces.IMunschkin; -import unipotsdam.gf.modules.munchkin.controller.MunchkinImpl; -import unipotsdam.gf.modules.munchkin.model.Munschkin; -import org.junit.Test; - -/** - * Created by dehne on 24.04.2018. - */ -public class MunschkinLoaderTest { - @Test - public void testMunschKinLoader() { - IMunschkin m = new MunchkinImpl(); - // Nützlich weil: IMunschkin m2 = new HendriksMunchkinImpl(); - - // ab hier ist es dem Code egal, welche Implementation hinter dem Interface steht - Munschkin loadedM = m.getMunschkin(1); - assert loadedM != null; - System.out.print(loadedM.toString()); - } -} diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java index 9fbce54234111c240d671b9fb5e6ea7443201dda..828a7abefa431263cac794b630f4fb0fd94b3d62 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java @@ -68,7 +68,8 @@ public class ManagementTest { @Test public void testCreate1() { ManagementImpl management = new ManagementImpl(); - management.create(new Project("Gemainsam Forschen", "1235", true, "me", "keins")); + Project project = factory.manufacturePojo(Project.class); + management.create(project); } @@ -79,7 +80,7 @@ public class ManagementTest { management.create(user, new UserProfile()); assert management.exists(user); - Project project = new Project("Gemainsam Forschen", "1235", true, "me", "keins"); + Project project = factory.manufacturePojo(Project.class); management.create(project); management.register(user, project, null); } @@ -106,7 +107,7 @@ public class ManagementTest { management.create(user, new UserProfile()); assert management.exists(user); - Project project = new Project("Gemainsam Forschen", "1235", true, "me", "keins"); + Project project = factory.manufacturePojo(Project.class); management.create(project); management.register(user, project, null); diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java index 9d59d39a89bade2431dee22455ef1bcc457c1f2a..ff755d0a0e1b9a024730a3dad073dff9d1f7ed6b 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java @@ -5,6 +5,8 @@ import org.glassfish.hk2.utilities.ServiceLocatorUtilities; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import uk.co.jemos.podam.api.PodamFactory; +import uk.co.jemos.podam.api.PodamFactoryImpl; import unipotsdam.gf.config.GFApplicationBinder; import unipotsdam.gf.core.management.ManagementImpl; import unipotsdam.gf.core.management.project.Project; @@ -18,6 +20,11 @@ public class PhaseTest { @Inject private IPhases phases; + /** + * Utility to creaty dummy data for students + */ + static PodamFactory factory = new PodamFactoryImpl(); + @Before public void setUp() { @@ -32,7 +39,7 @@ public class PhaseTest { management.create(user, new UserProfile()); assert management.exists(user); - Project project = new Project("Gemainsam Forschen", "1235", true, "me", "keins"); + Project project = factory.manufacturePojo(Project.class); management.create(project); management.register(user, project, null); } diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/testsandbox/JacksonPojoToJson.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/testsandbox/JacksonPojoToJson.java new file mode 100644 index 0000000000000000000000000000000000000000..a320df8375a5490aaae245274d0d879d0a5d4eb1 --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/testsandbox/JacksonPojoToJson.java @@ -0,0 +1,39 @@ +package unipotsdam.gf.testsandbox; + + +import java.io.FileOutputStream; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import uk.co.jemos.podam.api.PodamFactory; +import uk.co.jemos.podam.api.PodamFactoryImpl; +import unipotsdam.gf.core.management.project.Project; + +public class JacksonPojoToJson { + + + /** + * Utility to creaty dummy data for students + */ + static PodamFactory factory = new PodamFactoryImpl(); + + public static void main(String[] args) throws Exception { + + // shows how to use + writeExample(Project.class); + } + + public static void writeExample(Class object) throws JsonProcessingException { + // Create ObjectMapper + ObjectMapper mapper = new ObjectMapper(); + mapper.enable(SerializationFeature.INDENT_OUTPUT); + + Object mappable = factory.manufacturePojo(object); + + // Convert object to JSON string + String json = mapper.writeValueAsString(mappable); + System.out.println(json); + } +} +