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 @@
-
-
-
-
-
-
-