Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java =================================================================== diff -u -rd3f5671d2d2b0e388e0f212fd6a3fd82c072644e -rd91247d69fe0a8fe3fe1750a0de83d5010fc6ad0 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java (.../ResourceConstants.java) (revision d3f5671d2d2b0e388e0f212fd6a3fd82c072644e) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java (.../ResourceConstants.java) (revision d91247d69fe0a8fe3fe1750a0de83d5010fc6ad0) @@ -137,6 +137,8 @@ public static final String PAGE_EDITABLE = "isPageEditable"; + public static final String MODE_AUTHOR_SESSION = "author_session"; + public static final String ATTR_REFLECTION_ON = "reflectOn"; public static final String ATTR_REFLECTION_INSTRUCTION = "reflectInstructions"; Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/ViewItemController.java =================================================================== diff -u -rd3f5671d2d2b0e388e0f212fd6a3fd82c072644e -rd91247d69fe0a8fe3fe1750a0de83d5010fc6ad0 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/ViewItemController.java (.../ViewItemController.java) (revision d3f5671d2d2b0e388e0f212fd6a3fd82c072644e) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/ViewItemController.java (.../ViewItemController.java) (revision d91247d69fe0a8fe3fe1750a0de83d5010fc6ad0) @@ -24,7 +24,6 @@ package org.lamsfoundation.lams.tool.rsrc.web.controller; import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -35,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.rsrc.ResourceConstants; @@ -87,6 +87,7 @@ request.setAttribute(ResourceConstants.ATTR_TOOL_SESSION_ID, sessionId); request.setAttribute(ResourceConstants.ATTR_SESSION_MAP_ID, sessionMapID); request.setAttribute(ResourceConstants.ATTR_TITLE, item.getTitle()); + request.setAttribute(AttributeNames.ATTR_MODE, mode); return "pages/itemreview/mainframe"; } @@ -108,15 +109,18 @@ sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); } - ToolAccessMode toolAccessMode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); - String mode = toolAccessMode.toString(); + String mode = request.getParameter(AttributeNames.ATTR_MODE); + if (StringUtils.isBlank(mode)) { + ToolAccessMode toolAccessMode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); + mode = toolAccessMode.toString(); + } ResourceItem item = getResourceItem(request, sessionMap, mode); - String idStr = request.getParameter(ResourceConstants.ATTR_TOOL_SESSION_ID); + String sessionIdString = request.getParameter(ResourceConstants.ATTR_TOOL_SESSION_ID); Long sessionId = null; // mark this item access flag if it is learner if (ToolAccessMode.LEARNER.toString().equals(mode)) { - sessionId = NumberUtils.createLong(idStr); + sessionId = NumberUtils.createLong(sessionIdString); HttpSession ss = SessionManager.getSession(); // get back login user DTO UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); @@ -143,7 +147,7 @@ itemUid = 0L; } request.setAttribute(ResourceConstants.PARAM_RESOURCE_ITEM_UID, itemUid); - request.setAttribute(ResourceConstants.ATTR_TOOL_SESSION_ID, sessionId); + request.setAttribute(ResourceConstants.ATTR_TOOL_SESSION_ID, sessionIdString); request.setAttribute(ResourceConstants.ATTR_SESSION_MAP_ID, sessionMapID); return "pages/itemreview/itemContent"; @@ -183,8 +187,11 @@ private ResourceItem getResourceItem(HttpServletRequest request, SessionMap sessionMap, String mode) { ResourceItem item = null; - if (ToolAccessMode.AUTHOR.toString().equals(mode)) { - int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX), 0); + if (ResourceConstants.MODE_AUTHOR_SESSION.equals(mode)) { + Integer itemIdx = WebUtil.readIntParam(request, ResourceConstants.PARAM_ITEM_INDEX, true); + if (itemIdx == null) { + itemIdx = 0; + } // authoring: does not save item yet, so only has ItemList from session and identity by Index List resourceList = new ArrayList<>(getResourceItemList(sessionMap)); item = resourceList.get(itemIdx); Index: lams_tool_larsrc/web/pages/itemreview/itemContent.jsp =================================================================== diff -u -rd3f5671d2d2b0e388e0f212fd6a3fd82c072644e -rd91247d69fe0a8fe3fe1750a0de83d5010fc6ad0 --- lams_tool_larsrc/web/pages/itemreview/itemContent.jsp (.../itemContent.jsp) (revision d3f5671d2d2b0e388e0f212fd6a3fd82c072644e) +++ lams_tool_larsrc/web/pages/itemreview/itemContent.jsp (.../itemContent.jsp) (revision d91247d69fe0a8fe3fe1750a0de83d5010fc6ad0) @@ -69,18 +69,20 @@ - - + + + + + + + + + - - - - -