Index: lams_tool_scratchie/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a --- lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) @@ -181,6 +181,7 @@ type="org.lamsfoundation.lams.tool.scratchie.web.action.LearningAction" parameter="start" > + Index: lams_tool_scratchie/db/sql/create_lams_tool_scratchie.sql =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a --- lams_tool_scratchie/db/sql/create_lams_tool_scratchie.sql (.../create_lams_tool_scratchie.sql) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/db/sql/create_lams_tool_scratchie.sql (.../create_lams_tool_scratchie.sql) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) @@ -80,6 +80,7 @@ first_name varchar(255), login_name varchar(255), session_finished smallint, + scratching_finished smallint, session_uid bigint, scratchie_uid bigint, primary key (uid) Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java =================================================================== diff -u -r6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18 -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java (.../ScratchieUser.java) (revision 6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieUser.java (.../ScratchieUser.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) @@ -46,6 +46,7 @@ private String lastName; private String loginName; private boolean sessionFinished; + private boolean scratchingFinished; private ScratchieSession session; private Scratchie scratchie; @@ -203,7 +204,21 @@ public void setSessionFinished(boolean sessionFinished) { this.sessionFinished = sessionFinished; } + + /** + * Indicates whether user pressed Submit button in learning. + * + * @hibernate.property column="scratching_finished" + * @return + */ + public boolean isScratchingFinished() { + return scratchingFinished; + } + public void setScratchingFinished(boolean scratchingFinished) { + this.scratchingFinished = scratchingFinished; + } + public boolean equals(Object obj) { if (this == obj) return true; Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml (.../scratchieApplicationContext.xml) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml (.../scratchieApplicationContext.xml) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) @@ -121,7 +121,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_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) @@ -175,12 +175,12 @@ int getUserMark(Long sessionId, Long userId); /** - * Mark user session as finished so that user can't continue scratching after this. + * Mark user as ScratchingFinished so that user can't continue scratching after this. * * @param toolSessionId * @param userId */ - void setUserFinished(Long toolSessionId, Long userId); + void setScratchingFinished(Long toolSessionId, Long userId); /** * If success return next activity's url, otherwise return null. Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) @@ -406,15 +406,19 @@ return (ScratchieAnswer) userManagementService.findById(ScratchieAnswer.class, answerUid); } - public void setUserFinished(Long toolSessionId, Long userId) { + public void setScratchingFinished(Long toolSessionId, Long userId) { ScratchieUser user = scratchieUserDao.getUserByUserIDAndSessionID(userId, toolSessionId); - user.setSessionFinished(true); + user.setScratchingFinished(true); scratchieUserDao.saveObject(user); } public String finishToolSession(Long toolSessionId, Long userId) throws ScratchieApplicationException { String nextUrl = null; try { + ScratchieUser user = scratchieUserDao.getUserByUserIDAndSessionID(userId, toolSessionId); + user.setSessionFinished(true); + scratchieUserDao.saveObject(user); + nextUrl = this.leaveToolSession(toolSessionId, userId); } catch (DataMissingException e) { throw new ScratchieApplicationException(e); Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java =================================================================== diff -u -r9465560dcbea622e2f3a01e334400f2005ce2ed3 -rae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision 9465560dcbea622e2f3a01e334400f2005ce2ed3) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a) @@ -43,6 +43,7 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionRedirect; import org.apache.tomcat.util.json.JSONException; import org.apache.tomcat.util.json.JSONObject; import org.lamsfoundation.lams.notebook.model.NotebookEntry; @@ -196,7 +197,15 @@ sessionMap.put(ScratchieConstants.ATTR_ITEM_LIST, items); sessionMap.put(ScratchieConstants.ATTR_SCRATCHIE, scratchie); - return mapping.findForward(ScratchieConstants.SUCCESS); + boolean isScratchingFinished = scratchieUser != null && scratchieUser.isScratchingFinished(); + if (isScratchingFinished) { + ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig("showResults")); + redirect.addParameter(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + return redirect; + } else { + return mapping.findForward(ScratchieConstants.SUCCESS); + } + } /** @@ -266,7 +275,7 @@ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); Long userId = new Long(user.getUserID().longValue()); - service.setUserFinished(toolSessionId, userId); + service.setScratchingFinished(toolSessionId, userId); Set items = service.populateItemsResults(toolSessionId, userId); request.setAttribute(ScratchieConstants.ATTR_ITEM_LIST, items); @@ -298,7 +307,6 @@ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); Long userID = new Long(user.getUserID().longValue()); - service.setUserFinished(toolSessionId, userID); nextActivityUrl = service.finishToolSession(toolSessionId, userID); request.setAttribute(ScratchieConstants.ATTR_NEXT_ACTIVITY_URL, nextActivityUrl); } catch (ScratchieApplicationException e) { Fisheye: Tag ae0ac03f3bac4dadd58a6d0f57b85ad9ce8a719a refers to a dead (removed) revision in file `lams_tool_scratchie/web/pages/learning/success.jsp'. Fisheye: No comparison available. Pass `N' to diff?