Index: lams_tool_larsrc/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r50d68fddcd33b33903cd4c0119f01080b9314b80 -r1dcb265570c3043908973a86db792f67133645e1 --- lams_tool_larsrc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 50d68fddcd33b33903cd4c0119f01080b9314b80) +++ lams_tool_larsrc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -129,18 +129,11 @@ - @@ -161,7 +154,6 @@ input="/pages/learning/learning.jsp" parameter="finish" > - navItems = new ArrayList(1); + //create a new instruction and put ResourceItem description into it: just for display use. + ResourceItemInstruction ins = new ResourceItemInstruction(); + ins.setSequenceId(1); + ins.setDescription(item.getDescription()); + navItems.add(ins); + navDto.setAllInstructions(navItems); + instructions.add(ins); + }else{ + navDto.setAllInstructions(new ArrayList(instructions)); + } + navDto.setTitle(item.getTitle()); + navDto.setType(item.getType()); + navDto.setTotal(instructions.size()); + if(instructions.size() > 0){ + navDto.setInstruction((ResourceItemInstruction) new ArrayList(instructions).get(currIns)); + navDto.setCurrent(currIns+1); + }else{ + navDto.setCurrent(0); + navDto.setInstruction(null); + } + + request.setAttribute(ResourceConstants.ATTR_RESOURCE_INSTRUCTION,navDto); return mapping.findForward(ResourceConstants.SUCCESS); } + /** + * Display main frame to display instrcution and item content. + * @param mapping + * @param form + * @param request + * @param response + * @return + */ private ActionForward reviewItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - ToolAccessMode mode = (ToolAccessMode) request.getSession().getAttribute(AttributeNames.ATTR_MODE); - ResourceItem item = null; - if(mode.isAuthor()){ - int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX),-1); - //authoring: does not save item yet, so only has ItemList from session and identity by Index - List resourceList = getResourceItemList(request); - item = resourceList.get(itemIdx); - }else if(mode.isLearner() || mode.isTeacher()){ - Long itemUid = NumberUtils.createLong(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); - //save itemUid to HttpSession - request.getSession().setAttribute(ResourceConstants.ATTR_RESOURCE_ITEM_UID,itemUid); - Long sessionId = (Long) request.getSession().getAttribute(ResourceConstants.ATTR_TOOL_SESSION_ID); - //learning, list from database, so get item by Uid -// get back the resource and item list and display them on page + String mode = request.getParameter(AttributeNames.ATTR_MODE); + ResourceItem item = getResourceItem(request, mode); + + String idStr = request.getParameter(ResourceConstants.ATTR_TOOL_SESSION_ID); + Long sessionId = NumberUtils.createLong(idStr); + //mark this item access flag if it is learner + if(ToolAccessMode.LEARNER.toString().equals(mode)){ IResourceService service = getResourceService(); - item = service.getResourceItemByUid(itemUid); HttpSession ss = SessionManager.getSession(); //get back login user DTO UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - service.setItemAccess(itemUid,new Long(user.getUserID().intValue()),sessionId); + service.setItemAccess(item.getUid(),new Long(user.getUserID().intValue()),sessionId); } - if(item != null){ - Set instructions = item.getItemInstructions(); - InstructionNavForm navForm = (InstructionNavForm) form; - //For Learner upload item, its instruction will display description/comment fields in ReosourceItem. - if(!item.isCreateByAuthor()){ - List navItems = new ArrayList(1); - //create a new instruction and put ResourceItem description into it: just for display use. - ResourceItemInstruction ins = new ResourceItemInstruction(); - ins.setSequenceId(1); - ins.setDescription(item.getDescription()); - navItems.add(ins); - navForm.setAllInstructions(navItems); - instructions.add(ins); - }else{ - navForm.setAllInstructions(new ArrayList(instructions)); - } - navForm.setTitle(item.getTitle()); - navForm.setType(item.getType()); - navForm.setTotal(instructions.size()); - if(instructions.size() > 0){ - navForm.setCurrent(1); - navForm.setInstruction((ResourceItemInstruction) instructions.iterator().next()); - }else{ - navForm.setCurrent(0); - navForm.setInstruction(null); - } - if(item.getType() == ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT) - request.getSession().setAttribute(ResourceConstants.ATT_LEARNING_OBJECT,item); - //set url to content frame - request.setAttribute(ResourceConstants.ATTR_RESOURCE_REVIEW_URL,getReviewUrl(item)); - return mapping.findForward(ResourceConstants.SUCCESS); + + if(item == null){ + return mapping.findForward(ResourceConstants.ERROR); } + if(item.getType() == ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT) + request.getSession().setAttribute(ResourceConstants.ATT_LEARNING_OBJECT,item); + //set url to content frame + request.setAttribute(ResourceConstants.ATTR_RESOURCE_REVIEW_URL,getReviewUrl(item)); - return mapping.findForward(ResourceConstants.ERROR); + //these attribute will be use to instruction navigator page + request.setAttribute(AttributeNames.ATTR_MODE,mode); + int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX)); + request.setAttribute(ResourceConstants.PARAM_ITEM_INDEX,itemIdx); + Long itemUid = NumberUtils.createLong(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); + request.setAttribute(ResourceConstants.PARAM_RESOURCE_ITEM_UID,itemUid); + request.setAttribute(ResourceConstants.ATTR_TOOL_SESSION_ID,sessionId); + + return mapping.findForward(ResourceConstants.SUCCESS); + } //************************************************************************************* // Private method //************************************************************************************* + /** + * Return resoruce item according to ToolAccessMode. + * @param request + * @param mode + * @return + */ + private ResourceItem getResourceItem(HttpServletRequest request, String mode) { + ResourceItem item = null; + if(ToolAccessMode.AUTHOR.toString().equals(mode)){ + int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX),0); + //authoring: does not save item yet, so only has ItemList from session and identity by Index + List resourceList = getResourceItemList(request); + item = resourceList.get(itemIdx); + }else if(ToolAccessMode.LEARNER.toString().equals(mode) || ToolAccessMode.TEACHER.toString().equals(mode)){ + Long itemUid = NumberUtils.createLong(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); +// get back the resource and item list and display them on page + IResourceService service = getResourceService(); + item = service.getResourceItemByUid(itemUid); + } + return item; + } + private IResourceService getResourceService() { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); return (IResourceService) wac.getBean(ResourceConstants.RESOURCE_SERVICE); Fisheye: Tag 1dcb265570c3043908973a86db792f67133645e1 refers to a dead (removed) revision in file `lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/form/InstructionNavForm.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_larsrc/web/pages/authoring/basic.jsp =================================================================== diff -u -rcfa9126e592b7e05b7856cd137d634ce6ba1bb34 -r1dcb265570c3043908973a86db792f67133645e1 --- lams_tool_larsrc/web/pages/authoring/basic.jsp (.../basic.jsp) (revision cfa9126e592b7e05b7856cd137d634ce6ba1bb34) +++ lams_tool_larsrc/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -22,7 +22,7 @@ function previewItem(type,idx){ //1:url, 2:file, 3:website,4:learning object - var myUrl = ""+idx; + var myUrl = ""+idx; launchPopup(myUrl,"Review"); } Index: lams_tool_larsrc/web/pages/itemreview/initnav.jsp =================================================================== diff -u --- lams_tool_larsrc/web/pages/itemreview/initnav.jsp (revision 0) +++ lams_tool_larsrc/web/pages/itemreview/initnav.jsp (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -0,0 +1,23 @@ +<%-- +To avoid use HttpSession (LDEV-199), try to +use request.setAttribute() transfer value. But this page is embeded into a Frame html page, directly +request can not block on frame page, so use this trick page redirect request, then server side could handle this +request using this page as target +--%> + +<%@ include file="/common/taglibs.jsp"%> +" /> + + + + + + + + + + + + + + Index: lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp =================================================================== diff -u -rfb406a57261a31898b62f3c808ffccb853089336 -r1dcb265570c3043908973a86db792f67133645e1 --- lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp (.../instructionsnav.jsp) (revision fb406a57261a31898b62f3c808ffccb853089336) +++ lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp (.../instructionsnav.jsp) (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -1,23 +1,22 @@ <%@ include file="/common/taglibs.jsp"%> -" /> - ${formBean.title} + ${instructions.title} <%@ include file="/common/header.jsp"%> @@ -39,7 +38,7 @@ - ${formBean.title} + ${instructions.title} Instructions  @@ -52,23 +51,23 @@
-

Step ${formBean.current} of ${formBean.total}

+

Step ${instructions.current} of ${instructions.total}

- + - ${formBean.instruction.description} + ${instructions.instruction.description}

- - + + Index: lams_tool_larsrc/web/pages/itemreview/mainframe.jsp =================================================================== diff -u -rfc7f983fbdc263b826831b5b6f4839290f7ef964 -r1dcb265570c3043908973a86db792f67133645e1 --- lams_tool_larsrc/web/pages/itemreview/mainframe.jsp (.../mainframe.jsp) (revision fc7f983fbdc263b826831b5b6f4839290f7ef964) +++ lams_tool_larsrc/web/pages/itemreview/mainframe.jsp (.../mainframe.jsp) (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -20,6 +20,7 @@ --%> <%@ include file="/common/taglibs.jsp" %> - " name=headerFrame" marginheight="0" scrolling="NO"> + ?mode=${mode}&itemIndex=${itemIndex}&itemUid=${itemUid}&toolSessionID=${toolSessionID}" + name=headerFrame" marginheight="0" scrolling="NO"> Index: lams_tool_larsrc/web/pages/learning/learning.jsp =================================================================== diff -u -r987a9ca6d6f83eefe8112c67e0dc013596c42c0a -r1dcb265570c3043908973a86db792f67133645e1 --- lams_tool_larsrc/web/pages/learning/learning.jsp (.../learning.jsp) (revision 987a9ca6d6f83eefe8112c67e0dc013596c42c0a) +++ lams_tool_larsrc/web/pages/learning/learning.jsp (.../learning.jsp) (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -24,7 +24,7 @@ return false; } function viewItem(itemUid){ - var myUrl = "?itemUid=" + itemUid; + var myUrl = "?mode=learner&toolSessionID=${toolSessionID}&itemUid=" + itemUid; launchPopup(myUrl,"LearnerView"); } function completeItem(itemUid){ Fisheye: Tag 1dcb265570c3043908973a86db792f67133645e1 refers to a dead (removed) revision in file `lams_tool_larsrc/web/pages/learning/previewfinish.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_larsrc/web/pages/learning/start.jsp =================================================================== diff -u -rfb406a57261a31898b62f3c808ffccb853089336 -r1dcb265570c3043908973a86db792f67133645e1 --- lams_tool_larsrc/web/pages/learning/start.jsp (.../start.jsp) (revision fb406a57261a31898b62f3c808ffccb853089336) +++ lams_tool_larsrc/web/pages/learning/start.jsp (.../start.jsp) (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -5,7 +5,7 @@ Index: lams_tool_larsrc/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -r85fa9972550237aecb7c329101980f1f68128bdc -r1dcb265570c3043908973a86db792f67133645e1 --- lams_tool_larsrc/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 85fa9972550237aecb7c329101980f1f68128bdc) +++ lams_tool_larsrc/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 1dcb265570c3043908973a86db792f67133645e1) @@ -21,7 +21,7 @@ } function viewItem(itemUid){ - var myUrl = "?itemUid=" + itemUid; + var myUrl = "?mode=teacher&itemUid=" + itemUid; launchPopup(myUrl,"MonitoringReview"); }