Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java =================================================================== diff -u -rcc9e4f5a2ded59de3f23baa5dda20c7867df1888 -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java (.../Summary.java) (revision cc9e4f5a2ded59de3f23baa5dda20c7867df1888) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java (.../Summary.java) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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 =================================================================== diff -u -red04e2e75728d635ec5c4530bcebe69ab32d9cdb -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision ed04e2e75728d635ec5c4530bcebe69ab32d9cdb) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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 =================================================================== diff -u -red04e2e75728d635ec5c4530bcebe69ab32d9cdb -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision ed04e2e75728d635ec5c4530bcebe69ab32d9cdb) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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 =================================================================== diff -u --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ResourceItemComparator.java (revision 0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/util/ResourceItemComparator.java (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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 =================================================================== diff -u -r02dcebfc481a4470cf16ba4a5e70a51ea7237f8d -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 02dcebfc481a4470cf16ba4a5e70a51ea7237f8d) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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 =================================================================== diff -u -ra7d51ba479a52349dec28c1442be6542157ad36d -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (.../LearningAction.java) (revision a7d51ba479a52349dec28c1442be6542157ad36d) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (.../LearningAction.java) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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 =================================================================== diff -u -rc25a2c783e51d05045d1fb61981c169357cd3e98 -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp (.../addfile.jsp) (revision c25a2c783e51d05045d1fb61981c169357cd3e98) +++ lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp (.../addfile.jsp) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -60,6 +60,7 @@ + <%-- Remove description in as LDEV-617 @@ -68,6 +69,7 @@ + --%> Index: lams_tool_larsrc/web/pages/authoring/parts/addlearningobject.jsp =================================================================== diff -u -rc25a2c783e51d05045d1fb61981c169357cd3e98 -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/web/pages/authoring/parts/addlearningobject.jsp (.../addlearningobject.jsp) (revision c25a2c783e51d05045d1fb61981c169357cd3e98) +++ lams_tool_larsrc/web/pages/authoring/parts/addlearningobject.jsp (.../addlearningobject.jsp) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -60,6 +60,7 @@ + <%-- Remove description in as LDEV-617 @@ -68,6 +69,7 @@ + --%> Index: lams_tool_larsrc/web/pages/authoring/parts/addurl.jsp =================================================================== diff -u -rc25a2c783e51d05045d1fb61981c169357cd3e98 -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/web/pages/authoring/parts/addurl.jsp (.../addurl.jsp) (revision c25a2c783e51d05045d1fb61981c169357cd3e98) +++ lams_tool_larsrc/web/pages/authoring/parts/addurl.jsp (.../addurl.jsp) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -58,6 +58,7 @@ + <%-- Remove description in as LDEV-617 @@ -66,6 +67,7 @@ + --%> Index: lams_tool_larsrc/web/pages/authoring/parts/addwebsite.jsp =================================================================== diff -u -rc25a2c783e51d05045d1fb61981c169357cd3e98 -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/web/pages/authoring/parts/addwebsite.jsp (.../addwebsite.jsp) (revision c25a2c783e51d05045d1fb61981c169357cd3e98) +++ lams_tool_larsrc/web/pages/authoring/parts/addwebsite.jsp (.../addwebsite.jsp) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -60,6 +60,7 @@ + <%-- Remove description in as LDEV-617 @@ -68,6 +69,7 @@ + --%> Index: lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp =================================================================== diff -u -red04e2e75728d635ec5c4530bcebe69ab32d9cdb -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp (.../instructionsnav.jsp) (revision ed04e2e75728d635ec5c4530bcebe69ab32d9cdb) +++ lams_tool_larsrc/web/pages/itemreview/instructionsnav.jsp (.../instructionsnav.jsp) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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 =================================================================== diff -u -rdbea7168e28392b806b1f6f607b7bcdbb647597a -r9cd6be516aa221a17b218c27819ed892cd60e35f --- lams_tool_larsrc/web/pages/itemreview/mainframe.jsp (.../mainframe.jsp) (revision dbea7168e28392b806b1f6f607b7bcdbb647597a) +++ lams_tool_larsrc/web/pages/itemreview/mainframe.jsp (.../mainframe.jsp) (revision 9cd6be516aa221a17b218c27819ed892cd60e35f) @@ -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">