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"%>
+
-
-
-
-
@@ -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"%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+