Index: lams_tool_larsrc/conf/xdoclet/struts-actions.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/conf/xdoclet/struts-actions.xml,v diff -u -r1.23 -r1.24 --- lams_tool_larsrc/conf/xdoclet/struts-actions.xml 11 May 2006 06:00:47 -0000 1.23 +++ lams_tool_larsrc/conf/xdoclet/struts-actions.xml 18 May 2006 06:39:06 -0000 1.24 @@ -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 1.3 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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/authoring/basic.jsp,v diff -u -r1.12 -r1.13 --- lams_tool_larsrc/web/pages/authoring/basic.jsp 17 May 2006 06:55:32 -0000 1.12 +++ lams_tool_larsrc/web/pages/authoring/basic.jsp 18 May 2006 06:39:06 -0000 1.13 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/itemreview/initnav.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_larsrc/web/pages/itemreview/initnav.jsp 18 May 2006 06:39:06 -0000 1.1 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp,v diff -u -r1.6 -r1.7 --- lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp 4 May 2006 01:21:50 -0000 1.6 +++ lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp 18 May 2006 06:39:06 -0000 1.7 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/itemreview/mainframe.jsp,v diff -u -r1.3 -r1.4 --- lams_tool_larsrc/web/pages/itemreview/mainframe.jsp 8 May 2006 06:52:06 -0000 1.3 +++ lams_tool_larsrc/web/pages/itemreview/mainframe.jsp 18 May 2006 06:39:06 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/learning/learning.jsp,v diff -u -r1.13 -r1.14 --- lams_tool_larsrc/web/pages/learning/learning.jsp 17 May 2006 07:18:39 -0000 1.13 +++ lams_tool_larsrc/web/pages/learning/learning.jsp 18 May 2006 06:39:06 -0000 1.14 @@ -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 1.2 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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/learning/start.jsp,v diff -u -r1.3 -r1.4 --- lams_tool_larsrc/web/pages/learning/start.jsp 4 May 2006 01:21:50 -0000 1.3 +++ lams_tool_larsrc/web/pages/learning/start.jsp 18 May 2006 06:39:06 -0000 1.4 @@ -5,7 +5,7 @@ Index: lams_tool_larsrc/web/pages/monitoring/monitoring.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/monitoring/monitoring.jsp,v diff -u -r1.5 -r1.6 --- lams_tool_larsrc/web/pages/monitoring/monitoring.jsp 17 May 2006 07:17:54 -0000 1.5 +++ lams_tool_larsrc/web/pages/monitoring/monitoring.jsp 18 May 2006 06:39:06 -0000 1.6 @@ -21,7 +21,7 @@ } function viewItem(itemUid){ - var myUrl = "?itemUid=" + itemUid; + var myUrl = "?mode=teacher&itemUid=" + itemUid; launchPopup(myUrl,"MonitoringReview"); }