Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Attic/Summary.java,v diff -u -r1.5 -r1.6 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java 14 Jun 2006 06:03:11 -0000 1.5 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java 6 Sep 2006 02:05:50 -0000 1.6 @@ -60,6 +60,7 @@ private Long fileVersionId; //true: initial group item, false, belong to some group. private boolean isInitGroup; + public Summary(){} /** * Contruction method for monitoring summary function. Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java,v diff -u -r1.20 -r1.21 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java 31 Aug 2006 06:39:01 -0000 1.20 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java 6 Sep 2006 02:05:50 -0000 1.21 @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedSet; import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.contentrepository.IVersionedNode; @@ -163,7 +164,7 @@ */ void saveOrUpdateResourceSession(ResourceSession resSession); - void retrieveComplete(List resourceItemList, ResourceUser user); + void retrieveComplete(SortedSet resourceItemList, ResourceUser user); void setItemComplete(Long resourceItemUid, Long userId , Long sessionId); void setItemAccess(Long resourceItemUid, Long userId, Long sessionId); /** Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java,v diff -u -r1.42 -r1.43 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 31 Aug 2006 06:39:01 -0000 1.42 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 6 Sep 2006 02:05:50 -0000 1.43 @@ -38,6 +38,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedSet; import java.util.TreeSet; import java.util.Vector; @@ -425,7 +426,7 @@ - public void retrieveComplete(List resourceItemList, ResourceUser user) { + public void retrieveComplete(SortedSet resourceItemList, ResourceUser user) { for(ResourceItem item:resourceItemList){ ResourceItemVisitLog log = resourceItemVisitDao.getResourceItemLog(item.getUid(),user.getUserId()); if(log == null) Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ResourceItemComparator.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ResourceItemComparator.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ResourceItemComparator.java 6 Sep 2006 02:05:51 -0000 1.1 @@ -0,0 +1,22 @@ +package org.lamsfoundation.lams.tool.rsrc.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.tool.rsrc.model.ResourceItem; +/** + * + * @author steven + * + */ +public class ResourceItemComparator implements Comparator { + + public int compare(ResourceItem o1, ResourceItem o2) { + if(o1 != null && o2 != null & o1.getCreateDate() !=null && o2.getCreateDate() != null){ + return (o1.getCreateDate().getTime() - o2.getCreateDate().getTime()) > 0?1:-1; + }else if(o1 != null) + return 1; + else + return -1; + } + +} Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java,v diff -u -r1.37 -r1.38 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java 5 Sep 2006 05:25:30 -0000 1.37 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java 6 Sep 2006 02:05:50 -0000 1.38 @@ -35,6 +35,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -65,6 +67,7 @@ import org.lamsfoundation.lams.tool.rsrc.service.IResourceService; import org.lamsfoundation.lams.tool.rsrc.service.ResourceApplicationException; import org.lamsfoundation.lams.tool.rsrc.service.UploadResourceFileException; +import org.lamsfoundation.lams.tool.rsrc.util.ResourceItemComparator; import org.lamsfoundation.lams.tool.rsrc.util.ResourceWebUtils; import org.lamsfoundation.lams.tool.rsrc.web.form.ResourceForm; import org.lamsfoundation.lams.tool.rsrc.web.form.ResourceItemForm; @@ -201,8 +204,12 @@ int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX),-1); if(itemIdx != -1){ - List resourceList = getResourceItemList(sessionMap); - ResourceItem item = resourceList.remove(itemIdx); + SortedSet resourceList = getResourceItemList(sessionMap); + List rList = new ArrayList(resourceList); + ResourceItem item = rList.remove(itemIdx); + resourceList.clear(); + resourceList.addAll(rList); + //add to delList List delList = getDeletedResourceItemList(sessionMap); delList.add(item); } @@ -228,8 +235,9 @@ int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX),-1); ResourceItem item = null; if(itemIdx != -1){ - List resourceList = getResourceItemList(sessionMap); - item = resourceList.get(itemIdx); + SortedSet resourceList = getResourceItemList(sessionMap); + List rList = new ArrayList(resourceList); + item = rList.get(itemIdx); if(item != null){ populateItemToForm(itemIdx, item,(ResourceItemForm) form,request); } @@ -270,7 +278,7 @@ * @throws ServletException */ private ActionForward saveOrUpdateItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) - throws ServletException { + throws Exception { //get instructions: List instructionList = getInstructionsFromRequest(request); @@ -285,14 +293,9 @@ try { extractFormToResourceItem(request, instructionList, itemForm); - } catch (UploadResourceFileException e) { + } catch (Exception e) { log.error("Uploading failed. The exception is " + e.toString()); - errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ResourceConstants.ERROR_MSG_UPLOAD_FAILED,e.getMessage())); - if(!errors.isEmpty()){ - this.addErrors(request,errors); - request.setAttribute(ResourceConstants.ATTR_INSTRUCTION_LIST,instructionList); - return findForward(itemForm.getItemType(),mapping); - } + throw e; } //set session map ID so that itemlist.jsp can get sessionMAP request.setAttribute(ResourceConstants.ATTR_SESSION_MAP_ID, itemForm.getSessionMapID()); @@ -403,7 +406,7 @@ items = new ArrayList(); //init resource item list - List resourceItemList = getResourceItemList(sessionMap); + SortedSet resourceItemList = getResourceItemList(sessionMap); resourceItemList.clear(); resourceItemList.addAll(items); @@ -550,14 +553,13 @@ //************************* Handle resource items ******************* //Handle resource items Set itemList = new LinkedHashSet(); - List topics = getResourceItemList(sessionMap); + SortedSet topics = getResourceItemList(sessionMap); iter = topics.iterator(); while(iter.hasNext()){ ResourceItem item = (ResourceItem) iter.next(); if(item != null){ //This flushs user UID info to message if this user is a new user. item.setCreateBy(resourceUser); - item.setCreateDate(new Timestamp(new Date().getTime())); itemList.add(item); } } @@ -765,8 +767,13 @@ * @param request * @return */ - private List getResourceItemList(SessionMap sessionMap) { - return getListFromSession(sessionMap,ResourceConstants.ATTR_RESOURCE_ITEM_LIST); + private SortedSet getResourceItemList(SessionMap sessionMap) { + SortedSet list = (SortedSet) sessionMap.get(ResourceConstants.ATTR_RESOURCE_ITEM_LIST); + if(list == null){ + list = new TreeSet(new ResourceItemComparator()); + sessionMap.put(ResourceConstants.ATTR_RESOURCE_ITEM_LIST,list); + } + return list; } /** * List save deleted resource items, which could be persisted or non-persisted items. @@ -907,24 +914,26 @@ * @throws ResourceApplicationException */ private void extractFormToResourceItem(HttpServletRequest request, List instructionList, ResourceItemForm itemForm) - throws UploadResourceFileException { + throws Exception { /* BE CAREFUL: This method will copy nessary info from request form to a old or new ResourceItem instance. * It gets all info EXCEPT ResourceItem.createDate and ResourceItem.createBy, which need be set when persisting * this resource item. */ SessionMap sessionMap = (SessionMap)request.getSession().getAttribute(itemForm.getSessionMapID()); //check whether it is "edit(old item)" or "add(new item)" - List resourceList = getResourceItemList(sessionMap); + SortedSet resourceList = getResourceItemList(sessionMap); int itemIdx = NumberUtils.stringToInt(itemForm.getItemIndex(),-1); - ResourceItem item; + ResourceItem item = null; if(itemIdx == -1){ //add item = new ResourceItem(); + item.setCreateDate(new Timestamp(new Date().getTime())); resourceList.add(item); - }else //edit - item = (ResourceItem) resourceList.get(itemIdx); - + }else{ //edit + List rList = new ArrayList(resourceList); + item = rList.get(itemIdx); + } short type = itemForm.getItemType(); item.setType(itemForm.getItemType()); /* Set following fields regards to the type: @@ -1015,8 +1024,8 @@ } // if(itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_WEBSITE // ||itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT){ - if(StringUtils.isBlank(itemForm.getDescription())) - errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ResourceConstants.ERROR_MSG_DESC_BLANK)); +// if(StringUtils.isBlank(itemForm.getDescription())) +// errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ResourceConstants.ERROR_MSG_DESC_BLANK)); // } if(itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_WEBSITE ||itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java,v diff -u -r1.20 -r1.21 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java 1 Sep 2006 06:30:16 -0000 1.20 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java 6 Sep 2006 02:05:50 -0000 1.21 @@ -31,6 +31,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -56,6 +58,7 @@ import org.lamsfoundation.lams.tool.rsrc.service.IResourceService; import org.lamsfoundation.lams.tool.rsrc.service.ResourceApplicationException; import org.lamsfoundation.lams.tool.rsrc.service.UploadResourceFileException; +import org.lamsfoundation.lams.tool.rsrc.util.ResourceItemComparator; import org.lamsfoundation.lams.tool.rsrc.web.form.ReflectionForm; import org.lamsfoundation.lams.tool.rsrc.web.form.ResourceItemForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -204,7 +207,7 @@ sessionMap.put(ResourceConstants.PARAM_RUN_OFFLINE, false); //init resource item list - List resourceItemList = getResourceItemList(sessionMap); + SortedSet resourceItemList = getResourceItemList(sessionMap); resourceItemList.clear(); if(items != null){ //remove hidden items. @@ -358,7 +361,7 @@ service.saveOrUpdateResourceSession(resSession); //update session value - List resourceItemList = getResourceItemList(sessionMap); + SortedSet resourceItemList = getResourceItemList(sessionMap); resourceItemList.add(item); //URL or file upload @@ -453,8 +456,13 @@ * @param request * @return */ - private List getResourceItemList(SessionMap sessionMap) { - return getListFromSession(sessionMap,ResourceConstants.ATTR_RESOURCE_ITEM_LIST); + private SortedSet getResourceItemList(SessionMap sessionMap) { + SortedSet list = (SortedSet) sessionMap.get(ResourceConstants.ATTR_RESOURCE_ITEM_LIST); + if(list == null){ + list = new TreeSet(new ResourceItemComparator()); + sessionMap.put(ResourceConstants.ATTR_RESOURCE_ITEM_LIST,list); + } + return list; } /** * Get java.util.List from HttpSession by given name. @@ -566,7 +574,7 @@ service.setItemComplete(resourceItemUid,new Long(user.getUserID().intValue()),sessionId); //set resource item complete tag - List resourceItemList = getResourceItemList(sessionMap); + SortedSet resourceItemList = getResourceItemList(sessionMap); for(ResourceItem item:resourceItemList){ if(item.getUid().equals(resourceItemUid)){ item.setComplete(true); Index: lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp,v diff -u -r1.12 -r1.13 --- lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp 25 Aug 2006 02:41:04 -0000 1.12 +++ lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp 6 Sep 2006 02:05:50 -0000 1.13 @@ -60,6 +60,7 @@ + <%-- Remove description in as LDEV-617 @@ -68,6 +69,7 @@ + --%> Index: lams_tool_larsrc/web/pages/authoring/parts/addlearningobject.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/authoring/parts/addlearningobject.jsp,v diff -u -r1.9 -r1.10 --- lams_tool_larsrc/web/pages/authoring/parts/addlearningobject.jsp 25 Aug 2006 02:41:04 -0000 1.9 +++ lams_tool_larsrc/web/pages/authoring/parts/addlearningobject.jsp 6 Sep 2006 02:05:50 -0000 1.10 @@ -60,6 +60,7 @@ + <%-- Remove description in as LDEV-617 @@ -68,6 +69,7 @@ + --%> Index: lams_tool_larsrc/web/pages/authoring/parts/addurl.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/authoring/parts/addurl.jsp,v diff -u -r1.15 -r1.16 --- lams_tool_larsrc/web/pages/authoring/parts/addurl.jsp 25 Aug 2006 02:41:04 -0000 1.15 +++ lams_tool_larsrc/web/pages/authoring/parts/addurl.jsp 6 Sep 2006 02:05:50 -0000 1.16 @@ -58,6 +58,7 @@ + <%-- Remove description in as LDEV-617 @@ -66,6 +67,7 @@ + --%> Index: lams_tool_larsrc/web/pages/authoring/parts/addwebsite.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/authoring/parts/addwebsite.jsp,v diff -u -r1.9 -r1.10 --- lams_tool_larsrc/web/pages/authoring/parts/addwebsite.jsp 25 Aug 2006 02:41:04 -0000 1.9 +++ lams_tool_larsrc/web/pages/authoring/parts/addwebsite.jsp 6 Sep 2006 02:05:50 -0000 1.10 @@ -60,6 +60,7 @@ + <%-- Remove description in as LDEV-617 @@ -68,6 +69,7 @@ + --%> 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.14 -r1.15 --- lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp 31 Aug 2006 06:39:02 -0000 1.14 +++ lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp 6 Sep 2006 02:05:50 -0000 1.15 @@ -19,12 +19,11 @@ //learner and author(preview mode) will mark the finish if(${mode == "learner"} || ${mode == "author"}){ var reqIDVar = new Date(); - //if auto run mode, the opener will be null. - if(window.parent.opener != null) - window.parent.opener.location.href="?sessionMapID=${sessionMapID}&mode=${mode}&itemUid=${param.itemUid}&reqID="+reqIDVar.getTime(); - else{ + if(${sessionMap.runAuto}){ //set complete flag and finish this activity as well. window.parent.location.href=''; + }else{ + window.parent.opener.location.href="?sessionMapID=${sessionMapID}&mode=${mode}&itemUid=${param.itemUid}&reqID="+reqIDVar.getTime(); } } if(window.parent.opener != null) { 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.7 -r1.8 --- lams_tool_larsrc/web/pages/itemreview/mainframe.jsp 28 Aug 2006 04:11:31 -0000 1.7 +++ lams_tool_larsrc/web/pages/itemreview/mainframe.jsp 6 Sep 2006 02:05:50 -0000 1.8 @@ -21,6 +21,6 @@ <%@ include file="/common/taglibs.jsp" %> ?mode=${mode}&itemIndex=${itemIndex}&itemUid=${itemUid}&toolSessionID=${toolSessionID}&sessionMapID=${sessionMapID}" - name=headerFrame" marginheight="0" scrolling="NO"> + name=headerFrame" marginheight="0" scrolling="YES">