Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r585c5afc5fcabdb88754b7c1bd7f7ec5eef4e150 -r5a579db63172ae32b83984fb7cde499217bbcdd4 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 585c5afc5fcabdb88754b7c1bd7f7ec5eef4e150) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 5a579db63172ae32b83984fb7cde499217bbcdd4) @@ -324,6 +324,9 @@ public LocalDateTime launchTimeLimit(long toolContentId, int userId) { Assessment assessment = getAssessmentByContentId(toolContentId); AssessmentResult lastResult = getLastAssessmentResult(assessment.getUid(), Long.valueOf(userId)); + if (lastResult == null) { + return null; + } LocalDateTime launchedDate = LocalDateTime.now(); lastResult.setTimeLimitLaunchedDate(launchedDate); assessmentResultDao.saveObject(lastResult); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningWebsocketServer.java =================================================================== diff -u -r705c0f72b765849974bfa0d9f8b04797619e8da7 -r5a579db63172ae32b83984fb7cde499217bbcdd4 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningWebsocketServer.java (.../LearningWebsocketServer.java) (revision 705c0f72b765849974bfa0d9f8b04797619e8da7) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningWebsocketServer.java (.../LearningWebsocketServer.java) (revision 5a579db63172ae32b83984fb7cde499217bbcdd4) @@ -9,6 +9,7 @@ import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; import org.lamsfoundation.lams.tool.assessment.model.Assessment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentResult; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentUser; import org.lamsfoundation.lams.tool.assessment.service.IAssessmentService; import org.lamsfoundation.lams.web.controller.AbstractTimeLimitWebsocketServer; import org.lamsfoundation.lams.web.controller.AbstractTimeLimitWebsocketServer.EndpointConfigurator; @@ -54,8 +55,18 @@ existingTimeSettings.timeLimitAdjustment = assessment.getTimeLimitAdjustments(); for (Integer userId : userIds) { - AssessmentResult result = assessmentService.getLastAssessmentResult(assessment.getUid(), - userId.longValue()); + AssessmentResult result = null; + if (assessment.isUseSelectLeaderToolOuput()) { + AssessmentUser user = assessmentService.getUserByIdAndContent(userId.longValue(), toolContentId); + AssessmentUser leader = user.getSession().getGroupLeader(); + if (leader != null) { + // if team leader is enabled, show consistent timer for all group members + result = assessmentService.getLastAssessmentResult(assessment.getUid(), leader.getUserId()); + } + } else { + result = assessmentService.getLastAssessmentResult(assessment.getUid(), userId.longValue()); + } + if (result != null && result.getTimeLimitLaunchedDate() != null) { existingTimeSettings.timeLimitLaunchedDate.put(userId, result.getTimeLimitLaunchedDate()); } Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== diff -u -rf5bcf9323324eb4d5add901d9e7a23c33050533a -r5a579db63172ae32b83984fb7cde499217bbcdd4 --- lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision f5bcf9323324eb4d5add901d9e7a23c33050533a) +++ lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 5a579db63172ae32b83984fb7cde499217bbcdd4) @@ -137,10 +137,10 @@ } }); }); - - initAssessmentTimeLimitWebsocket(); } + initAssessmentTimeLimitWebsocket(); + //autocomplete for VSA $('.ui-autocomplete-input').each(function(){ $(this).autocomplete({ @@ -292,13 +292,15 @@ $(this).removeClass('countdown-timeout'); } }, - onExpiry: function(periods) { - $.blockUI({ message: '

' }); - - setTimeout(function() { - submitAll(true); - }, 4000); - }, + + onExpiry: function(periods) { + $.blockUI({ message: '

' }); + + setTimeout(function() { + submitAll(true); + }, 4000); + }, +
description: "
" }); }