Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision 5e40c22a096ef6175b11206e276600782348306d) @@ -139,7 +139,7 @@ PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 5e40c22a096ef6175b11206e276600782348306d) @@ -29,6 +29,7 @@ import java.util.Collection; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -3124,4 +3125,19 @@ public AssessmentQuestion getAssessmentQuestionByUid(Long questionUid) { return assessmentQuestionDao.getByUid(questionUid); } + + @Override + public void notifyLearnersOnAnswerDisclose(long toolContentId) throws JSONException { + List sessions = assessmentSessionDao.getByContentId(toolContentId); + Set userIds = new HashSet(); + for (AssessmentSession session : sessions) { + for (AssessmentUser user : session.getAssessmentUsers()) { + userIds.add(user.getUserId().intValue()); + } + } + + JSONObject jsonCommand = new JSONObject(); + jsonCommand.put("hookTrigger", "assessment-results-refresh-" + toolContentId); + learnerService.createCommandForLearners(toolContentId, userIds, jsonCommand.toString()); + } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 5e40c22a096ef6175b11206e276600782348306d) @@ -29,6 +29,7 @@ import java.util.Map; import java.util.Set; +import org.apache.tomcat.util.json.JSONException; import org.lamsfoundation.lams.confidencelevel.ConfidenceLevelDTO; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.assessment.dto.AssessmentResultDTO; @@ -533,4 +534,10 @@ Long getPortraitId(Long userId); AssessmentQuestion getAssessmentQuestionByUid(Long questionUid); + + /** + * Sends a websocket command to learners who have assessment results open + * to refresh page because new data is available + */ + void notifyLearnersOnAnswerDisclose(long toolContentId) throws JSONException; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/TblMonitoringAction.java =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/TblMonitoringAction.java (.../TblMonitoringAction.java) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/TblMonitoringAction.java (.../TblMonitoringAction.java) (revision 5e40c22a096ef6175b11206e276600782348306d) @@ -349,31 +349,41 @@ /** * Allows displaying correct answers to learners + * + * @throws JSONException */ public ActionForward discloseCorrectAnswers(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - initAssessmentService(); - + HttpServletResponse response) throws JSONException { Long questionUid = WebUtil.readLongParam(request, "questionUid"); + Long toolContentId = WebUtil.readLongParam(request, AssessmentConstants.PARAM_TOOL_CONTENT_ID); + + initAssessmentService(); AssessmentQuestion question = assessmentService.getAssessmentQuestionByUid(questionUid); question.setCorrectAnswersDisclosed(true); assessmentService.updateAssessmentQuestion(question); + assessmentService.notifyLearnersOnAnswerDisclose(toolContentId); + return null; } /** * Allows displaying other groups' answers to learners + * + * @throws JSONException */ public ActionForward discloseGroupsAnswers(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - initAssessmentService(); - + HttpServletResponse response) throws JSONException { Long questionUid = WebUtil.readLongParam(request, "questionUid"); + Long toolContentId = WebUtil.readLongParam(request, AssessmentConstants.PARAM_TOOL_CONTENT_ID); + + initAssessmentService(); AssessmentQuestion question = assessmentService.getAssessmentQuestionByUid(questionUid); question.setGroupsAnswersDisclosed(true); assessmentService.updateAssessmentQuestion(question); + assessmentService.notifyLearnersOnAnswerDisclose(toolContentId); + return null; } Index: lams_tool_assessment/web/pages/learning/results/tblsummary.jsp =================================================================== diff -u -r37945afeca0f748fbb1f1608d8317bea73234a5e -r5e40c22a096ef6175b11206e276600782348306d --- lams_tool_assessment/web/pages/learning/results/tblsummary.jsp (.../tblsummary.jsp) (revision 37945afeca0f748fbb1f1608d8317bea73234a5e) +++ lams_tool_assessment/web/pages/learning/results/tblsummary.jsp (.../tblsummary.jsp) (revision 5e40c22a096ef6175b11206e276600782348306d) @@ -1,3 +1,14 @@ + + +
Index: lams_tool_assessment/web/pages/tblmonitoring/assessment.jsp =================================================================== diff -u -r85ec7090c5fa9da3cde91c145d90f3b4d3068dee -r5e40c22a096ef6175b11206e276600782348306d --- lams_tool_assessment/web/pages/tblmonitoring/assessment.jsp (.../assessment.jsp) (revision 85ec7090c5fa9da3cde91c145d90f3b4d3068dee) +++ lams_tool_assessment/web/pages/tblmonitoring/assessment.jsp (.../assessment.jsp) (revision 5e40c22a096ef6175b11206e276600782348306d) @@ -46,8 +46,9 @@ $.ajax({ 'url' : 'tblmonitoring.do', 'data' : { - 'method' : isCorrectButton ? 'discloseCorrectAnswers' : 'discloseGroupsAnswers', - 'questionUid' : button.closest('.disclose-button-group').attr('questionUid') + 'method' : isCorrectButton ? 'discloseCorrectAnswers' : 'discloseGroupsAnswers', + 'questionUid' : button.closest('.disclose-button-group').attr('questionUid'), + 'toolContentID' : $('#selected-content-id').val() } }).done(function(){ // disable the button after click