Index: lams_tool_scratchie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scratchie/model/ScratchieSession.hbm.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scratchie/model/Attic/ScratchieSession.hbm.xml,v
diff -u -r1.1.2.1 -r1.1.2.2
--- lams_tool_scratchie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scratchie/model/ScratchieSession.hbm.xml 27 Apr 2016 13:22:18 -0000 1.1.2.1
+++ lams_tool_scratchie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scratchie/model/ScratchieSession.hbm.xml 6 Dec 2016 09:02:25 -0000 1.1.2.2
@@ -33,6 +33,14 @@
insert="true"
column="session_end_date"
/>
+
+
+
@@ -137,6 +138,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
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20161205.sql'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/BurningQuestionLike.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/BurningQuestionLike.java,v
diff -u -r1.1.2.4 -r1.1.2.5
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/BurningQuestionLike.java 5 May 2016 08:09:28 -0000 1.1.2.4
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/BurningQuestionLike.java 6 Dec 2016 09:02:25 -0000 1.1.2.5
@@ -2,8 +2,6 @@
/**
* @author Andrey Balan
- *
- *
*/
public class BurningQuestionLike {
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswer.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswer.java,v
diff -u -r1.5.2.3 -r1.5.2.4
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswer.java 11 May 2016 07:38:00 -0000 1.5.2.3
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswer.java 6 Dec 2016 09:02:25 -0000 1.5.2.4
@@ -29,9 +29,6 @@
* Tool may contain several questions. Which in turn contain answers.
*
* @author Andrey Balan
- *
- *
- *
*/
public class ScratchieAnswer implements Cloneable {
private static final Logger log = Logger.getLogger(ScratchieAnswer.class);
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswerVisitLog.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswerVisitLog.java,v
diff -u -r1.2.2.3 -r1.2.2.4
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswerVisitLog.java 11 May 2016 07:38:00 -0000 1.2.2.3
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieAnswerVisitLog.java 6 Dec 2016 09:02:25 -0000 1.2.2.4
@@ -30,9 +30,6 @@
* Scratchie
*
* @author Andrey Balan
- *
- *
- *
*/
public class ScratchieAnswerVisitLog {
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieBurningQuestion.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieBurningQuestion.java,v
diff -u -r1.1.2.6 -r1.1.2.7
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieBurningQuestion.java 11 May 2016 07:38:00 -0000 1.1.2.6
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieBurningQuestion.java 6 Dec 2016 09:02:25 -0000 1.1.2.7
@@ -29,9 +29,6 @@
* ScratchieBurningQuestion
*
* @author Andrey Balan
- *
- *
- *
*/
public class ScratchieBurningQuestion {
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieItem.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieItem.java,v
diff -u -r1.6.2.4 -r1.6.2.5
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieItem.java 11 May 2016 07:38:00 -0000 1.6.2.4
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieItem.java 6 Dec 2016 09:02:25 -0000 1.6.2.5
@@ -34,9 +34,6 @@
* Tool may contain several questions. Which in turn contain answers.
*
* @author Andrey Balan
- *
- *
- *
*/
public class ScratchieItem implements Cloneable {
private static final Logger log = Logger.getLogger(ScratchieItem.class);
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieSession.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieSession.java,v
diff -u -r1.6.2.3 -r1.6.2.4
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieSession.java 11 May 2016 07:38:00 -0000 1.6.2.3
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieSession.java 6 Dec 2016 09:02:25 -0000 1.6.2.4
@@ -33,9 +33,6 @@
* Scratchie
*
* @author Andrey Balan
- *
- *
- *
*/
public class ScratchieSession {
@@ -47,6 +44,8 @@
private Scratchie scratchie;
private Date sessionStartDate;
private Date sessionEndDate;
+ //date when user has started activity (pressed start button) that has time limitation
+ private Date timeLimitLaunchedDate;
// finish or not
private int status;
// scratchie Items
@@ -84,7 +83,19 @@
/**
*
+ * @return
+ */
+ public Date getTimeLimitLaunchedDate() {
+ return timeLimitLaunchedDate;
+ }
+
+ public void setTimeLimitLaunchedDate(Date timeLimitLaunchedDate) {
+ this.timeLimitLaunchedDate = timeLimitLaunchedDate;
+ }
+
+ /**
*
+ *
* @return
*/
public Date getSessionStartDate() {
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java,v
diff -u -r1.9.2.3 -r1.9.2.4
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java 11 May 2016 07:38:00 -0000 1.9.2.3
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java 6 Dec 2016 09:02:25 -0000 1.9.2.4
@@ -32,9 +32,6 @@
* Scratchie
*
* @author Andrey Balan
- *
- *
- *
*/
public class ScratchieUser implements Cloneable, Comparable {
private static final long serialVersionUID = -7043502180037866257L;
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java,v
diff -u -r1.29.2.6 -r1.29.2.7
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java 7 Nov 2016 12:30:40 -0000 1.29.2.6
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java 6 Dec 2016 09:02:25 -0000 1.29.2.7
@@ -43,6 +43,7 @@
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession;
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser;
import org.lamsfoundation.lams.util.ExcelCell;
+import org.quartz.SchedulerException;
/**
* Interface that defines the contract that all ShareScratchie service provider must follow.
@@ -66,6 +67,14 @@
* @param toolSessionId
*/
ScratchieUser checkLeaderSelectToolForSessionLeader(ScratchieUser user, Long toolSessionId);
+
+ /**
+ * Stores date when user has started activity with time limit.
+ *
+ * @param sessionId
+ * @throws SchedulerException
+ */
+ void launchTimeLimit(Long sessionId) throws SchedulerException;
List getBurningQuestionsBySession(Long sessionId);
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java,v
diff -u -r1.51.2.24 -r1.51.2.25
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 7 Nov 2016 12:30:40 -0000 1.51.2.24
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 6 Dec 2016 09:02:25 -0000 1.51.2.25
@@ -28,8 +28,10 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
+import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -39,6 +41,7 @@
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
+import java.util.TimeZone;
import java.util.TreeSet;
import org.apache.commons.lang.StringEscapeUtils;
@@ -87,6 +90,7 @@
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem;
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession;
import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser;
+import org.lamsfoundation.lams.tool.scratchie.util.FinishScratchingJob;
import org.lamsfoundation.lams.tool.scratchie.util.ScratchieAnswerComparator;
import org.lamsfoundation.lams.tool.scratchie.util.ScratchieItemComparator;
import org.lamsfoundation.lams.tool.scratchie.util.ScratchieToolContentHandler;
@@ -99,6 +103,12 @@
import org.lamsfoundation.lams.util.JsonUtil;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.audit.IAuditService;
+import org.quartz.JobBuilder;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.Trigger;
+import org.quartz.TriggerBuilder;
/**
* @author Andrey Balan
@@ -149,6 +159,8 @@
private IEventNotificationService eventNotificationService;
private ScratchieOutputFactory scratchieOutputFactory;
+
+ private Scheduler scheduler;
// *******************************************************************************
// Service method
@@ -256,6 +268,39 @@
}
return leader;
}
+
+ @Override
+ public void launchTimeLimit(Long sessionId) throws SchedulerException {
+ ScratchieSession session = getScratchieSessionBySessionId(sessionId);
+ int timeLimit = session.getScratchie().getTimeLimit();
+ if (timeLimit == 0) {
+ return;
+ }
+
+ //store timeLimitLaunchedDate into DB
+ Date timeLimitLaunchedDate = new Date();
+ session.setTimeLimitLaunchedDate(timeLimitLaunchedDate);
+ scratchieSessionDao.saveObject(session);
+
+ //calculate timeLimit finish date
+ Calendar timeLimitFinishDate = new GregorianCalendar(TimeZone.getDefault());
+ timeLimitFinishDate.setTime(timeLimitLaunchedDate);
+ timeLimitFinishDate.add(Calendar.MINUTE, timeLimit);
+ //adding 5 extra seconds to let leader auto-submit results and store them in DB
+ timeLimitFinishDate.add(Calendar.SECOND, 5);
+
+ //start quartz job to notify non-leaders time is over
+ JobDetail finishScratchingJob = JobBuilder.newJob(FinishScratchingJob.class)
+ .withIdentity("finishScratching:" + sessionId)
+ .withDescription("Group name: " + session.getSessionName())
+ .usingJobData("toolSessionId", sessionId).build();
+
+ Trigger fnishScratchingTrigger = TriggerBuilder.newTrigger()
+ .withIdentity("fnishScratchingTrigger:" + sessionId)
+ .startAt(timeLimitFinishDate.getTime()).build();
+
+ scheduler.scheduleJob(finishScratchingJob, fnishScratchingTrigger);
+ }
@Override
public void changeUserMark(Long userId, Long sessionId, Integer newMark) {
@@ -2044,6 +2089,14 @@
public void setScratchieOutputFactory(ScratchieOutputFactory scratchieOutputFactory) {
this.scratchieOutputFactory = scratchieOutputFactory;
}
+
+ /**
+ * @param scheduler
+ * The scheduler to set.
+ */
+ public void setScheduler(Scheduler scheduler) {
+ this.scheduler = scheduler;
+ }
// ****************** REST methods *************************
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/util/FinishScratchingJob.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java,v
diff -u -r1.44.2.16 -r1.44.2.17
--- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java 7 Nov 2016 12:30:40 -0000 1.44.2.16
+++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java 6 Dec 2016 09:02:25 -0000 1.44.2.17
@@ -72,6 +72,7 @@
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
import org.lamsfoundation.lams.web.util.SessionMap;
+import org.quartz.SchedulerException;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -87,7 +88,7 @@
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response)
- throws IOException, ServletException, JSONException, ScratchieApplicationException {
+ throws IOException, ServletException, JSONException, ScratchieApplicationException, SchedulerException {
String param = mapping.getParameter();
// -----------------------Scratchie Learner function ---------------------------
@@ -97,6 +98,9 @@
if (param.equals("recordItemScratched")) {
return recordItemScratched(mapping, form, request, response);
}
+ if (param.equals("launchTimeLimit")) {
+ return launchTimeLimit(mapping, form, request, response);
+ }
if (param.equals("finish")) {
return finish(mapping, form, request, response);
}
@@ -176,6 +180,30 @@
return mapping.findForward("waitforleader");
}
+ // forwards to the waitForLeader time limit pages
+ if (!mode.isTeacher()) {
+ boolean isNonLeader = !user.getUserId().equals(groupLeader.getUserId());
+ if (isNonLeader && scratchie.getTimeLimit() != 0 && !user.isSessionFinished()) {
+
+ //show waitForLeaderLaunchTimeLimit page if the leader hasn't started activity or hasn't pressed OK button to launch time limit
+ if (toolSession.getTimeLimitLaunchedDate() == null) {
+ request.setAttribute(ScratchieConstants.ATTR_WAITING_MESSAGE_KEY, "label.waiting.for.leader.launch.time.limit");
+ return mapping.findForward("waitForLeaderTimeLimit");
+ }
+
+ // check if the time limit is exceeded
+ boolean isTimeLimitExceeded = toolSession.getTimeLimitLaunchedDate().getTime()
+ + scratchie.getTimeLimit() * 60000 < System.currentTimeMillis();
+
+ // if the time is up and leader hasn't submitted response (as there will be a little delay between time
+ // is up and scratching is finished) - show waitForLeaderFinish page
+ if (isTimeLimitExceeded && !toolSession.isScratchingFinished()) {
+ request.setAttribute(ScratchieConstants.ATTR_WAITING_MESSAGE_KEY, "label.waiting.for.leader.finish");
+ return mapping.findForward("waitForLeaderTimeLimit");
+ }
+ }
+ }
+
// initial Session Map
SessionMap sessionMap = new SessionMap();
request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap);
@@ -306,24 +334,40 @@
redirect.addParameter(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
return redirect;
- // show leader notebook page
+ // show leader notebook page
} else if (isUserLeader && isScratchingFinished && isWaitingForLeaderToSubmitNotebook) {
ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig("newReflection"));
redirect.addParameter(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
redirect.addParameter(AttributeNames.ATTR_MODE, mode);
return redirect;
- // show results page
+ // show results page
} else if (isShowResults) {
ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig("showResults"));
redirect.addParameter(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
redirect.addParameter(AttributeNames.ATTR_MODE, mode);
return redirect;
- // show learning.jsp page
+ // show learning.jsp page
} else {
+ // time limit feature
+ boolean isTimeLimitEnabled = isUserLeader && !isScratchingFinished && scratchie.getTimeLimit() != 0;
+ boolean isTimeLimitNotLaunched = toolSession.getTimeLimitLaunchedDate() == null;
+ long secondsLeft = 1;
+ if (isTimeLimitEnabled) {
+ // if user has pressed OK button already - calculate remaining time, and full time otherwise
+ secondsLeft = isTimeLimitNotLaunched ? scratchie.getTimeLimit() * 60
+ : scratchie.getTimeLimit() * 60
+ - (System.currentTimeMillis() - toolSession.getTimeLimitLaunchedDate().getTime()) / 1000;
+ // change negative number or zero to 1 so it can autosubmit results
+ secondsLeft = Math.max(1, secondsLeft);
+ }
+ request.setAttribute(ScratchieConstants.ATTR_IS_TIME_LIMIT_ENABLED, isTimeLimitEnabled);
+ request.setAttribute(ScratchieConstants.ATTR_IS_TIME_LIMIT_NOT_LAUNCHED, isTimeLimitNotLaunched);
+ request.setAttribute(ScratchieConstants.ATTR_SECONDS_LEFT, secondsLeft);
+
// make non leaders also wait for burning questions submit
isWaitingForLeaderToSubmitNotebook |= isWaitingForLeaderToSubmitBurningQuestions;
@@ -351,7 +395,7 @@
ScratchieSession toolSession = service.getScratchieSessionBySessionId(toolSessionId);
- ScratchieUser leader = this.getCurrentUser(toolSessionId);
+ ScratchieUser leader = getCurrentUser(toolSessionId);
// only leader is allowed to scratch answers
if (!toolSession.isUserGroupLeader(leader.getUid())) {
return null;
@@ -386,7 +430,32 @@
return null;
}
+
+ /**
+ * Stores date when user has started activity with time limit
+ * @throws ScratchieApplicationException
+ * @throws SchedulerException
+ */
+ private ActionForward launchTimeLimit(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) throws ScratchieApplicationException, SchedulerException {
+ initializeScratchieService();
+ String sessionMapID = WebUtil.readStrParam(request, ScratchieConstants.ATTR_SESSION_MAP_ID);
+ SessionMap sessionMap = (SessionMap) request.getSession()
+ .getAttribute(sessionMapID);
+ final Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID);
+ ScratchieSession toolSession = service.getScratchieSessionBySessionId(toolSessionId);
+
+ ScratchieUser leader = getCurrentUser(toolSessionId);
+ // only leader is allowed to launch time limit
+ if (!toolSession.isUserGroupLeader(leader.getUid())) {
+ return null;
+ }
+
+ service.launchTimeLimit(toolSessionId);
+ return null;
+ }
+
/**
* Displays results page. When leader gets to this page, scratchingFinished column is set to true for all users.
*
Index: lams_tool_scratchie/web/WEB-INF/struts-config.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/web/WEB-INF/Attic/struts-config.xml,v
diff -u -r1.1.2.2 -r1.1.2.3
--- lams_tool_scratchie/web/WEB-INF/struts-config.xml 7 Nov 2016 12:47:02 -0000 1.1.2.2
+++ lams_tool_scratchie/web/WEB-INF/struts-config.xml 6 Dec 2016 09:02:25 -0000 1.1.2.3
@@ -205,6 +205,7 @@
parameter="start" >
+
@@ -215,6 +216,10 @@
type="org.lamsfoundation.lams.tool.scratchie.web.action.LearningAction"
parameter="recordItemScratched" >
+
+
Index: lams_tool_scratchie/web/pages/learning/learning.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_scratchie/web/pages/learning/learning.jsp,v
diff -u -r1.18.2.9 -r1.18.2.10
--- lams_tool_scratchie/web/pages/learning/learning.jsp 7 Nov 2016 16:52:32 -0000 1.18.2.9
+++ lams_tool_scratchie/web/pages/learning/learning.jsp 6 Dec 2016 09:02:25 -0000 1.18.2.10
@@ -69,20 +69,38 @@
}
//time limit feature
-
+
$(document).ready(function(){
- //show confirmation dialog
- $.blockUI({
- message: $('#timelimit-start-dialog'),
- css: { width: '325px', height: '120px'},
- overlayCSS: { opacity: '.98'}
- });
+
+ //show timelimit-start-dialog in order to start countdown
+ if (${isTimeLimitNotLaunched}) {
- //once OK button pressed start countdown
- $('#timelimit-start-ok').click(function() {
- $.unblockUI();
- displayCountdown();
- });
+ //show confirmation dialog
+ $.blockUI({
+ message: $('#timelimit-start-dialog'),
+ css: { width: '325px', height: '120px'},
+ overlayCSS: { opacity: '.98'}
+ });
+
+ //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();
+ });
+
+ } else {
+ displayCountdown();
+ }
+
});
function displayCountdown(){
@@ -103,14 +121,14 @@
});
$('#countdown').countdown({
- until: '+${scratchie.timeLimit * 60}S',
+ until: '+${secondsLeft}S',
format: 'hMS',
compact: true,
onTick: function(periods) {
//check for 30 seconds
if ((periods[4] == 0) && (periods[5] == 0) && (periods[6] <= 30)) {
$('#countdown').css('color', '#FF3333');
- }
+ }
},
onExpiry: function(periods) {
$.blockUI({ message: '
' });
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_scratchie/web/pages/learning/waitForLeaderTimeLimit.jsp'.
Fisheye: No comparison available. Pass `N' to diff?