Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McDLStarterAction.java =================================================================== diff -u -ra3373207133535e1504e5cb32bf10903e39355bd -rf1068c6c8b6c00c199b7e3544acce72cac9b988f --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McDLStarterAction.java (.../McDLStarterAction.java) (revision a3373207133535e1504e5cb32bf10903e39355bd) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McDLStarterAction.java (.../McDLStarterAction.java) (revision f1068c6c8b6c00c199b7e3544acce72cac9b988f) @@ -54,6 +54,7 @@ import org.apache.struts.action.ActionMapping; import org.lamsfoundation.lams.tool.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.McApplicationException; +import org.lamsfoundation.lams.tool.mc.McUtils; import org.lamsfoundation.lams.tool.mc.service.IMcService; import org.lamsfoundation.lams.tool.mc.service.McServiceProxy; @@ -63,11 +64,14 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, McApplicationException { - McStarterAction mcStarterAction= new McStarterAction(); - + McUtils.cleanUpSessionAbsolute(request); + logger.debug("init defineLater mode. removed attributes..."); + IMcService mcService = McServiceProxy.getMcService(getServlet().getServletContext()); + logger.debug("mcService: " + mcService); request.getSession().setAttribute(TOOL_SERVICE, mcService); - + + McStarterAction mcStarterAction= new McStarterAction(); return mcStarterAction.executeDefineLater(mapping, form, request, response, mcService); } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java =================================================================== diff -u -r9e93874763aa8af8bab0529c3e82b084a58a8b08 -rf1068c6c8b6c00c199b7e3544acce72cac9b988f --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java (.../McLearningForm.java) (revision 9e93874763aa8af8bab0529c3e82b084a58a8b08) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java (.../McLearningForm.java) (revision f1068c6c8b6c00c199b7e3544acce72cac9b988f) @@ -26,6 +26,9 @@ protected String donePreview; protected String doneLearnerProgress; + + + public void resetCommands() { this.setContinueOptions(null); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java =================================================================== diff -u -reea0528b05e6598129525d151a9e1b1a3242dafa -rf1068c6c8b6c00c199b7e3544acce72cac9b988f --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java (.../McStarterAction.java) (revision eea0528b05e6598129525d151a9e1b1a3242dafa) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java (.../McStarterAction.java) (revision f1068c6c8b6c00c199b7e3544acce72cac9b988f) @@ -132,51 +132,74 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, McApplicationException { - - IMcService mcService = (IMcService)request.getSession().getAttribute(TOOL_SERVICE); - logger.debug("will retrieve mcService" + mcService); - - + + /* String showAuthoringTabs=(String) request.getSession().getAttribute(SHOW_AUTHORING_TABS); logger.debug("showAuthoringTabs: " + showAuthoringTabs); - + if (showAuthoringTabs == null) { request.getSession().setAttribute(SHOW_AUTHORING_TABS,new Boolean(true).toString()); } logger.debug("final showAuthoringTabs: " + request.getSession().getAttribute(SHOW_AUTHORING_TABS)); + */ + McUtils.cleanUpSessionAbsolute(request); + logger.debug("init authoring mode. removed attributes..."); - + IMcService mcService = (IMcService)request.getSession().getAttribute(TOOL_SERVICE); + logger.debug("mcService: " + mcService); + if (mcService == null) + { + logger.debug("will retrieve mcService"); + mcService = McServiceProxy.getMcService(getServlet().getServletContext()); + logger.debug("retrieving mcService from cache: " + mcService); + } + request.getSession().setAttribute(TOOL_SERVICE, mcService); + + String servletPath=request.getServletPath(); + logger.debug("getServletPath: "+ servletPath); + if (servletPath.indexOf("defineLaterStarter") > 0) + { + logger.debug("request is for define later module."); + request.getSession().setAttribute(ACTIVE_MODULE, DEFINE_LATER); + request.getSession().setAttribute(DEFINE_LATER_IN_EDIT_MODE, new Boolean(false)); + request.getSession().setAttribute(SHOW_AUTHORING_TABS,new Boolean(false).toString()); + } + else + { + logger.debug("request is for authoring module"); + request.getSession().setAttribute(ACTIVE_MODULE, AUTHORING); + request.getSession().setAttribute(DEFINE_LATER_IN_EDIT_MODE, new Boolean(true)); + request.getSession().setAttribute(SHOW_AUTHORING_TABS,new Boolean(true).toString()); + } + + /* String activeModule=(String) request.getSession().getAttribute(ACTIVE_MODULE); logger.debug("activeModule: " + activeModule); - /* determine whether the request is from Monitoring url Edit Activity - * null sourceMcStarter indicates that the request is from authoring url. - * */ - - String sourceMcStarter = (String) request.getAttribute(SOURCE_MC_STARTER); - logger.debug("sourceMcStarter: " + sourceMcStarter); - - if ( (activeModule == null) || (!activeModule.equals(DEFINE_LATER)) ) { + McUtils.cleanUpSessionAbsolute(request); + logger.debug("init authoring mode. removed attributes..."); request.getSession().setAttribute(ACTIVE_MODULE, AUTHORING); logger.debug("activeModule set to Authoring: " + activeModule); + request.getSession().setAttribute(SHOW_AUTHORING_TABS,new Boolean(true).toString()); } logger.debug("final active activeModule is: " + request.getSession().getAttribute(ACTIVE_MODULE)); - - if (mcService == null) - { - logger.debug("will retrieve mcService"); - mcService = McServiceProxy.getMcService(getServlet().getServletContext()); - logger.debug("retrieving mcService from proxy: " + mcService); - request.getSession().setAttribute(TOOL_SERVICE, mcService); - } + logger.debug("final showAuthoringTabs: " + request.getSession().getAttribute(SHOW_AUTHORING_TABS)); + */ initialiseAttributes(request); + /* determine whether the request is from Monitoring url Edit Activity + * null sourceMcStarter indicates that the request is from authoring url. + * */ + String sourceMcStarter = (String) request.getAttribute(SOURCE_MC_STARTER); + logger.debug("sourceMcStarter: " + sourceMcStarter); + + McAuthoringForm mcAuthoringForm = (McAuthoringForm) form; mcAuthoringForm.resetRadioBoxes(); @@ -343,7 +366,7 @@ * there is no need to check if the content is in use in this case. * It is always unlocked -> not in use since it is the default content. */ - + if (!existsContent(toolContentId, request)) { logger.debug("retrieving default content"); @@ -376,13 +399,19 @@ /* it is possible that the content is being EDITED in the monitoring interface. In this situation, the content is not modifiable*/ boolean isDefineLater=McUtils.isDefineLater(mcContent); logger.debug("isDefineLater:" + isDefineLater); - - if (isDefineLater == true) + String defineLater= (String)request.getSession().getAttribute(ACTIVE_MODULE); + logger.debug("the url mode is :" + defineLater); + + /* we should allow content to be edited if the url mode is define Later*/ + if (!defineLater.equals(DEFINE_LATER)) { - persistError(request,"error.content.beingModified"); - McUtils.cleanUpSessionAbsolute(request); - logger.debug("forwarding to: " + ERROR_LIST); - return (mapping.findForward(ERROR_LIST)); + if (isDefineLater == true) + { + persistError(request,"error.content.beingModified"); + McUtils.cleanUpSessionAbsolute(request); + logger.debug("forwarding to: " + ERROR_LIST); + return (mapping.findForward(ERROR_LIST)); + } } } @@ -784,10 +813,12 @@ request.getSession().setAttribute(TOOL_SERVICE, mcService); /* present the view-only screen first */ + /* request.getSession().setAttribute(ACTIVE_MODULE, DEFINE_LATER); request.getSession().setAttribute(DEFINE_LATER_IN_EDIT_MODE, new Boolean(false)); - request.getSession().setAttribute(SHOW_AUTHORING_TABS,new Boolean(false).toString()); + */ + return execute(mapping, form, request, response); }