Index: lams_tool_nb/.classpath =================================================================== diff -u -rf7ee8015c7b814fea6af3a86648cbfa3c4b2ed80 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/.classpath (.../.classpath) (revision f7ee8015c7b814fea6af3a86648cbfa3c4b2ed80) +++ lams_tool_nb/.classpath (.../.classpath) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -7,8 +7,8 @@ - + - + Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java (.../NoticeboardServicePOJO.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java (.../NoticeboardServicePOJO.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -914,11 +914,11 @@ } /** @see org.lamsfoundation.lams.tool.ToolSessionManager#leaveToolSession(java.lang.Long, org.lamsfoundation.lams.usermanagement.User)*/ - public String leaveToolSession(Long toolSessionId, User learner) throws DataMissingException, ToolException + public String leaveToolSession(Long toolSessionId, Long learnerId) throws DataMissingException, ToolException { getAndCheckSessionIDandObject(toolSessionId); - return learnerService.completeToolSession(toolSessionId, learner); + return learnerService.completeToolSession(toolSessionId, learnerId); } /** @see org.lamsfoundation.lams.tool.ToolSessionManager#exportToolSession(java.lang.Long)*/ Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/util/NbWebUtil.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/util/NbWebUtil.java (.../NbWebUtil.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/util/NbWebUtil.java (.../NbWebUtil.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -157,7 +157,7 @@ /** Setup the map containing the files that have been uploaded for this particular tool content id. - * If NoticeboardContent content exists, set nb=null and an empty list will be created. + * If NoticeboardContent content does not exist, set nb=null and an empty list will be created. * * @param nbService * @param attachmentMap Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbAuthoringAction.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbAuthoringAction.java (.../NbAuthoringAction.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbAuthoringAction.java (.../NbAuthoringAction.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -113,6 +113,21 @@ return toolContentHandler; } + /** Get the user from the shared session */ + public UserDTO getUser(HttpServletRequest request) { + // set up the user details + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + if ( user == null ) + { + MessageResources resources = getResources(request); + String error = resources.getMessage(NoticeboardConstants.ERR_MISSING_PARAM, "User"); + logger.error(error); + throw new NbApplicationException(error); + } + return user; + } + protected Map getKeyMethodMap() { Map map = new HashMap(); @@ -282,16 +297,7 @@ if ( nbContent.getDateCreated() == null ) nbContent.setDateCreated(nbContent.getDateUpdated()); - // set up the user details - HttpSession ss = SessionManager.getSession(); - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - if ( user == null ) - { - MessageResources resources = getResources(request); - String error = resources.getMessage(NoticeboardConstants.ERR_MISSING_PARAM, "User"); - logger.error(error); - throw new NbApplicationException(error); - } + UserDTO user = getUser(request); nbContent.setCreatorUserId(new Long(user.getUserID().longValue())); // Author has finished editing the content and mark the defineLater flag to false Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbAuthoringStarterAction.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbAuthoringStarterAction.java (.../NbAuthoringStarterAction.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbAuthoringStarterAction.java (.../NbAuthoringStarterAction.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -87,7 +87,7 @@ * path=".error" * handler="org.lamsfoundation.lams.tool.noticeboard.web.CustomStrutsExceptionHandler" * @struts:action-forward name="displayMessage" path=".message" - * @struts:action-forward name="authoringContent" path=".authoringContent" + * @struts:action-forward name="authoringContent" path="/author_page.jsp" * ----------------XDoclet Tags-------------------- */ public class NbAuthoringStarterAction extends LamsAction { Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerAction.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerAction.java (.../NbLearnerAction.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerAction.java (.../NbLearnerAction.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -35,12 +35,16 @@ import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + import org.lamsfoundation.lams.web.action.LamsLookupDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +import org.apache.struts.util.MessageResources; import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.noticeboard.NbApplicationException; @@ -50,6 +54,7 @@ import org.lamsfoundation.lams.tool.noticeboard.NoticeboardSession; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardUser; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.tool.noticeboard.util.NbWebUtil; import org.lamsfoundation.lams.tool.ToolAccessMode; @@ -89,6 +94,21 @@ return map; } + /** Get the user id from the shared session */ + public Long getUserID(HttpServletRequest request) { + // set up the user details + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + if ( user == null ) + { + MessageResources resources = getResources(request); + String error = resources.getMessage(NoticeboardConstants.ERR_MISSING_PARAM, "User"); + logger.error(error); + throw new NbApplicationException(error); + } + return new Long(user.getUserID().longValue()); + } + /** * Indicates that the user has finished viewing the noticeboard. * The session is set to complete and leaveToolSession is called. @@ -101,19 +121,20 @@ public ActionForward finish(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws NbApplicationException, ToolException, DataMissingException, ServletException, IOException { NbLearnerForm learnerForm = (NbLearnerForm)form; - Long toolSessionID = NbWebUtil.convertToLong(learnerForm.getToolSessionID()); - Long userID = NbWebUtil.convertToLong(learnerForm.getUserID()); + Long userID = getUserID(request); - if (toolSessionID == null || userID == null) + Long toolSessionID = NbWebUtil.convertToLong(learnerForm.getToolSessionID()); + if (toolSessionID == null) { - String error = "Unable to continue. The parameters tool session id or user id is missing"; + String error = "Unable to continue. The parameters tool session id is missing"; logger.error(error); throw new NbApplicationException(error); } + INoticeboardService nbService = NoticeboardServiceProxy.getNbService(getServlet().getServletContext()); ToolSessionManager sessionMgrService = NoticeboardServiceProxy.getNbSessionManager(getServlet().getServletContext()); - ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE,false); + ToolAccessMode mode = WebUtil.getToolAccessMode(learnerForm.getMode()); if (mode == ToolAccessMode.LEARNER) { NoticeboardSession nbSession = nbService.retrieveNoticeboardSession(toolSessionID); @@ -123,14 +144,6 @@ nbService.updateNoticeboardSession(nbSession); nbService.updateNoticeboardUser(nbUser); - //Notify the progress engine of the user's completion - /** - * TODO: Find out how to construct the User object that is passed to the method leaveToolSession() - * currently only the userId is set. There is no username or any other information - */ - User user = new User(); - user.setUserId(new Integer(learnerForm.getUserID().toString())); - /** * TODO: when this method is called, it throws a NullPointerException. * This is an error due to the learner service method completeToolSession(). @@ -143,7 +156,7 @@ String nextActivityUrl; try { - nextActivityUrl = sessionMgrService.leaveToolSession(NbWebUtil.convertToLong(learnerForm.getToolSessionID()), user); + nextActivityUrl = sessionMgrService.leaveToolSession(toolSessionID, getUserID(request)); } catch (DataMissingException e) { Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerForm.java =================================================================== diff -u -r85507766d15ce5b9b5eaeaef421dfa64b695da9d -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerForm.java (.../NbLearnerForm.java) (revision 85507766d15ce5b9b5eaeaef421dfa64b695da9d) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerForm.java (.../NbLearnerForm.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -42,37 +42,22 @@ public class NbLearnerForm extends ActionForm{ - static Logger logger = Logger.getLogger(NbLearnerForm.class.getName()); + private static final long serialVersionUID = -669035956406254875L; + + static Logger logger = Logger.getLogger(NbLearnerForm.class.getName()); private String title; private String content; - private String userID; - private String toolSessionID; - private String toolContentID; - private String method; private String mode; - /** - * @return Returns the toolContentID. - */ - public String getToolContentID() { - return toolContentID; - } - /** - * @param toolContentID The toolContentID to set. - */ - public void setToolContentID(String toolContentID) { - this.toolContentID = toolContentID; - } - /** * @return Returns the toolSessionID. */ public String getToolSessionID() { @@ -85,18 +70,6 @@ this.toolSessionID = toolSessionID; } /** - * @return Returns the userID. - */ - public String getUserID() { - return userID; - } - /** - * @param userID The userID to set. - */ - public void setUserID(String userId) { - this.userID = userId; - } - /** * @return Returns the content. */ public String getContent() { @@ -138,9 +111,7 @@ { this.content = null; this.title = null; - this.toolContentID = null; this.toolSessionID = null; - this.userID = null; this.method = null; this.mode = null; Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerStarterAction.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerStarterAction.java (.../NbLearnerStarterAction.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbLearnerStarterAction.java (.../NbLearnerStarterAction.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -32,13 +32,15 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; 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.apache.struts.util.MessageResources; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.noticeboard.NbApplicationException; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardConstants; @@ -47,8 +49,10 @@ import org.lamsfoundation.lams.tool.noticeboard.service.INoticeboardService; import org.lamsfoundation.lams.tool.noticeboard.service.NoticeboardServiceProxy; import org.lamsfoundation.lams.tool.noticeboard.util.NbWebUtil; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; /** * Creation Date: 27-06-05 @@ -83,7 +87,22 @@ public class NbLearnerStarterAction extends LamsDispatchAction { static Logger logger = Logger.getLogger(NbLearnerStarterAction.class.getName()); - + + /** Get the user id from the shared session */ + public Long getUserID(HttpServletRequest request) { + // set up the user details + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + if ( user == null ) + { + MessageResources resources = getResources(request); + String error = resources.getMessage(NoticeboardConstants.ERR_MISSING_PARAM, "User"); + logger.error(error); + throw new NbApplicationException(error); + } + return new Long(user.getUserID().longValue()); + } + public ActionForward unspecified( ActionMapping mapping, ActionForm form, @@ -106,18 +125,17 @@ ActionMessages message = new ActionMessages(); INoticeboardService nbService = NoticeboardServiceProxy.getNbService(getServlet().getServletContext()); - Long userId = NbWebUtil.convertToLong(learnerForm.getUserID()); - Long toolSessionId = NbWebUtil.convertToLong(learnerForm.getToolSessionID()); - // Long toolContentId = NbWebUtil.convertToLong(learnerForm.getToolContentId()); + Long userID = getUserID(request); + Long toolSessionID = NbWebUtil.convertToLong(learnerForm.getToolSessionID()); - if(userId == null || toolSessionId ==null) + if (toolSessionID == null) { - String error = "Unable to continue. The user ID or tool session ID"; - logger.error(error); - throw new NbApplicationException(error); + String error = "Unable to continue. The parameters tool session id is missing"; + logger.error(error); + throw new NbApplicationException(error); } - nbContent = nbService.retrieveNoticeboardBySessionID(toolSessionId); + nbContent = nbService.retrieveNoticeboardBySessionID(toolSessionID); // nbSession = nbService.retrieveNoticeboardSession(toolSessionId); @@ -128,7 +146,7 @@ throw new NbApplicationException(error); } - nbUser = nbService.retrieveNbUserBySession(userId, toolSessionId); + nbUser = nbService.retrieveNbUserBySession(userID, toolSessionID); /* * Checks to see if the defineLater or runOffline flag is set. @@ -157,8 +175,8 @@ else { //create a new user with this session id - NoticeboardUser newUser = new NoticeboardUser(userId); - nbService.addUser(toolSessionId, newUser); + NoticeboardUser newUser = new NoticeboardUser(userID); + nbService.addUser(toolSessionID, newUser); } @@ -176,7 +194,6 @@ /* will show a different screen if defineLater flag is set and running in preview mode */ NoticeboardContent nbContent = null; - NoticeboardUser nbUser = null; NbWebUtil.cleanLearnerSession(request); saveMessages(request, null); @@ -185,15 +202,8 @@ ActionMessages message = new ActionMessages(); INoticeboardService nbService = NoticeboardServiceProxy.getNbService(getServlet().getServletContext()); - Long userId = NbWebUtil.convertToLong(learnerForm.getUserID()); - Long toolSessionId = NbWebUtil.convertToLong(learnerForm.getToolSessionID()); - - if(userId == null || toolSessionId ==null) - { - String error = "Unable to continue. The user ID, tool session ID or tool contentID is missing."; - logger.error(error); - throw new NbApplicationException(error); - } + Long toolSessionId = new Long(WebUtil.checkLong(NoticeboardConstants.TOOL_SESSION_ID, + request.getParameter(NoticeboardConstants.TOOL_SESSION_ID))); nbContent = nbService.retrieveNoticeboardBySessionID(toolSessionId); @@ -204,8 +214,6 @@ throw new NbApplicationException(error); } - nbUser = nbService.retrieveNbUserBySession(userId, toolSessionId); - if (displayMessageToAuthor(nbContent, message)) { saveMessages(request, message); Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbMonitoringAction.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbMonitoringAction.java (.../NbMonitoringAction.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/NbMonitoringAction.java (.../NbMonitoringAction.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -170,7 +170,7 @@ request.setAttribute(NoticeboardConstants.ONLINE_INSTRUCTIONS, content.getOnlineInstructions()); - List attachmentList = (List) request.getSession().getAttribute(NoticeboardConstants.ATTACHMENT_LIST); + List attachmentList = NbWebUtil.setupAttachmentList(nbService, null, content); NbWebUtil.setupAttachmentList(nbService, attachmentList, content); NbWebUtil.addUploadsToSession(request, attachmentList, null); Index: lams_tool_nb/test/java/org/lamsfoundation/lams/tool/noticeboard/service/TestNoticeboardServicePOJO.java =================================================================== diff -u -rd789031b1ec349fa6315006cff40f1abc607b932 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/test/java/org/lamsfoundation/lams/tool/noticeboard/service/TestNoticeboardServicePOJO.java (.../TestNoticeboardServicePOJO.java) (revision d789031b1ec349fa6315006cff40f1abc607b932) +++ lams_tool_nb/test/java/org/lamsfoundation/lams/tool/noticeboard/service/TestNoticeboardServicePOJO.java (.../TestNoticeboardServicePOJO.java) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -506,7 +506,7 @@ file.setOnlineFile(isOnline); file.setUuid(uuid); - nbService.saveAttachment(file); + nbService.saveAttachment(nbContent, file); } @@ -515,26 +515,14 @@ initNbAttachmentData(); attachment = nbService.retrieveAttachmentByUuid(TEST_UUID); - nbService.removeAttachment(attachment); + nbService.removeAttachment(nbService.retrieveNoticeboard(TEST_NB_ID), attachment); attachment = nbService.retrieveAttachmentByUuid(TEST_UUID); assertNull(attachment); } - public void testRemoveAttachmentByUuid() - { - initNbAttachmentData(); - - nbService.removeAttachmentByUuid(TEST_UUID); - - attachment = nbService.retrieveAttachmentByUuid(TEST_UUID); - - assertNull(attachment); - - } - /*public void testGetToolDefaultContentIdBySignature() { Long defaultToolContentId = nbService.getToolDefaultContentIdBySignature(NoticeboardConstants.TOOL_SIGNATURE); Index: lams_tool_nb/web/WEB-INF/struts-config.xml =================================================================== diff -u -rf7ee8015c7b814fea6af3a86648cbfa3c4b2ed80 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision f7ee8015c7b814fea6af3a86648cbfa3c4b2ed80) +++ lams_tool_nb/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -106,7 +106,7 @@ /> Index: lams_tool_nb/web/WEB-INF/tiles/tiles-defs.xml =================================================================== diff -u -r5840e1bdcd6c972611594e8d493ee9f32dd7ea59 -r74804514d697b22ea2afdb8d1daf1c3b7797e793 --- lams_tool_nb/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 5840e1bdcd6c972611594e8d493ee9f32dd7ea59) +++ lams_tool_nb/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 74804514d697b22ea2afdb8d1daf1c3b7797e793) @@ -1,9 +1,5 @@ - - @@ -28,13 +24,6 @@ - - - - - - -