Index: lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r1315ad3c87e99645f3d186fd46d94c5598799787 -r5cb8e1939c7472e3b9a9273dcab27bc889a0a771 --- lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 1315ad3c87e99645f3d186fd46d94c5598799787) +++ lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -297,6 +297,7 @@ label.activity.completion =End of activity label.notifications =Notifications label.ask.for.hedging.justification =Ask for hedging justification? +label.waiting.for.leader.launch.time.limit =Leader has not started the activity. Please wait until he commences it. +label.waiting.for.leader.finish =Time limit set by teacher is over. Please wait until a group leader finishes the activity. - #======= End labels: Exported 291 labels for en AU ===== Index: lams_tool_assessment/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r53be6f88884b380ccb963eb05c985a57f580b5d4 -r5cb8e1939c7472e3b9a9273dcab27bc889a0a771 --- lams_tool_assessment/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 53be6f88884b380ccb963eb05c985a57f580b5d4) +++ lams_tool_assessment/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -191,6 +191,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 Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20161130.sql =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20161130.sql (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20161130.sql (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -0,0 +1,14 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-3801 keep the time limit start time in DB +ALTER TABLE tl_laasse10_assessment_result ADD COLUMN time_limit_launched_date datetime; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.java =================================================================== diff -u -r26ea61eae29934bddf4595c3c1aededeeeaca933 -r5cb8e1939c7472e3b9a9273dcab27bc889a0a771 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.java (.../AssessmentResult.java) (revision 26ea61eae29934bddf4595c3c1aededeeeaca933) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentResult.java (.../AssessmentResult.java) (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -42,6 +42,8 @@ private Long uid; private Assessment assessment; private Date startDate; + //date when user has started activity (pressed start button) that has time limitation + private Date timeLimitLaunchedDate; //indicates the latest retry private boolean isLatest; private Date finishDate; @@ -106,7 +108,20 @@ public void setStartDate(Date startDate) { this.startDate = startDate; } + + /** + * @hibernate.property column="time_limit_launched_date" + * @return + */ + public Date getTimeLimitLaunchedDate() { + return timeLimitLaunchedDate; + } + public void setTimeLimitLaunchedDate(Date timeLimitLaunchedDate) { + this.timeLimitLaunchedDate = timeLimitLaunchedDate; + } + + /** * @hibernate.property column="latest" * @return Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -rd9f7287c88430fac6866800164773e7a1fb986ee -r5cb8e1939c7472e3b9a9273dcab27bc889a0a771 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision d9f7287c88430fac6866800164773e7a1fb986ee) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -274,6 +274,45 @@ assessmentResultDao.saveObject(userResult); } + + @Override + public void launchTimeLimit(Long assessmentUid, Long userId) { + AssessmentResult lastResult = getLastAssessmentResult(assessmentUid, userId); + lastResult.setTimeLimitLaunchedDate(new Date()); + assessmentResultDao.saveObject(lastResult); + } + + @Override + public long getSecondsLeft(Assessment assessment, AssessmentUser user) { + AssessmentResult lastResult = getLastAssessmentResult(assessment.getUid(), user.getUserId()); + + long secondsLeft = 1; + if (assessment.getTimeLimit() != 0) { + // if user has pressed OK button already - calculate remaining time, and full time otherwise + boolean isTimeLimitNotLaunched = (lastResult == null) || (lastResult.getTimeLimitLaunchedDate() == null); + secondsLeft = isTimeLimitNotLaunched ? assessment.getTimeLimit() * 60 + : assessment.getTimeLimit() * 60 - (System.currentTimeMillis() - lastResult.getTimeLimitLaunchedDate().getTime()) / 1000; + // change negative or zero number to 1 + secondsLeft = Math.max(1, secondsLeft); + } + + return secondsLeft; + } + + @Override + public boolean checkTimeLimitExceeded(Assessment assessment, AssessmentUser groupLeader) { + int timeLimit = assessment.getTimeLimit(); + if (timeLimit == 0) { + return false; + } + + AssessmentResult lastLeaderResult = getLastAssessmentResult(assessment.getUid(), groupLeader.getUserId()); + + //check if the time limit is exceeded + return (lastLeaderResult != null) && (lastLeaderResult.getTimeLimitLaunchedDate() != null) + && lastLeaderResult.getTimeLimitLaunchedDate().getTime() + timeLimit * 60000 < System.currentTimeMillis(); + } + @Override public List getUsersBySession(Long toolSessionID) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -rd9f7287c88430fac6866800164773e7a1fb986ee -r5cb8e1939c7472e3b9a9273dcab27bc889a0a771 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision d9f7287c88430fac6866800164773e7a1fb986ee) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -78,6 +78,31 @@ */ void copyAnswersFromLeader(AssessmentUser user, AssessmentUser leader) throws IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException; + + /** + * Stores date when user has started activity with time limit. + * + * @param assessmentUid + * @param userId + */ + void launchTimeLimit(Long assessmentUid, Long userId); + + /** + * Calculates how many seconds left till the time limit will expire. If it's expired already - returns 1 in order to + * show learning.jsp and autosubmit results. + * + * @param assessment + * @param user + * @return + */ + long getSecondsLeft(Assessment assessment, AssessmentUser user); + + /** + * @param assessment + * @param groupLeader + * @return whether the time limit is exceeded already + */ + boolean checkTimeLimitExceeded(Assessment assessment, AssessmentUser groupLeader); /** * Get users by given toolSessionID. Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== diff -u -rf1d13bac35c467cd5bfd60d15e8dd46c49fb27d8 -r5cb8e1939c7472e3b9a9273dcab27bc889a0a771 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision f1d13bac35c467cd5bfd60d15e8dd46c49fb27d8) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -85,7 +85,6 @@ import org.springframework.web.context.support.WebApplicationContextUtils; /** - * * @author Andrey Balan */ public class LearningAction extends Action { @@ -125,6 +124,9 @@ if (param.equals("autoSaveAnswers")) { return autoSaveAnswers(mapping, form, request, response); } + if (param.equals("launchTimeLimit")) { + return launchTimeLimit(mapping, form, request, response); + } if (param.equals("checkLeaderProgress")) { return checkLeaderProgress(mapping, form, request, response); } @@ -165,45 +167,63 @@ // get back the assessment and question list and display them on page IAssessmentService service = getAssessmentService(); - AssessmentUser assessmentUser = null; + AssessmentUser user = null; if ((mode != null) && mode.isTeacher()) { // monitoring mode - user is specified in URL // assessmentUser may be null if the user was force completed. - assessmentUser = getSpecifiedUser(service, toolSessionId, + user = getSpecifiedUser(service, toolSessionId, WebUtil.readIntParam(request, AttributeNames.PARAM_USER_ID, false)); } else { - assessmentUser = getCurrentUser(toolSessionId); + user = getCurrentUser(toolSessionId); } Assessment assessment = service.getAssessmentBySessionId(toolSessionId); - //support for leader select feature - AssessmentUser groupLeader = null; - if (assessment.isUseSelectLeaderToolOuput()) { - groupLeader = service.checkLeaderSelectToolForSessionLeader(assessmentUser, - new Long(toolSessionId).longValue()); + // support for leader select feature + AssessmentUser groupLeader = assessment.isUseSelectLeaderToolOuput() + ? service.checkLeaderSelectToolForSessionLeader(user, new Long(toolSessionId).longValue()) + : null; + if (assessment.isUseSelectLeaderToolOuput() && !mode.isTeacher()) { // forwards to the leaderSelection page - if (groupLeader == null && !mode.isTeacher()) { - + if (groupLeader == null) { List groupUsers = service.getUsersBySession(new Long(toolSessionId).longValue()); request.setAttribute(AssessmentConstants.ATTR_GROUP_USERS, groupUsers); request.setAttribute(AssessmentConstants.ATTR_ASSESSMENT, assessment); return mapping.findForward(AssessmentConstants.WAIT_FOR_LEADER); } + + // forwards to the waitForLeader pages + boolean isNonLeader = !user.getUserId().equals(groupLeader.getUserId()); + if (assessment.getTimeLimit() != 0 && isNonLeader && !user.isSessionFinished()) { + AssessmentResult lastLeaderResult = service.getLastAssessmentResult(assessment.getUid(), groupLeader.getUserId()); + //show waitForLeaderLaunchTimeLimit page if the leader hasn't started activity or hasn't pressed OK button to launch time limit + if (lastLeaderResult == null || lastLeaderResult.getTimeLimitLaunchedDate() == null) { + request.setAttribute(AssessmentConstants.PARAM_WAITING_MESSAGE_KEY, "label.waiting.for.leader.launch.time.limit"); + return mapping.findForward(AssessmentConstants.WAIT_FOR_LEADER_TIME_LIMIT); + } + + //if the time is up and leader hasn't submitted response - show waitForLeaderFinish page + boolean isTimeLimitExceeded = service.checkTimeLimitExceeded(assessment, groupLeader); + if (isTimeLimitExceeded && !groupLeader.isSessionFinished()) { + request.setAttribute(AssessmentConstants.PARAM_WAITING_MESSAGE_KEY, "label.waiting.for.leader.finish"); + return mapping.findForward(AssessmentConstants.WAIT_FOR_LEADER_TIME_LIMIT); + } + } + // check if leader has submitted all answers - if (groupLeader.isSessionFinished() && !mode.equals(ToolAccessMode.TEACHER.toString())) { + if (groupLeader.isSessionFinished()) { // in case user joins the lesson after leader has answers some answers already - we need to make sure // he has the same scratches as leader - service.copyAnswersFromLeader(assessmentUser, groupLeader); + service.copyAnswersFromLeader(user, groupLeader); } } sessionMap.put(AssessmentConstants.ATTR_GROUP_LEADER, groupLeader); - boolean isUserLeader = service.isUserGroupLeader(assessmentUser, new Long(toolSessionId)); + boolean isUserLeader = service.isUserGroupLeader(user, new Long(toolSessionId)); sessionMap.put(AssessmentConstants.ATTR_IS_USER_LEADER, isUserLeader); Set questionReferences = new TreeSet(new SequencableComparator()); @@ -235,21 +255,21 @@ } } - int dbResultCount = service.getAssessmentResultCount(assessment.getUid(), assessmentUser.getUserId()); + int dbResultCount = service.getAssessmentResultCount(assessment.getUid(), user.getUserId()); int attemptsAllowed = assessment.getAttemptsAllowed(); boolean isResubmitAllowed = ((attemptsAllowed > dbResultCount) | (attemptsAllowed == 0)); - AssessmentResult lastResult = service.getLastAssessmentResult(assessment.getUid(), assessmentUser.getUserId()); + AssessmentResult lastResult = service.getLastAssessmentResult(assessment.getUid(), user.getUserId()); boolean hasEditRight = !assessment.isUseSelectLeaderToolOuput() || assessment.isUseSelectLeaderToolOuput() && isUserLeader; boolean isLastResultFinished = (lastResult != null) && (lastResult.getFinishDate() != null); //finishedLockForMonitor is a lock for displaying results page for teacher only if user see it, and displaying learner page if user see it accordingly boolean finishedLockForMonitor = (mode != null) && mode.isTeacher() && isLastResultFinished; - boolean finishedLock = assessmentUser.isSessionFinished() || finishedLockForMonitor || isLastResultFinished; + boolean finishedLock = user.isSessionFinished() || finishedLockForMonitor || isLastResultFinished; // get notebook entry String entryText = new String(); - AssessmentUser notebookCreator = (groupLeader == null) ? assessmentUser : groupLeader; + AssessmentUser notebookCreator = (groupLeader == null) ? user : groupLeader; NotebookEntry notebookEntry = service.getEntry(toolSessionId, notebookCreator.getUserId().intValue()); if (notebookEntry != null) { entryText = notebookEntry.getEntry(); @@ -260,16 +280,24 @@ sessionMap.put(AssessmentConstants.ATTR_INSTRUCTIONS, assessment.getInstructions()); sessionMap.put(AssessmentConstants.ATTR_IS_RESUBMIT_ALLOWED, isResubmitAllowed); sessionMap.put(AssessmentConstants.ATTR_FINISHED_LOCK, finishedLock); - sessionMap.put(AssessmentConstants.ATTR_USER_FINISHED, assessmentUser.isSessionFinished()); + sessionMap.put(AssessmentConstants.ATTR_HAS_EDIT_RIGHT, hasEditRight); + sessionMap.put(AssessmentConstants.ATTR_USER_FINISHED, user.isSessionFinished()); sessionMap.put(AttributeNames.ATTR_LEARNER_CONTENT_FOLDER, - service.getLearnerContentFolder(toolSessionId, assessmentUser.getUserId())); + service.getLearnerContentFolder(toolSessionId, user.getUserId())); sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, toolSessionId); - sessionMap.put(AssessmentConstants.ATTR_USER, assessmentUser); + sessionMap.put(AssessmentConstants.ATTR_USER, user); sessionMap.put(AttributeNames.ATTR_MODE, mode); // reflection information sessionMap.put(AssessmentConstants.ATTR_REFLECTION_ON, assessment.isReflectOnActivity()); sessionMap.put(AssessmentConstants.ATTR_REFLECTION_INSTRUCTION, assessment.getReflectInstructions()); sessionMap.put(AssessmentConstants.ATTR_REFLECTION_ENTRY, entryText); + + //time limit + boolean isTimeLimitEnabled = hasEditRight && !finishedLock && assessment.getTimeLimit() != 0; + long secondsLeft = isTimeLimitEnabled ? service.getSecondsLeft(assessment, user) : 0; + request.setAttribute(AssessmentConstants.ATTR_SECONDS_LEFT, secondsLeft); + boolean isTimeLimitNotLaunched = (lastResult == null) || (lastResult.getTimeLimitLaunchedDate() == null); + sessionMap.put(AssessmentConstants.ATTR_IS_TIME_LIMIT_NOT_LAUNCHED, isTimeLimitNotLaunched); ActivityPositionDTO activityPosition = LearningWebUtil .putActivityPositionInRequestByToolSessionId(toolSessionId, request, getServlet().getServletContext()); @@ -355,7 +383,7 @@ //set attempt started if (!finishedLock && hasEditRight) { - service.setAttemptStarted(assessment, pagedQuestions, assessmentUser, toolSessionId); + service.setAttemptStarted(assessment, pagedQuestions, user, toolSessionId); } // loadupLastAttempt for display purpose @@ -382,23 +410,28 @@ AssessmentSession session = service.getAssessmentSessionBySessionId(toolSessionId); AssessmentUser leader = session.getGroupLeader(); + //in case of time limit - prevent user from seeing questions page longer than time limit allows + boolean isTimeLimitExceeded = service.checkTimeLimitExceeded(session.getAssessment(), leader); boolean isLeaderResponseFinalized = leader.isSessionFinished(); JSONObject JSONObject = new JSONObject(); - JSONObject.put("isLeaderResponseFinalized", isLeaderResponseFinalized); + JSONObject.put("isPageRefreshRequested", isLeaderResponseFinalized || isTimeLimitExceeded); response.setContentType("application/x-json;charset=utf-8"); response.getWriter().print(JSONObject); return null; } /** - * Display same entire authoring page content from HttpSession variable. + * Shows next page. It's available only to leaders as non-leaders see all questions on one page. */ private ActionForward nextPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException { + IAssessmentService service = getAssessmentService(); String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession() .getAttribute(sessionMapID); + Assessment assessment = (Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT); + AssessmentUser user = (AssessmentUser) sessionMap.get(AssessmentConstants.ATTR_USER); boolean finishedLock = (Boolean) sessionMap.get(AssessmentConstants.ATTR_FINISHED_LOCK); if (!finishedLock) { @@ -407,8 +440,8 @@ // store results from sessionMap into DB storeUserAnswersIntoDatabase(sessionMap, true); - request.setAttribute(AssessmentConstants.PARAM_SECONDS_LEFT, - request.getParameter(AssessmentConstants.PARAM_SECONDS_LEFT)); + long secondsLeft = service.getSecondsLeft(assessment, user); + request.setAttribute(AssessmentConstants.ATTR_SECONDS_LEFT, secondsLeft); } //get pageNumber as request parameter in normal case and as attribute in case of submitAll returned it back @@ -566,6 +599,10 @@ request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMapID); //clear isUserFailed indicator sessionMap.put(AssessmentConstants.ATTR_IS_USER_FAILED, false); + + //time limit feature + sessionMap.put(AssessmentConstants.ATTR_IS_TIME_LIMIT_NOT_LAUNCHED, true); + request.setAttribute(AssessmentConstants.ATTR_SECONDS_LEFT, assessment.getTimeLimit() * 60); return mapping.findForward(AssessmentConstants.SUCCESS); } @@ -673,7 +710,26 @@ return null; } + + /** + * Stores date when user has started activity with time limit + */ + private ActionForward launchTimeLimit(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + IAssessmentService service = getAssessmentService(); + String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession() + .getAttribute(sessionMapID); + + Long assessmentUid = ((Assessment) sessionMap.get(AssessmentConstants.ATTR_ASSESSMENT)).getUid(); + Long userId = ((AssessmentUser) sessionMap.get(AssessmentConstants.ATTR_USER)).getUserId(); + sessionMap.put(AssessmentConstants.ATTR_IS_TIME_LIMIT_NOT_LAUNCHED, false); + + service.launchTimeLimit(assessmentUid, userId); + return null; + } + /** * Display empty reflection form. */ Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== diff -u -r8720793bb1f1d57f031a8c0485df2dd7e70276e0 -r5cb8e1939c7472e3b9a9273dcab27bc889a0a771 --- lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 8720793bb1f1d57f031a8c0485df2dd7e70276e0) +++ lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -1,10 +1,7 @@ <%@ include file="/common/taglibs.jsp"%> + - - - - <fmt:message key="label.learning.title" /> @@ -22,18 +19,11 @@ + + - - - - - - - - - @@ -127,12 +117,14 @@ } //boolean to indicate whether ok dialog is still ON so that autosave can't be run - var isWaitingForConfirmation = ${not finishedLock && assessment.timeLimit > 0 && empty param.secondsLeft}; + var isWaitingForConfirmation = ${isTimeLimitEnabled && sessionMap.isTimeLimitNotLaunched}; - + //timelimit feature + $(document).ready(function(){ - if (${empty param.secondsLeft}) { - //show confirmation dialog + //show timelimit-start-dialog in order to start countdown + if (${sessionMap.isTimeLimitNotLaunched}) { + $.blockUI({ message: $('#timelimit-start-dialog'), css: { @@ -147,6 +139,15 @@ //once OK button pressed start countdown $('#timelimit-start-ok').click(function() { + + //store date when user has started activity with time limit + $.ajax({ + async: true, + url: '', + data: 'sessionMapID=${sessionMapID}', + type: 'post' + }); + $.unblockUI(); displayCountdown(); isWaitingForConfirmation = false; @@ -261,36 +262,23 @@ if (!validateAnswers()) { return; } - - var secondsLeft = 0; - if (${not finishedLock && assessment.timeLimit > 0}) { - var times = $("#countdown").countdown('getTimes'); - secondsLeft = times[4]*3600 + times[5]*60 + times[6]; - } + var myForm = $("#answers"); - myForm.attr("action", "" + pageNumber + "&secondsLeft=" + secondsLeft); + myForm.attr("action", "" + pageNumber); myForm.submit(); } function submitAll(isTimelimitExpired){ - var secondsLeft = 0; - //only if time limit is not expired if (!isTimelimitExpired) { - if (!validateAnswers()) { return; } - - if (${not finishedLock && assessment.timeLimit > 0}) { - var times = $("#countdown").countdown('getTimes'); - secondsLeft = times[4]*3600 + times[5]*60 + times[6]; - } } var myForm = $("#answers"); - myForm.attr("action", "&secondsLeft=" + secondsLeft + "&isTimelimitExpired=" + isTimelimitExpired); + myForm.attr("action", "&isTimelimitExpired=" + isTimelimitExpired); myForm.submit(); } @@ -332,12 +320,12 @@ var orderingArea = "#orderingArea" + questionUid; var url = ""; $(orderingArea).load( - url, - { - questionUid: questionUid, - optionIndex: idx, - sessionMapID: "${sessionMapID}" - } + url, + { + questionUid: questionUid, + optionIndex: idx, + sessionMapID: "${sessionMapID}" + } ); } @@ -346,15 +334,14 @@ } function checkLeaderProgress() { - $.ajax({ async: false, url: '', data: 'toolSessionID=${toolSessionID}', dataType: 'json', type: 'post', success: function (json) { - if (json.isLeaderResponseFinalized) { + if (json.isPageRefreshRequested) { location.reload(); } } Fisheye: Tag 5cb8e1939c7472e3b9a9273dcab27bc889a0a771 refers to a dead (removed) revision in file `lams_tool_assessment/web/pages/learning/start.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/web/pages/learning/waitForLeaderTimeLimit.jsp =================================================================== diff -u --- lams_tool_assessment/web/pages/learning/waitForLeaderTimeLimit.jsp (revision 0) +++ lams_tool_assessment/web/pages/learning/waitForLeaderTimeLimit.jsp (revision 5cb8e1939c7472e3b9a9273dcab27bc889a0a771) @@ -0,0 +1,44 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + + <fmt:message key="activity.title" /> + + + + + + + +
+

+ +

+ +

+ +

+ +
+ + + +
+ +
+ + + + +