Index: lams_tool_larsrc/conf/language/ApplicationResources.properties =================================================================== diff -u -r318b6abe8422efe8b6bac112c6dc0fd15ba13873 -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 318b6abe8422efe8b6bac112c6dc0fd15ba13873) +++ lams_tool_larsrc/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -100,7 +100,15 @@ msg.no.instruction=No instruction avalialbe. #-------------------------END Authoring Labels END-----------------# #------------------------------Learner ----------------------------------# -label.learner.title=Shared Resource Learner +label.learning.title=Shared Resource Learning +label.learning.heading=Shared Resources +label.resoruce.to.review=Resources to view +label.learning.minmum.review=You must view at least {0} of the resources. +label.check.for.new=Check for new +label.suggest.new=Suggest a new +label.learning.new.file=New file details: +label.learning.new.url=New URL details: +label.learning.comment.or.instruction=Comment/Instruction #------------------------------End Learner ----------------------------------# #---------------------------------Monitoring ----------------------------------# @@ -138,6 +146,8 @@ label.download = Download label.view = View label.edit = Edit +label.finished=Finished +label.completed=Completed label.finish= Finish ##Buttons button.upload = Upload Index: lams_tool_larsrc/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r48fa73bb54a33a0c7301402462e445fb6664d736 -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 48fa73bb54a33a0c7301402462e445fb6664d736) +++ lams_tool_larsrc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -135,4 +135,21 @@ parameter="nextInstruction"> - \ No newline at end of file + + + + + + + + + + + \ No newline at end of file Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java =================================================================== diff -u -r621b9ac2ae89b213fd59faef1de6a66e6edb1efc -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java (.../ResourceConstants.java) (revision 621b9ac2ae89b213fd59faef1de6a66e6edb1efc) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java (.../ResourceConstants.java) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -39,12 +39,14 @@ //for parameters' name public static final String PARAM_TOOL_CONTENT_ID = "toolContentID"; + public static final String PARAM_TOOL_SESSION_ID = "toolSessionID"; public static final String PARAM_FILE_VERSION_ID = "fileVersionId"; public static final String PARAM_FILE_UUID = "fileUuid"; public static final String PARAM_ITEM_INDEX = "itemIndex"; //for request attribute name public static final String ATTR_TOOL_CONTENT_ID = "toolContentID"; + public static final String ATTR_TOOL_SESSION_ID = "toolSessionID"; public static final String ATTR_INSTRUCTION_LIST = "instructionList"; public static final String ATTR_RESOURCE_ITEM_LIST = "resourceList"; public static final String ATT_ATTACHMENT_LIST = "instructionAttachmentList"; @@ -53,6 +55,7 @@ public static final String ATTR_DELETED_RESOURCE_ITEM_ATTACHMENT_LIST = "deletedItemAttachmmentList";; public static final String ATT_LEARNING_OBJECT = "cpPackage"; public static final String ATTR_RESOURCE_REVIEW_URL = "resourceItemReviewUrl"; + public static final String ATTR_RESOURCE = "resource"; //error message keys public static final String ERROR_MSG_TITLE_BLANK = "error.resource.item.title.blank"; @@ -66,6 +69,7 @@ public static final String MODE = "mode"; public static final String AUTHOR_MODE = "author_mode"; public static final String MONITOR_MODE = "monitor_mode"; + } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceSessionDAO.java =================================================================== diff -u -r57a8fd80863308a6aae133850dbe2de4acd15abf -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceSessionDAO.java (.../ResourceSessionDAO.java) (revision 57a8fd80863308a6aae133850dbe2de4acd15abf) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceSessionDAO.java (.../ResourceSessionDAO.java) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -23,6 +23,10 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.rsrc.dao; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession; + public interface ResourceSessionDAO extends DAO { + ResourceSession getSessionBySessionId(Long sessionId); + } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java =================================================================== diff -u -r57a8fd80863308a6aae133850dbe2de4acd15abf -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java (.../ResourceSessionDAOHibernate.java) (revision 57a8fd80863308a6aae133850dbe2de4acd15abf) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java (.../ResourceSessionDAOHibernate.java) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -23,9 +23,20 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.rsrc.dao.hibernate; +import java.util.List; + import org.lamsfoundation.lams.tool.rsrc.dao.ResourceSessionDAO; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession; public class ResourceSessionDAOHibernate extends BaseDAOHibernate implements ResourceSessionDAO{ + + private static final String FIND_BY_SESSION_ID = "from " + ResourceSession.class.getName() + " as p where p.sessionId=?"; + public ResourceSession getSessionBySessionId(Long sessionId) { + List list = getHibernateTemplate().find(FIND_BY_SESSION_ID,sessionId); + if(list == null || list.size() == 0) + return null; + return (ResourceSession) list.get(0); + } } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java =================================================================== diff -u -r754e5e666cf510aff7f8f25527987cee00319ee2 -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java (.../Resource.java) (revision 754e5e666cf510aff7f8f25527987cee00319ee2) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/Resource.java (.../Resource.java) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -79,6 +79,8 @@ //*************** NON Persist Fields ******************** private IToolContentHandler toolContentHandler; + + private String minViewNumber; /** * Default contruction method. * @@ -461,6 +463,16 @@ public void setRunAuto(boolean runAuto) { this.runAuto = runAuto; } + /** + * For display use + * @return + */ + public String getMinViewNumber() { + return minViewNumber; + } + public void setMinViewNumber(String minViewNumber) { + this.minViewNumber = minViewNumber; + } } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItemVisitLog.hbm.xml =================================================================== diff -u --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItemVisitLog.hbm.xml (revision 0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItemVisitLog.hbm.xml (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItemVisitLog.java =================================================================== diff -u --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItemVisitLog.java (revision 0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/model/ResourceItemVisitLog.java (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,86 @@ +/**************************************************************** + * 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.model; + +import java.util.Date; +/** + * Resource + * @author Dapeng Ni + * + * @hibernate.class table="tl_larsrc11_resource_item_visit_log" + * + */ +public class ResourceItemVisitLog { + + private Long uid; + private ResourceUser user; + private ResourceItem resourceItem; + private Date accessDate; + /** + * @hibernate.property column="access_date" + * @return + */ + public Date getAccessDate() { + return accessDate; + } + public void setAccessDate(Date accessDate) { + this.accessDate = accessDate; + } + /** + * @hibernate.many-to-one column="resource_item_uid" + * cascade="none" + * @return + */ + public ResourceItem getResourceItem() { + return resourceItem; + } + public void setResourceItem(ResourceItem item) { + this.resourceItem = item; + } + + /** + * @hibernate.id generator-class="identity" type="java.lang.Long" column="uid" + * @return Returns the log Uid. + */ + public Long getUid() { + return uid; + } + public void setUid(Long uid) { + this.uid = uid; + } + /** + * @hibernate.many-to-one column="user_uid" + * cascade="none" + * @return + */ + public ResourceUser getUser() { + return user; + } + public void setUser(ResourceUser user) { + this.user = user; + } + + +} Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java =================================================================== diff -u -r80c80183c1497f0ba84e9ab1fa78a2fbb369ef65 -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 80c80183c1497f0ba84e9ab1fa78a2fbb369ef65) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -30,6 +30,7 @@ import org.lamsfoundation.lams.tool.rsrc.model.Resource; import org.lamsfoundation.lams.tool.rsrc.model.ResourceAttachment; import org.lamsfoundation.lams.tool.rsrc.model.ResourceItem; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession; import org.lamsfoundation.lams.tool.rsrc.model.ResourceUser; /** @@ -64,5 +65,17 @@ void deleteResourceAttachment(Long attachmentUid); void deleteResourceItem(Long uid); + + /** + * Return all reource items within the given toolSessionID. + * @param sessionId + * @return + */ + List getResourceItemsBySessionId(Long sessionId); + Resource getResourceBySessionId(Long sessionId); + + ResourceSession getResourceSessionBySessionId(Long sessionId); + + void saveOrUpdateResourceSession(ResourceSession resSession); } Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== diff -u -r80c80183c1497f0ba84e9ab1fa78a2fbb369ef65 -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 80c80183c1497f0ba84e9ab1fa78a2fbb369ef65) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -27,6 +27,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; @@ -58,6 +59,7 @@ import org.lamsfoundation.lams.tool.rsrc.model.Resource; import org.lamsfoundation.lams.tool.rsrc.model.ResourceAttachment; import org.lamsfoundation.lams.tool.rsrc.model.ResourceItem; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession; import org.lamsfoundation.lams.tool.rsrc.model.ResourceUser; import org.lamsfoundation.lams.tool.rsrc.util.ResourceToolContentHandler; import org.lamsfoundation.lams.tool.service.ILamsToolService; @@ -262,7 +264,41 @@ resourceItemDao.removeObject(ResourceItem.class,uid); } + public List getResourceItemsBySessionId(Long sessionId) { + ResourceSession session = resourceSessionDao.getSessionBySessionId(sessionId); + if(session == null){ + log.error("Failed get ResourceSession by ID [" +sessionId + "]"); + return null; + } + //add resource items from Authoring + Resource resource = session.getResource(); + List items = new ArrayList(); + items.addAll(resource.getResourceItems()); + + //add resource items from ResourceSession + items.addAll(session.getResourceItems()); + + return items; + } + public Resource getResourceBySessionId(Long sessionId){ + ResourceSession session = resourceSessionDao.getSessionBySessionId(sessionId); + //construct dto fields; + Resource res = session.getResource(); + res.setMinViewNumber(messageService.getMessage("label.learning.minmum.review" + ,new Object[new Integer(res.getMinViewResourceNumber())])); + return res; + } + public ResourceSession getResourceSessionBySessionId(Long sessionId) { + return resourceSessionDao.getSessionBySessionId(sessionId); + } + + + public void saveOrUpdateResourceSession(ResourceSession resSession) { + resourceSessionDao.saveObject(resSession); + } + + //***************************************************************************** // private methods //***************************************************************************** Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java =================================================================== diff -u --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (revision 0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,277 @@ +/**************************************************************** + * 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.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +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.StringUtils; +import org.apache.log4j.Logger; +import org.apache.struts.action.Action; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.lamsfoundation.lams.tool.rsrc.ResourceConstants; +import org.lamsfoundation.lams.tool.rsrc.model.Resource; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceItem; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceSession; +import org.lamsfoundation.lams.tool.rsrc.model.ResourceUser; +import org.lamsfoundation.lams.tool.rsrc.service.IResourceService; +import org.lamsfoundation.lams.tool.rsrc.service.UploadResourceFileException; +import org.lamsfoundation.lams.tool.rsrc.web.form.ResourceForm; +import org.lamsfoundation.lams.tool.rsrc.web.form.ResourceItemForm; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.WebUtil; +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; +/** + * + * @author Steve.Ni + * + * @version $Revision$ + */ +public class LearningAction extends Action { + + private static Logger log = Logger.getLogger(LearningAction.class); + + public ActionForward execute(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + + String param = mapping.getParameter(); + //-----------------------Resource Learner function --------------------------- + if(param.equals("start")){ + return start(mapping, form, request, response); + } + if (param.equals("saveOrUpdateItem")) { + return saveOrUpdateItem(mapping, form, request, response); + } + return mapping.findForward(ResourceConstants.ERROR); + } + /** + * Save file or url resource item into database. + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + private ActionForward saveOrUpdateItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + ResourceItemForm itemForm = (ResourceItemForm)form; + ActionErrors errors = validateResourceItem(itemForm); + + if(!errors.isEmpty()){ + this.addErrors(request,errors); + return findForward(itemForm.getItemType(),mapping); + } + short type = itemForm.getItemType(); + + //create a new ResourceItem + ResourceItem item = new ResourceItem(); + IResourceService service = getResourceService(); + //try to get form system session + HttpSession ss = SessionManager.getSession(); + //get back login user DTO + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + ResourceUser resourceUser = service.getUserByID(new Long(user.getUserID().intValue())); + if(resourceUser == null){ + resourceUser = new ResourceUser(user,null); + service.createUser(resourceUser); + } + item.setType(type); + item.setTitle(itemForm.getTitle()); + item.setDescription(itemForm.getDescription()); + item.setCreateDate(new Timestamp(new Date().getTime())); + item.setCreateByAuthor(false); + item.setCreateBy(resourceUser); + + //special attribute for URL or FILE + if(type == ResourceConstants.RESOURCE_TYPE_FILE){ + try { + service.uploadResourceItemFile(item, itemForm.getFile()); + } catch (UploadResourceFileException e) { + log.error("Failed upload Resource File " + e.toString()); + return mapping.findForward(ResourceConstants.ERROR); + } + }else if(type == ResourceConstants.RESOURCE_TYPE_URL){ + item.setUrl(itemForm.getUrl()); + } + //save and update session + Long sessionId = (Long) request.getSession().getAttribute(ResourceConstants.ATTR_TOOL_SESSION_ID); + ResourceSession resSession = service.getResourceSessionBySessionId(sessionId); + if(resSession == null){ + log.error("Failed update ResourceSession by ID[" + sessionId + "]"); + return mapping.findForward(ResourceConstants.ERROR); + } + Set items = resSession.getResourceItems(); + if(items == null){ + items = new HashSet(); + resSession.setResourceItems(items); + } + items.add(item); + service.saveOrUpdateResourceSession(resSession); + return mapping.findForward(ResourceConstants.SUCCESS); + } + /** + * Read resource data from database and put them into HttpSession. It will redirect to init.do directly after this + * method run successfully. + * + * This method will avoid read database again and lost un-saved resouce item lost when user "refresh page", + * + */ + private ActionForward start(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + //save toolContentID into HTTPSession + Long sessionId = new Long(request.getParameter(ResourceConstants.PARAM_TOOL_SESSION_ID)); + request.getSession().setAttribute(ResourceConstants.ATTR_TOOL_SESSION_ID,sessionId); + +// get back the resource and item list and display them on page + IResourceService service = getResourceService(); + + List items = null; + Resource resource; + try { + items = service.getResourceItemsBySessionId(sessionId); + resource = service.getResourceBySessionId(sessionId); + } catch (Exception e) { + log.error(e); + return mapping.findForward(ResourceConstants.ERROR); + } + //init resource item list + List resourceItemList = getResourceItemList(request); + resourceItemList.clear(); + if(items != null) + resourceItemList.addAll(items); + + request.setAttribute(ResourceConstants.ATTR_RESOURCE,resource); + return mapping.findForward(ResourceConstants.SUCCESS); + } + //************************************************************************************* + // Private method + //************************************************************************************* + private IResourceService getResourceService() { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + return (IResourceService) wac.getBean(ResourceConstants.RESOURCE_SERVICE); + } + /** + * 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; + } + /** + * Return ActionForward according to resource item type. + * @param type + * @param mapping + * @return + */ + private ActionForward findForward(short type, ActionMapping mapping) { + ActionForward forward; + switch (type) { + case ResourceConstants.RESOURCE_TYPE_URL: + forward = mapping.findForward("url"); + break; + case ResourceConstants.RESOURCE_TYPE_FILE: + forward = mapping.findForward("file"); + break; + case ResourceConstants.RESOURCE_TYPE_WEBSITE: + forward = mapping.findForward("website"); + break; + case ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT: + forward = mapping.findForward("learningobject"); + break; + default: + forward = null; + break; + } + return forward; + } + /** + * @param itemForm + * @return + */ + private ActionErrors validateResourceItem(ResourceItemForm itemForm) { + ActionErrors errors = new ActionErrors(); + if(StringUtils.isBlank(itemForm.getTitle())) + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ResourceConstants.ERROR_MSG_TITLE_BLANK)); + + if(itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_URL){ + if(StringUtils.isBlank(itemForm.getUrl())) + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ResourceConstants.ERROR_MSG_URL_BLANK)); + //URL validation: Commom URL validate(1.3.0) work not very well: it can not support http://address:port format!!! +// UrlValidator validator = new UrlValidator(); +// if(!validator.isValid(itemForm.getUrl())) +// errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ResourceConstants.ERROR_MSG_INVALID_URL)); + } +// 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(itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_WEBSITE + ||itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT + ||itemForm.getItemType() == ResourceConstants.RESOURCE_TYPE_FILE){ + //for edit validate: file already exist + if(!itemForm.isHasFile() && + (itemForm.getFile() == null || StringUtils.isEmpty(itemForm.getFile().getFileName()))) + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ResourceConstants.ERROR_MSG_FILE_BLANK)); + } + return errors; + } + + +} Index: lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp =================================================================== diff -u -r318b6abe8422efe8b6bac112c6dc0fd15ba13873 -r6b786496dac3e368e8a686373ac4e3cdee391c47 --- lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp (.../addfile.jsp) (revision 318b6abe8422efe8b6bac112c6dc0fd15ba13873) +++ lams_tool_larsrc/web/pages/authoring/parts/addfile.jsp (.../addfile.jsp) (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -12,7 +12,7 @@ - + Fisheye: Tag 6b786496dac3e368e8a686373ac4e3cdee391c47 refers to a dead (removed) revision in file `lams_tool_larsrc/web/pages/learner/learner.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_larsrc/web/pages/learning/addfile.jsp =================================================================== diff -u --- lams_tool_larsrc/web/pages/learning/addfile.jsp (revision 0) +++ lams_tool_larsrc/web/pages/learning/addfile.jsp (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,57 @@ +<%@ include file="/common/taglibs.jsp"%> + + + <%@ include file="/common/header.jsp"%> + + + +
+ + +
+ + + + +
+

+ +

+
+
+ + + + + + +
+ <%@ include file="/common/messages.jsp"%> + + + + + + + + + + + +
+
+ +
+
+ +
+ + + + " class="buttonStyle"> +
+
+
+
+ + Index: lams_tool_larsrc/web/pages/learning/addurl.jsp =================================================================== diff -u --- lams_tool_larsrc/web/pages/learning/addurl.jsp (revision 0) +++ lams_tool_larsrc/web/pages/learning/addurl.jsp (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,57 @@ +<%@ include file="/common/taglibs.jsp"%> + + + <%@ include file="/common/header.jsp"%> + + + + + + +
+ + + + +
+

+ +

+
+
+ + + + + + +
+ <%@ include file="/common/messages.jsp"%> + + + + + + + + + + + +
+
+ +
+
+ +
+ + + + " class="buttonStyle"> +
+
+
+
+ + Index: lams_tool_larsrc/web/pages/learning/learning.jsp =================================================================== diff -u --- lams_tool_larsrc/web/pages/learning/learning.jsp (revision 0) +++ lams_tool_larsrc/web/pages/learning/learning.jsp (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,81 @@ +<%@ include file="/common/taglibs.jsp"%> + + + <fmt:message key="label.learning.title" /> + <%@ include file="/common/header.jsp"%> + + + + + + + + + + + +
+

+ +

+
+ ${resource.instructions} +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+ +
+ +
+ + + + +
+ + | + +
+ +
+ Index: lams_tool_larsrc/web/pages/learning/learningframe.jsp =================================================================== diff -u --- lams_tool_larsrc/web/pages/learning/learningframe.jsp (revision 0) +++ lams_tool_larsrc/web/pages/learning/learningframe.jsp (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,8 @@ +<%@ include file="/common/taglibs.jsp" %> + + + " name="learningFrame" marginheight="0" scrolling="YES"> + " name="newResourceFrame" marginheight="0" scrolling="YES"> + + + \ No newline at end of file Index: lams_tool_larsrc/web/pages/learning/start.jsp =================================================================== diff -u --- lams_tool_larsrc/web/pages/learning/start.jsp (revision 0) +++ lams_tool_larsrc/web/pages/learning/start.jsp (revision 6b786496dac3e368e8a686373ac4e3cdee391c47) @@ -0,0 +1,12 @@ +<%@ include file="/common/taglibs.jsp" %> + + +
+ +
+ + + + \ No newline at end of file