diff --git a/akka-bbb-apps/build.sbt b/akka-bbb-apps/build.sbt index fd706f13697451f3b8e9c8db5384e008a62cf06a..b33e2aa3e6234853ad720e3c5ef8c4f2bbd6cfcb 100755 --- a/akka-bbb-apps/build.sbt +++ b/akka-bbb-apps/build.sbt @@ -50,7 +50,7 @@ libraryDependencies ++= { "com.google.code.gson" % "gson" % "1.7.1", "redis.clients" % "jedis" % "2.1.0", "org.apache.commons" % "commons-lang3" % "3.2", - "org.bigbluebutton" % "bbb-common-message" % "0.0.8" + "org.bigbluebutton" % "bbb-common-message" % "0.0.9" )} diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala index 1a8d56dad578990e3af2c2d70a27184703907dd7..e367a9e0391916ad22fc4834256259aafefb13d5 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala @@ -395,7 +395,8 @@ class MessageSenderActor(val meetingId: String, val service: MessageSender) private def pollResultVOtoMap(msg: SimplePollResultOutVO): java.util.HashMap[String, Object] = { val pollVO = new java.util.HashMap[String, Object]() pollVO.put("id", msg.id) - + pollVO.put("num_respondents", msg.numRespondents: java.lang.Integer) + pollVO.put("num_responders", msg.numResponders: java.lang.Integer) val answers = new java.util.ArrayList[java.util.Map[String, Any]]; msg.answers.foreach(ans => { val amap = new java.util.HashMap[String, Any]() diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/Poll.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/Poll.scala index 5aec47d5a7219c071e80ed1ef7381207e8b779c7..eece8ec2d30c0bce65c6e162d6d3dba826647df2 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/Poll.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/Poll.scala @@ -87,12 +87,12 @@ object PollFactory { questionOption } - def createPoll(id: String, pollType: String): Option[Poll] = { + def createPoll(id: String, pollType: String, numRespondents: Int): Option[Poll] = { var poll: Option[Poll] = None createQuestion(pollType) match { case Some(question) => { - poll = Some(new Poll(id, Array(question), None)) + poll = Some(new Poll(id, Array(question), numRespondents, None)) } case None => poll = None } @@ -118,13 +118,13 @@ case class SimpleAnswerOutVO(id: Int, key: String) case class SimplePollOutVO(id: String, answers: Array[SimpleAnswerOutVO]) case class SimpleVoteOutVO(id: Int, key: String, numVotes: Int) -case class SimplePollResultOutVO(id: String, answers: Array[SimpleVoteOutVO]) +case class SimplePollResultOutVO(id: String, answers: Array[SimpleVoteOutVO], numRespondents: Int, numResponders: Int) -class Poll(val id: String, val questions: Array[Question], val title: Option[String]) { +class Poll(val id: String, val questions: Array[Question], val numRespondents: Int, val title: Option[String]) { private var _started: Boolean = false private var _stopped: Boolean = false - private var _showResult: Boolean = false + private var _numResponders: Int = 0 def showingResult() { _showResult = true } def hideResult() { _showResult = false } @@ -152,6 +152,7 @@ class Poll(val id: String, val questions: Array[Question], val title: Option[Str questions.foreach(q => { if (q.id == questionID) { q.respondToQuestion(responseID, responder) + _numResponders += 1 } }) } @@ -170,7 +171,7 @@ class Poll(val id: String, val questions: Array[Question], val title: Option[Str } def toSimplePollResultOutVO(): SimplePollResultOutVO = { - new SimplePollResultOutVO(id, questions(0).toSimpleVotesOutVO()) + new SimplePollResultOutVO(id, questions(0).toSimpleVotesOutVO(), numRespondents, _numResponders) } } diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PollApp.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PollApp.scala index a217048dcd2f26fc7a24912b9fa26b3420b0cb2c..dad67c0257c7b991823f70760e35be4b475d56ae 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PollApp.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PollApp.scala @@ -66,6 +66,8 @@ trait PollApp { def pollResultToWhiteboardShape(result: SimplePollResultOutVO, msg: ShowPollResultRequest): scala.collection.immutable.Map[String, Object] = { val shape = new scala.collection.mutable.HashMap[String, Object]() + shape += "num_respondents" -> new Integer(result.numRespondents) + shape += "num_responders" -> new Integer(result.numResponders) val answers = new ArrayBuffer[java.util.HashMap[String, Object]]; result.answers.foreach(ans => { @@ -135,7 +137,8 @@ trait PollApp { presModel.getCurrentPage() foreach { page => val pollId = page.id + "/" + System.currentTimeMillis() - PollFactory.createPoll(pollId, msg.pollType) foreach (poll => pollModel.addPoll(poll)) + val numRespondents = usersModel.numUsers() - 1 // subtract the presenter + PollFactory.createPoll(pollId, msg.pollType, numRespondents) foreach (poll => pollModel.addPoll(poll)) pollModel.getSimplePoll(pollId) match { case Some(poll) => { diff --git a/akka-bbb-fsesl/build.sbt b/akka-bbb-fsesl/build.sbt index 6253f5e1b677b2964d93fee12cc16897838b306e..05b0e342b3019d2f63b145195ef970d611d877d0 100755 --- a/akka-bbb-fsesl/build.sbt +++ b/akka-bbb-fsesl/build.sbt @@ -50,7 +50,7 @@ libraryDependencies ++= { "com.google.code.gson" % "gson" % "1.7.1", "redis.clients" % "jedis" % "2.1.0", "org.apache.commons" % "commons-lang3" % "3.2", - "org.bigbluebutton" % "bbb-common-message" % "0.0.8", + "org.bigbluebutton" % "bbb-common-message" % "0.0.9", "org.bigbluebutton" % "bbb-fsesl-client" % "0.0.2" )} diff --git a/bbb-common-message/build.sbt b/bbb-common-message/build.sbt index d15b61d81ab4898a93c3fbba69091a61411dfe54..ace74b877b77e2531e76c441b4244ea9fdec8d07 100755 --- a/bbb-common-message/build.sbt +++ b/bbb-common-message/build.sbt @@ -4,7 +4,7 @@ name := "bbb-common-message" organization := "org.bigbluebutton" -version := "0.0.8" +version := "0.0.9" // We want to have our jar files in lib_managed dir. // This way we'll have the right path when we import diff --git a/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/PollShowResultMessage.java b/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/PollShowResultMessage.java index 9458e9ed80929b1df275aeb48176367bee3716ed..79064aea459d9ca36a14857b59b4ee5e2c8d7cf6 100755 --- a/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/PollShowResultMessage.java +++ b/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/PollShowResultMessage.java @@ -46,7 +46,7 @@ public class PollShowResultMessage implements ISubscribedMessage { if (payload.has(Constants.MEETING_ID) && payload.has(POLL)) { String id = payload.get(Constants.MEETING_ID).getAsString(); - + JsonObject poll = payload.get(POLL).getAsJsonObject(); Util util = new Util(); diff --git a/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java b/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java index 32f78f99ad69c6434e486eec0bbd901697c925cc..36e707a8b9962a953173da60540374387c5ec6f9 100755 --- a/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java +++ b/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java @@ -424,6 +424,9 @@ public class Util { Map<String, Object> finalAnnotation = new HashMap<String, Object>(); String whiteboardId = annotationElement.get("whiteboardId").getAsString(); + Integer numRespondents = annotationElement.get(NUM_RESPONDENTS).getAsInt(); + Integer numResponders = annotationElement.get(NUM_RESPONDERS).getAsInt(); + String resultJson = annotationElement.get("result").getAsString(); JsonParser parser = new JsonParser(); JsonArray resultJsonArray = parser.parse(resultJson).getAsJsonArray(); @@ -456,6 +459,8 @@ public class Util { } finalAnnotation.put("whiteboardId", whiteboardId); + finalAnnotation.put(NUM_RESPONDENTS, numRespondents); + finalAnnotation.put(NUM_RESPONDERS, numResponders); finalAnnotation.put("result", collection); finalAnnotation.put("points", pointsArray); @@ -589,6 +594,8 @@ public class Util { public static final String ANSWERS = "answers"; public static final String KEY = "key"; public static final String NUM_VOTES = "num_votes"; + public static final String NUM_RESPONDERS = "num_responders"; + public static final String NUM_RESPONDENTS = "num_respondents"; public Map<String, Object> decodeSimplePoll(JsonObject poll) { Map<String, Object> pollMap = new HashMap<String, Object>(); @@ -637,7 +644,10 @@ public class Util { Map<String, Object> pollMap = new HashMap<String, Object>(); if (poll.has(Constants.ID) && poll.has(ANSWERS)) { - String id = poll.get(Constants.ID).getAsString(); + String id = poll.get(Constants.ID).getAsString(); + Integer numRespondents = poll.get(NUM_RESPONDENTS).getAsInt(); + Integer numResponders = poll.get(NUM_RESPONDERS).getAsInt(); + JsonArray answers = poll.get(ANSWERS).getAsJsonArray(); ArrayList<Map<String, Object>> collection = new ArrayList<Map<String, Object>>(); @@ -654,6 +664,8 @@ public class Util { } pollMap.put(Constants.ID, id); + pollMap.put(NUM_RESPONDENTS, numRespondents); + pollMap.put(NUM_RESPONDERS, numResponders); pollMap.put(ANSWERS, collection); } diff --git a/bigbluebutton-apps/build.gradle b/bigbluebutton-apps/build.gradle index d9a54ee90a0fa00d512f0b7abee97c70326615ed..ab0e7bbdc21dd2d884976695b39b56ac0eafb54d 100755 --- a/bigbluebutton-apps/build.gradle +++ b/bigbluebutton-apps/build.gradle @@ -112,7 +112,7 @@ dependencies { compile 'com.google.code.gson:gson:1.7.1' providedCompile 'org.apache.commons:commons-lang3:3.2' - compile 'org.bigbluebutton:bbb-common-message:0.0.8' + compile 'org.bigbluebutton:bbb-common-message:0.0.9' } test {