Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/LearningAction.java =================================================================== diff -u -r397d1cb93863e4c87bb705dd22b8f579ffdbf42b -rff20896b171dd911f58f729fcb3e2ed1e9f53ed8 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/LearningAction.java (.../LearningAction.java) (revision 397d1cb93863e4c87bb705dd22b8f579ffdbf42b) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/LearningAction.java (.../LearningAction.java) (revision ff20896b171dd911f58f729fcb3e2ed1e9f53ed8) @@ -24,44 +24,48 @@ package org.lamsfoundation.lams.tool.chat.web.actions; +import java.io.IOException; + 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.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.lamsfoundation.lams.tool.ToolAccessMode; -import org.lamsfoundation.lams.tool.chat.dao.hibernate.ChatUserDAO; +import org.lamsfoundation.lams.tool.ToolSessionManager; import org.lamsfoundation.lams.tool.chat.model.ChatSession; import org.lamsfoundation.lams.tool.chat.model.ChatUser; import org.lamsfoundation.lams.tool.chat.service.ChatServiceProxy; import org.lamsfoundation.lams.tool.chat.service.IChatService; import org.lamsfoundation.lams.tool.chat.util.ChatConstants; import org.lamsfoundation.lams.tool.chat.util.ChatException; +import org.lamsfoundation.lams.tool.exception.DataMissingException; +import org.lamsfoundation.lams.tool.exception.ToolException; 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; /** * @author * @version * - * @struts.action path="/learning" + * @struts.action path="/learning" parameter="dispatch" * @struts.action-forward name="success" path="tiles:/learning/main" */ -public class LearningAction extends Action { +public class LearningAction extends LamsDispatchAction { private static Logger log = Logger.getLogger(LearningAction.class); private static final boolean MODE_OPTIONAL = false; private IChatService chatService; -public ActionForward execute(ActionMapping mapping, ActionForm form, +public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 'toolSessionID' and 'mode' paramters are expected to be present. @@ -97,6 +101,9 @@ request.setAttribute("CONFERENCEROOM", chatSession.getJabberRoom()); request.setAttribute("NICK", chatUser.getLoginName()); + request.setAttribute("chatTitle", chatSession.getChat().getTitle()); + request.setAttribute("chatInstructions", chatSession.getChat().getInstructions()); + return mapping.findForward("success"); } private ChatUser getCurrentUser(Long toolSessionId) { @@ -115,4 +122,32 @@ return chatUser; } + + public ActionForward finishActivity (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + + ToolSessionManager sessionMgrService = ChatServiceProxy + .getChatSessionManager(getServlet().getServletContext()); + + // get back login user DTO + // get session from shared session. + + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + Long userID = new Long(user.getUserID().longValue()); + + String nextActivityUrl; + try { + nextActivityUrl = sessionMgrService.leaveToolSession(new Long(1), + userID); + response.sendRedirect(nextActivityUrl); + } catch (DataMissingException e) { + throw new ChatException(e); + } catch (ToolException e) { + throw new ChatException(e); + } catch (IOException e) { + throw new ChatException(e); + } + + return null; // TODO need to return proper page. + } } Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/MonitoringAction.java =================================================================== diff -u -r7e567347ce87404a986c1f44e040feb623ac3f3d -rff20896b171dd911f58f729fcb3e2ed1e9f53ed8 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 7e567347ce87404a986c1f44e040feb623ac3f3d) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision ff20896b171dd911f58f729fcb3e2ed1e9f53ed8) @@ -144,6 +144,9 @@ request.setAttribute("CONFERENCEROOM", chatSession.getJabberRoom()); request.setAttribute("NICK", chatUser.getLoginName()); request.setAttribute("MODE", "teacher"); + + request.setAttribute("chatTitle", chatSession.getChat().getTitle()); + request.setAttribute("chatInstructions", chatSession.getChat().getInstructions()); return mapping.findForward("chat_client"); } Index: lams_tool_chat/web/WEB-INF/struts/tiles-defs.xml =================================================================== diff -u -rb12cb57275e44b7354b0ed0b68b9a179aa9d0576 -rff20896b171dd911f58f729fcb3e2ed1e9f53ed8 --- lams_tool_chat/web/WEB-INF/struts/tiles-defs.xml (.../tiles-defs.xml) (revision b12cb57275e44b7354b0ed0b68b9a179aa9d0576) +++ lams_tool_chat/web/WEB-INF/struts/tiles-defs.xml (.../tiles-defs.xml) (revision ff20896b171dd911f58f729fcb3e2ed1e9f53ed8) @@ -91,13 +91,13 @@ - + - + Index: lams_tool_chat/web/chat_client/chat_ui.jsp =================================================================== diff -u -rde8021aaecd7e02c31b9297045f028992d903c80 -rff20896b171dd911f58f729fcb3e2ed1e9f53ed8 --- lams_tool_chat/web/chat_client/chat_ui.jsp (.../chat_ui.jsp) (revision de8021aaecd7e02c31b9297045f028992d903c80) +++ lams_tool_chat/web/chat_client/chat_ui.jsp (.../chat_ui.jsp) (revision ff20896b171dd911f58f729fcb3e2ed1e9f53ed8) @@ -32,6 +32,10 @@