Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesServiceProxy.java =================================================================== diff -u -rc5a014333e76581f2872fd7c2731e493fcf2caee -rf2f9719ac9da5fcffc7f73597545697deb22af88 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesServiceProxy.java (.../SubmitFilesServiceProxy.java) (revision c5a014333e76581f2872fd7c2731e493fcf2caee) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesServiceProxy.java (.../SubmitFilesServiceProxy.java) (revision f2f9719ac9da5fcffc7f73597545697deb22af88) @@ -25,6 +25,7 @@ import javax.servlet.ServletContext; +import org.lamsfoundation.lams.tool.ToolSessionManager; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -34,9 +35,21 @@ public class SubmitFilesServiceProxy { public static final ISubmitFilesService getSubmitFilesService(ServletContext servletContext){ + return (ISubmitFilesService) getService(servletContext); + } + + public static final ToolSessionManager getToolSessionManager(ServletContext servletContext){ + return (ToolSessionManager) getService(servletContext); + } + + /** + * @param servletContext + * @return + */ + private static Object getService(ServletContext servletContext) { WebApplicationContext context = WebApplicationContextUtils .getRequiredWebApplicationContext(servletContext); - return (ISubmitFilesService)context.getBean("submitFilesService"); + return context.getBean("submitFilesService"); } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java =================================================================== diff -u -r2437f5fc533ea6acaf8a86a9a703a5909b456516 -rf2f9719ac9da5fcffc7f73597545697deb22af88 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java (.../SbmtConstants.java) (revision 2437f5fc533ea6acaf8a86a9a703a5909b456516) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java (.../SbmtConstants.java) (revision f2f9719ac9da5fcffc7f73597545697deb22af88) @@ -35,4 +35,5 @@ public static final String TOOL_URL_BASE = "/lams/tool/lasbmt11/"; public static final String ATTACHMENT_LIST = "attachmentList"; public static final String DELETED_ATTACHMENT_LIST = "deletedAttachmentList"; + public static final String READ_ONLY_MODE = "readOnlyMode"; } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java =================================================================== diff -u -rc97960ddf053d2035d4285dc77dde54ffc2df31d -rf2f9719ac9da5fcffc7f73597545697deb22af88 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java (.../LearnerAction.java) (revision c97960ddf053d2035d4285dc77dde54ffc2df31d) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java (.../LearnerAction.java) (revision f2f9719ac9da5fcffc7f73597545697deb22af88) @@ -6,6 +6,7 @@ */ package org.lamsfoundation.lams.tool.sbmt.web; +import java.io.IOException; import java.util.Iterator; import java.util.List; @@ -23,6 +24,9 @@ import org.apache.struts.actions.DispatchAction; import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.ToolSessionManager; +import org.lamsfoundation.lams.tool.exception.DataMissingException; +import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.sbmt.Learner; import org.lamsfoundation.lams.tool.sbmt.SubmitFilesContent; import org.lamsfoundation.lams.tool.sbmt.SubmitFilesSession; @@ -194,22 +198,47 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response){ - DynaActionForm authForm= (DynaActionForm)form; - Long sessionID =(Long) authForm.get(AttributeNames.PARAM_TOOL_SESSION_ID); - Long userID = (Long)authForm.get(SbmtConstants.USER_ID); - submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext()); - submitFilesService.finishSubmission(sessionID,userID); + + DynaActionForm authForm = (DynaActionForm) form; + ToolAccessMode mode = (ToolAccessMode) request.getSession().getAttribute(AttributeNames.ATTR_MODE); + if (mode == ToolAccessMode.LEARNER) { + ToolSessionManager sessionMgrService = SubmitFilesServiceProxy.getToolSessionManager(getServlet().getServletContext()); + submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext()); + Long sessionID = (Long) authForm.get(AttributeNames.PARAM_TOOL_SESSION_ID); + //get back login user DTO + //get session from shared session. + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + Long userID = new Long(user.getUserID().longValue()); + submitFilesService.finishSubmission(sessionID, userID); + + String nextActivityUrl; + try { + nextActivityUrl = sessionMgrService.leaveToolSession(sessionID, userID); + response.sendRedirect(nextActivityUrl); + } catch (DataMissingException e) { + throw new SubmitFilesException(e); + } catch (ToolException e) { + throw new SubmitFilesException(e); + } catch (IOException e) { + throw new SubmitFilesException(e); + } + return null; + } + request.getSession().setAttribute(SbmtConstants.READ_ONLY_MODE, "true"); return mapping.findForward("finish"); } /** - * This is a utily function for forwarding the errors to - * the respective JSP page indicated by forward + * This is a utily function for forwarding the errors to the respective JSP + * page indicated by forward * - * @param mapping + * @param mapping * @param request - * @param errorMessage The error message to be displayed - * @param forward The JSP page to which the errors would be forwarded + * @param errorMessage + * The error message to be displayed + * @param forward + * The JSP page to which the errors would be forwarded * @return ActionForward */ private ActionForward returnErrors(ActionMapping mapping, Index: lams_tool_sbmt/web/export/exportportfolio.jsp =================================================================== diff -u -r6c5ffd0ef98d1ed5a7f1d77d25c0b8964defd552 -rf2f9719ac9da5fcffc7f73597545697deb22af88 --- lams_tool_sbmt/web/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision 6c5ffd0ef98d1ed5a7f1d77d25c0b8964defd552) +++ lams_tool_sbmt/web/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision f2f9719ac9da5fcffc7f73597545697deb22af88) @@ -28,7 +28,7 @@ File Path: - File Path: + Index: lams_tool_sbmt/web/monitoring/viewallmarks.jsp =================================================================== diff -u -rffbc47494b72d5222b6fc95db0347f7732d93310 -rf2f9719ac9da5fcffc7f73597545697deb22af88 --- lams_tool_sbmt/web/monitoring/viewallmarks.jsp (.../viewallmarks.jsp) (revision ffbc47494b72d5222b6fc95db0347f7732d93310) +++ lams_tool_sbmt/web/monitoring/viewallmarks.jsp (.../viewallmarks.jsp) (revision f2f9719ac9da5fcffc7f73597545697deb22af88) @@ -28,7 +28,7 @@ File Path: - File Path: +