diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 598d80da2adf47d92e23d8181b842bc1624d261a..cdb87b61d141b95d6dfae563e6278f876d587d41 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -402,6 +402,7 @@ public class CouchDBDao implements IDatabaseDao { sessionDocument.put("courseType", session.getCourseType()); sessionDocument.put("courseId", session.getCourseId()); sessionDocument.put("creationTime", session.getCreationTime()); + sessionDocument.put("learningProgressType", session.getLearningProgressType()); sessionDocument.put("ppAuthorName", session.getPpAuthorName()); sessionDocument.put("ppAuthorMail", session.getPpAuthorMail()); sessionDocument.put("ppUniversity", session.getPpUniversity()); @@ -1290,6 +1291,7 @@ public class CouchDBDao implements IDatabaseDao { s.put("name", session.getName()); s.put("shortName", session.getShortName()); s.put("active", session.isActive()); + s.put("learningProgressType", session.getLearningProgressType()); database.saveDocument(s); session.set_rev(s.getRev()); diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java index 78e7dbd386229bac08d0d68fb7d38f95109b1e19..f93ddbba4975023f7acb393972e7ca7e3f409b69 100644 --- a/src/main/java/de/thm/arsnova/entities/Session.java +++ b/src/main/java/de/thm/arsnova/entities/Session.java @@ -37,6 +37,7 @@ public class Session implements Serializable { private String courseId; private List<String> _conflicts; private long creationTime; + private String learningProgressType = "questions"; private String ppAuthorName; private String ppAuthorMail; @@ -186,6 +187,14 @@ public class Session implements Serializable { this.creationTime = creationTime; } + public String getLearningProgressType() { + return learningProgressType; + } + + public void setLearningProgressType(String learningProgressType) { + this.learningProgressType = learningProgressType; + } + public String getPpAuthorName() { return ppAuthorName; } diff --git a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressType.java b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressType.java new file mode 100644 index 0000000000000000000000000000000000000000..3fa990db56feccb83f5f8707cd17af72235a5056 --- /dev/null +++ b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressType.java @@ -0,0 +1,24 @@ +package de.thm.arsnova.entities.transport; + +public class LearningProgressType { + + private String sessionKeyword; + + private String learningProgressType; + + public String getSessionKeyword() { + return sessionKeyword; + } + + public void setSessionKeyword(String sessionKeyword) { + this.sessionKeyword = sessionKeyword; + } + + public String getLearningProgressType() { + return learningProgressType; + } + + public void setLearningProgressType(String learningProgressType) { + this.learningProgressType = learningProgressType; + } +} diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java index aa1250b9b6ad9f6c15fcd5c2c4c414b133b1106d..60c7479e2b5445ae7e3bf7741a10e8811ba8bf0a 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -37,8 +37,6 @@ public interface ISessionService { List<Session> getMySessions(); - List<Session> getPublicPoolSessions(); - List<Session> getMyVisitedSessions(); int countSessions(List<Course> courses); diff --git a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java index 2cb748b7c183b3ae23f68633ca7991005dd09d64..94fa0787f722f9cca17ace8f8f066760cdacdb34 100644 --- a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java +++ b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java @@ -48,6 +48,7 @@ import com.corundumstudio.socketio.protocol.PacketType; import de.thm.arsnova.entities.InterposedQuestion; import de.thm.arsnova.entities.User; +import de.thm.arsnova.entities.transport.LearningProgressType; import de.thm.arsnova.events.DeleteAnswerEvent; import de.thm.arsnova.events.NewAnswerEvent; import de.thm.arsnova.events.NewInterposedQuestionEvent; @@ -188,6 +189,21 @@ public class ARSnovaSocketIOServer implements ApplicationListener<NovaEvent>, No } }); + server.addEventListener( + "setLearningProgressType", + LearningProgressType.class, + new DataListener<LearningProgressType>() { + @Override + public void onData(SocketIOClient client, LearningProgressType progressType, AckRequest ack) { + final User user = userService.getUser2SocketId(client.getSessionId()); + final de.thm.arsnova.entities.Session session = sessionService.getSession(progressType.getSessionKeyword()); + if (session.isCreator(user)) { + session.setLearningProgressType(progressType.getLearningProgressType()); + sessionService.updateSession(progressType.getSessionKeyword(), session); + } + } + }); + server.addConnectListener(new ConnectListener() { @Override public void onConnect(final SocketIOClient client) { }