Index: lams_tool_larsrc/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -119,7 +119,7 @@ - - - Index: lams_tool_larsrc/db/model/resource.clay =================================================================== diff -u -r2116db454fd0ec719a6deeaacd9d10306d341b93 -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/db/model/resource.clay (.../resource.clay) (revision 2116db454fd0ec719a6deeaacd9d10306d341b93) +++ lams_tool_larsrc/db/model/resource.clay (.../resource.clay) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -14,7 +14,7 @@ - + @@ -116,7 +116,7 @@
- + @@ -192,7 +192,7 @@
- + @@ -357,7 +357,7 @@
- + @@ -372,7 +372,7 @@ - + @@ -385,7 +385,7 @@ - + @@ -432,6 +432,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -445,35 +509,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- + @@ -574,7 +765,7 @@
- + Index: lams_tool_larsrc/db/sql/create_lams_tool_rsrc.sql =================================================================== diff -u -r6c82746ec6c1edbc3ef793dcf2e93aff7bf758d9 -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/db/sql/create_lams_tool_rsrc.sql (.../create_lams_tool_rsrc.sql) (revision 6c82746ec6c1edbc3ef793dcf2e93aff7bf758d9) +++ lams_tool_larsrc/db/sql/create_lams_tool_rsrc.sql (.../create_lams_tool_rsrc.sql) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -3,6 +3,7 @@ drop table if exists tl_larsrc11_item_instruction; drop table if exists tl_larsrc11_resource; drop table if exists tl_larsrc11_resource_item; +drop table if exists tl_larsrc11_resource_item_visit_log; drop table if exists tl_larsrc11_session; drop table if exists tl_larsrc11_user; create table tl_larsrc11_attachment ( @@ -63,6 +64,14 @@ session_uid bigint, primary key (uid) ); +create table tl_larsrc11_resource_item_visit_log ( + uid bigint not null auto_increment, + access_date datetime, + resource_item_uid bigint, + user_uid bigint, + complete bit, + primary key (uid) +); create table tl_larsrc11_session ( uid bigint not null auto_increment, session_end_date datetime, @@ -88,6 +97,8 @@ alter table tl_larsrc11_resource_item add index FKF52D1F93758092FB (create_by), add constraint FKF52D1F93758092FB foreign key (create_by) references tl_larsrc11_user (uid); alter table tl_larsrc11_resource_item add index FKF52D1F9330E79035 (resource_uid), add constraint FKF52D1F9330E79035 foreign key (resource_uid) references tl_larsrc11_resource (uid); alter table tl_larsrc11_resource_item add index FKF52D1F93EC0D3147 (session_uid), add constraint FKF52D1F93EC0D3147 foreign key (session_uid) references tl_larsrc11_session (uid); +alter table tl_larsrc11_resource_item_visit_log add index FK693580A438BF8DFE (resource_item_uid), add constraint FK693580A438BF8DFE foreign key (resource_item_uid) references tl_larsrc11_resource_item (uid); +alter table tl_larsrc11_resource_item_visit_log add index FK693580A441F9365D (user_uid), add constraint FK693580A441F9365D foreign key (user_uid) references tl_larsrc11_user (uid); alter table tl_larsrc11_session add index FK24AA78C530E79035 (resource_uid), add constraint FK24AA78C530E79035 foreign key (resource_uid) references tl_larsrc11_resource (uid); alter table tl_larsrc11_user add index FK30113BFC506CD584 (session_id), add constraint FK30113BFC506CD584 foreign key (session_id) references tl_larsrc11_session (uid); Index: lams_tool_larsrc/db/sql/drop_lams_tool_rsrc.sql =================================================================== diff -u -r2116db454fd0ec719a6deeaacd9d10306d341b93 -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/db/sql/drop_lams_tool_rsrc.sql (.../drop_lams_tool_rsrc.sql) (revision 2116db454fd0ec719a6deeaacd9d10306d341b93) +++ lams_tool_larsrc/db/sql/drop_lams_tool_rsrc.sql (.../drop_lams_tool_rsrc.sql) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -3,6 +3,7 @@ drop table if exists tl_larsrc11_item_instruction; drop table if exists tl_larsrc11_resource; drop table if exists tl_larsrc11_resource_item; +drop table if exists tl_larsrc11_resource_item_visit_log; drop table if exists tl_larsrc11_session; drop table if exists tl_larsrc11_user; SET FOREIGN_KEY_CHECKS=1; Index: lams_tool_larsrc/db/sql/table-schema.sql =================================================================== diff -u -r6c82746ec6c1edbc3ef793dcf2e93aff7bf758d9 -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/db/sql/table-schema.sql (.../table-schema.sql) (revision 6c82746ec6c1edbc3ef793dcf2e93aff7bf758d9) +++ lams_tool_larsrc/db/sql/table-schema.sql (.../table-schema.sql) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -4,12 +4,15 @@ alter table tl_larsrc11_resource_item drop foreign key FKF52D1F93758092FB; alter table tl_larsrc11_resource_item drop foreign key FKF52D1F9330E79035; alter table tl_larsrc11_resource_item drop foreign key FKF52D1F93EC0D3147; +alter table tl_larsrc11_resource_item_visit_log drop foreign key FK693580A438BF8DFE; +alter table tl_larsrc11_resource_item_visit_log drop foreign key FK693580A441F9365D; alter table tl_larsrc11_session drop foreign key FK24AA78C530E79035; alter table tl_larsrc11_user drop foreign key FK30113BFC506CD584; drop table if exists tl_larsrc11_attachment; drop table if exists tl_larsrc11_item_instruction; drop table if exists tl_larsrc11_resource; drop table if exists tl_larsrc11_resource_item; +drop table if exists tl_larsrc11_resource_item_visit_log; drop table if exists tl_larsrc11_session; drop table if exists tl_larsrc11_user; create table tl_larsrc11_attachment ( @@ -70,6 +73,14 @@ session_uid bigint, primary key (uid) ); +create table tl_larsrc11_resource_item_visit_log ( + uid bigint not null auto_increment, + access_date datetime, + resource_item_uid bigint, + user_uid bigint, + complete bit, + primary key (uid) +); create table tl_larsrc11_session ( uid bigint not null auto_increment, session_end_date datetime, @@ -95,5 +106,7 @@ alter table tl_larsrc11_resource_item add index FKF52D1F93758092FB (create_by), add constraint FKF52D1F93758092FB foreign key (create_by) references tl_larsrc11_user (uid); alter table tl_larsrc11_resource_item add index FKF52D1F9330E79035 (resource_uid), add constraint FKF52D1F9330E79035 foreign key (resource_uid) references tl_larsrc11_resource (uid); alter table tl_larsrc11_resource_item add index FKF52D1F93EC0D3147 (session_uid), add constraint FKF52D1F93EC0D3147 foreign key (session_uid) references tl_larsrc11_session (uid); +alter table tl_larsrc11_resource_item_visit_log add index FK693580A438BF8DFE (resource_item_uid), add constraint FK693580A438BF8DFE foreign key (resource_item_uid) references tl_larsrc11_resource_item (uid); +alter table tl_larsrc11_resource_item_visit_log add index FK693580A441F9365D (user_uid), add constraint FK693580A441F9365D foreign key (user_uid) references tl_larsrc11_user (uid); alter table tl_larsrc11_session add index FK24AA78C530E79035 (resource_uid), add constraint FK24AA78C530E79035 foreign key (resource_uid) references tl_larsrc11_resource (uid); alter table tl_larsrc11_user add index FK30113BFC506CD584 (session_id), add constraint FK30113BFC506CD584 foreign key (session_id) references tl_larsrc11_session (uid); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceItemVisitDAO.java =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceItemVisitDAO.java (.../ResourceItemVisitDAO.java) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceItemVisitDAO.java (.../ResourceItemVisitDAO.java) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -27,7 +27,7 @@ public interface ResourceItemVisitDAO extends DAO { - public ResourceItemVisitLog getResourceItemLog(Long userUid,Long itemUid); + public ResourceItemVisitLog getResourceItemLog(Long itemUid,Long userId); public int getUserViewLogCount(Long userUid); } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceItemVisitDAOHibernate.java =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceItemVisitDAOHibernate.java (.../ResourceItemVisitDAOHibernate.java) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceItemVisitDAOHibernate.java (.../ResourceItemVisitDAOHibernate.java) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -30,12 +30,12 @@ public class ResourceItemVisitDAOHibernate extends BaseDAOHibernate implements ResourceItemVisitDAO{ - private static final String FIND_BY_ITEM_AND_USER = "from " + ResourceItemVisitLog.class.getName() + " where user.uid = ? and resourceItem.uid=?"; + private static final String FIND_BY_ITEM_AND_USER = "from " + ResourceItemVisitLog.class.getName() + " where user.userId = ? and resourceItem.uid=?"; private static final String FIND_VIEW_COUNT_BY_USER = "select count(*) from " + ResourceItemVisitLog.class.getName() + " where user.uid = ?"; - public ResourceItemVisitLog getResourceItemLog(Long userUid,Long itemUid){ - List list = getHibernateTemplate().find(FIND_BY_ITEM_AND_USER,new Object[]{userUid,itemUid}); + public ResourceItemVisitLog getResourceItemLog(Long itemUid,Long userId){ + List list = getHibernateTemplate().find(FIND_BY_ITEM_AND_USER,new Object[]{userId,itemUid}); if(list == null || list.size() ==0) return null; return (ResourceItemVisitLog) list.get(0); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java (.../Resource.java) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java (.../Resource.java) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -112,7 +112,7 @@ ResourceItem item = (ResourceItem)iter.next(); ResourceItem newItem = (ResourceItem) item.clone(); // if toolContentHandle is null, just clone old file without duplicate it in repository - if(toolContentHandler != null){ + if(toolContentHandler != null && item.getFileUuid() != null){ //duplicate file node in repository NodeKey keys = toolContentHandler.copyFile(item.getFileUuid()); newItem.setFileUuid(keys.getUuid()); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml (.../rsrcApplicationContext.xml) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml (.../rsrcApplicationContext.xml) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -22,6 +22,7 @@ org/lamsfoundation/lams/tool/rsrc/model/Resource.hbm.xml org/lamsfoundation/lams/tool/rsrc/model/ResourceItem.hbm.xml org/lamsfoundation/lams/tool/rsrc/model/ResourceItemInstruction.hbm.xml + org/lamsfoundation/lams/tool/rsrc/model/ResourceItemVisitLog.hbm.xml org/lamsfoundation/lams/tool/rsrc/model/ResourceAttachment.hbm.xml org/lamsfoundation/lams/tool/rsrc/model/ResourceSession.hbm.xml @@ -39,6 +40,11 @@ + + + + + @@ -71,6 +77,9 @@ + + + Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -80,20 +80,22 @@ void saveOrUpdateResourceSession(ResourceSession resSession); void retrieveComplete(List resourceItemList, ResourceUser user); - void setItemComplete(Long resourceItemUid, Long userUid); - void setItemAccess(Long resourceItemUid, Long userUid); + void setItemComplete(Long resourceItemUid, Long userId); + void setItemAccess(Long resourceItemUid, Long userId); /** * the reqired number minus the count of view of the given user. * @param userUid * @return */ - int checkMiniView(Long toolSessionId, Long userUid); + int checkMiniView(Long toolSessionId, Long userId); /** * If success return next activity's url, otherwise return null. * @param toolSessionId * @param userId * @return */ String finishToolSession(Long toolSessionId, Long userId) throws ResourceApplicationException; + + ResourceItem getResourceItemByUid(Long itemUid); } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -315,26 +315,37 @@ public void retrieveComplete(List resourceItemList, ResourceUser user) { for(ResourceItem item:resourceItemList){ - ResourceItemVisitLog log = resourceItemVisitDao.getResourceItemLog(user.getUid(),item.getUid()); - item.setComplete(log.isComplete()); + ResourceItemVisitLog log = resourceItemVisitDao.getResourceItemLog(item.getUid(),user.getUserId()); + if(log == null) + item.setComplete(false); + else + item.setComplete(log.isComplete()); } } - public void setItemComplete(Long resourceItemUid, Long userUid) { - ResourceItemVisitLog log = resourceItemVisitDao.getResourceItemLog(resourceItemUid,userUid); + public void setItemComplete(Long resourceItemUid, Long userId) { + ResourceItemVisitLog log = resourceItemVisitDao.getResourceItemLog(resourceItemUid,userId); + if(log == null){ + log = new ResourceItemVisitLog(); + ResourceItem item = resourceItemDao.getByUid(resourceItemUid); + log.setResourceItem(item); + ResourceUser user = resourceUserDao.getUserByUserID(userId); + log.setUser(user); + log.setAccessDate(new Timestamp(new Date().getTime())); + } log.setComplete(true); resourceItemVisitDao.saveObject(log); } - public void setItemAccess(Long resourceItemUid, Long userUid){ - ResourceItemVisitLog log = resourceItemVisitDao.getResourceItemLog(userUid,resourceItemUid); + public void setItemAccess(Long resourceItemUid, Long userId){ + ResourceItemVisitLog log = resourceItemVisitDao.getResourceItemLog(resourceItemUid,userId); if(log == null){ log = new ResourceItemVisitLog(); ResourceItem item = resourceItemDao.getByUid(resourceItemUid); log.setResourceItem(item); - ResourceUser user = resourceUserDao.getUserByUserID(userUid); + ResourceUser user = resourceUserDao.getUserByUserID(userId); log.setUser(user); log.setComplete(false); log.setAccessDate(new Timestamp(new Date().getTime())); @@ -371,7 +382,12 @@ return (reqView - miniView); } + public ResourceItem getResourceItemByUid(Long itemUid) { + return resourceItemDao.getByUid(itemUid); + } + + //***************************************************************************** // private methods //***************************************************************************** Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java =================================================================== diff -u -r48fa73bb54a33a0c7301402462e445fb6664d736 -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 48fa73bb54a33a0c7301402462e445fb6664d736) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -142,67 +142,18 @@ if (param.equals("removeItemAttachment")) { return removeItemAttachment(mapping, form, request, response); } - //for preview top frame html page use: - if (param.equals("nextInstruction")) { - return nextInstruction(mapping, form, request, response); - } - - //-----------------------Display Learning Object function --------------------------- - if (param.equals("reviewItem")) { - return reviewItem(mapping, form, request, response); - } + return mapping.findForward(ResourceConstants.ERROR); } - private ActionForward nextInstruction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - InstructionNavForm navForm = (InstructionNavForm) form; - List list = navForm.getAllInstructions(); - if(list != null && navForm.getCurrent() < list.size()){ - //current is start from 1, so, this will return next. - navForm.setInstruction((ResourceItemInstruction) list.get(navForm.getCurrent())); - navForm.setCurrent(navForm.getCurrent()+1); - } - - return mapping.findForward(ResourceConstants.SUCCESS); - } - private ActionForward removeItemAttachment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { request.setAttribute("itemAttachment", null); return mapping.findForward(ResourceConstants.SUCCESS); } - private ActionForward reviewItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX),-1); - if(itemIdx != -1){ - List resourceList = getResourceItemList(request); - ResourceItem item = resourceList.get(itemIdx); - - Set instructions = item.getItemInstructions(); - InstructionNavForm navForm = (InstructionNavForm) form; - 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); - } - return mapping.findForward(ResourceConstants.ERROR); - } - - private ActionForward removeItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX),-1); if(itemIdx != -1){ @@ -803,25 +754,6 @@ return forward; } - private Object getReviewUrl(ResourceItem item) { - short type = item.getType(); - String url = null; - switch (type) { - case ResourceConstants.RESOURCE_TYPE_URL: - url = item.getUrl(); - break; - case ResourceConstants.RESOURCE_TYPE_FILE: - url = "/download/?uuid="+item.getFileUuid()+"&preferDownload=false"; - break; - case ResourceConstants.RESOURCE_TYPE_WEBSITE: - url = "/download/?uuid="+item.getFileUuid()+"&preferDownload=false"; - break; - case ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT: - url = "/pages/learningobj/mainframe.jsp"; - break; - } - return url; - } /** * This method will populate resource item information to its form for edit use. Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (.../LearningAction.java) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (.../LearningAction.java) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -83,9 +83,7 @@ if(param.equals("complete")){ return complete(mapping, form, request, response); } - if(param.equals("view")){ - return view(mapping, form, request, response); - } + if(param.equals("finish")){ return finish(mapping, form, request, response); } @@ -106,8 +104,8 @@ int miniViewFlag = service.checkMiniView(sessionId,userID); //if current user view less than reqired view count number, then just return error message. if(miniViewFlag > 0){ - ActionMessages errors = new ActionMessages(); - errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionError("lable.learning.minimum.view.number.less",miniViewFlag)); + ActionErrors errors = new ActionErrors(); + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("lable.learning.minimum.view.number.less",miniViewFlag)); this.addErrors(request,errors); return mapping.getInputForward(); @@ -130,15 +128,7 @@ return mapping.findForward("success"); } - private ActionForward view(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - Long resourceUid = new Long(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); - IResourceService service = getResourceService(); - HttpSession ss = SessionManager.getSession(); - //get back login user DTO - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - service.setItemAccess(resourceUid,new Long(user.getUserID().intValue())); - return mapping.findForward(ResourceConstants.SUCCESS); - } + private ActionForward complete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Long resourceUid = new Long(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); IResourceService service = getResourceService(); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java =================================================================== diff -u --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java (revision 0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -0,0 +1,175 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.rsrc.web.action; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang.math.NumberUtils; +import org.apache.struts.action.Action; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.tool.rsrc.ResourceConstants; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceItem; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceItemInstruction; +import org.lamsfoundation.lams.tool.rsrc.service.IResourceService; +import org.lamsfoundation.lams.tool.rsrc.web.form.InstructionNavForm; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +public class ViewItemAction extends Action { + + public ActionForward execute(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + + String param = mapping.getParameter(); + //-----------------------Display Learning Object function --------------------------- + if (param.equals("reviewItem")) { + return reviewItem(mapping, form, request, response); + } + //for preview top frame html page use: + if (param.equals("nextInstruction")) { + return nextInstruction(mapping, form, request, response); + } + + return mapping.findForward(ResourceConstants.ERROR); + } + + private ActionForward nextInstruction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + InstructionNavForm navForm = (InstructionNavForm) form; + List list = navForm.getAllInstructions(); + if(list != null && navForm.getCurrent() < list.size()){ + //current is start from 1, so, this will return next. + navForm.setInstruction((ResourceItemInstruction) list.get(navForm.getCurrent())); + navForm.setCurrent(navForm.getCurrent()+1); + } + + return mapping.findForward(ResourceConstants.SUCCESS); + } + + private ActionForward reviewItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX),-1); + Long itemUid = NumberUtils.createLong(request.getParameter(ResourceConstants.PARAM_RESOURCE_ITEM_UID)); + ResourceItem item = null; + if(itemIdx != -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(itemUid != null){ + //learning, list from database, so get item by Uid +// get back the resource and item list and display them on page + 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())); + } + if(item != null){ + Set instructions = item.getItemInstructions(); + InstructionNavForm navForm = (InstructionNavForm) form; + 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); + } + + return mapping.findForward(ResourceConstants.ERROR); + } + //************************************************************************************* + // Private method + //************************************************************************************* + private IResourceService getResourceService() { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + return (IResourceService) wac.getBean(ResourceConstants.RESOURCE_SERVICE); + } + + private Object getReviewUrl(ResourceItem item) { + short type = item.getType(); + String url = null; + switch (type) { + case ResourceConstants.RESOURCE_TYPE_URL: + url = item.getUrl(); + break; + case ResourceConstants.RESOURCE_TYPE_FILE: + url = "/download/?uuid="+item.getFileUuid()+"&preferDownload=false"; + break; + case ResourceConstants.RESOURCE_TYPE_WEBSITE: + url = "/download/?uuid="+item.getFileUuid()+"&preferDownload=false"; + break; + case ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT: + url = "/pages/learningobj/mainframe.jsp"; + break; + } + return url; + } + /** + * List save current resource items. + * @param request + * @return + */ + private List getResourceItemList(HttpServletRequest request) { + return getListFromSession(request,ResourceConstants.ATTR_RESOURCE_ITEM_LIST); + } + /** + * Get java.util.List from HttpSession by given name. + * + * @param request + * @param name + * @return + */ + private List getListFromSession(HttpServletRequest request,String name) { + List list = (List) request.getSession().getAttribute(name); + if(list == null){ + list = new ArrayList(); + request.getSession().setAttribute(name,list); + } + return list; + } + +} Index: lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp =================================================================== diff -u -r6b786496dac3e368e8a686373ac4e3cdee391c47 -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp (.../addfile.jsp) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) +++ lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp (.../addfile.jsp) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -12,7 +12,7 @@ - +
Index: lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp =================================================================== diff -u -r318b6abe8422efe8b6bac112c6dc0fd15ba13873 -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp (.../instructionsnav.jsp) (revision 318b6abe8422efe8b6bac112c6dc0fd15ba13873) +++ lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp (.../instructionsnav.jsp) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -1,4 +1,5 @@ <%@ include file="/common/taglibs.jsp"%> +" /> Index: lams_tool_larsrc/web/pages/learning/learning.jsp =================================================================== diff -u -r27653cd039c7a5c282fed7bb692473179a4d89ec -r0cd3a215c27e8fd64b488f94fe084b665ab15567 --- lams_tool_larsrc/web/pages/learning/learning.jsp (.../learning.jsp) (revision 27653cd039c7a5c282fed7bb692473179a4d89ec) +++ lams_tool_larsrc/web/pages/learning/learning.jsp (.../learning.jsp) (revision 0cd3a215c27e8fd64b488f94fe084b665ab15567) @@ -4,32 +4,39 @@ <fmt:message key="label.learning.title" /> <%@ include file="/common/header.jsp"%> - +