Index: lams_tool_forum/conf/xdoclet/filter-mappings.xml =================================================================== diff -u -r9401077810a09c0dc2a77ff8bce04b1efeb25353 -rde672e5125377cd876df4bf2e9e624ffcfac30a4 --- lams_tool_forum/conf/xdoclet/filter-mappings.xml (.../filter-mappings.xml) (revision 9401077810a09c0dc2a77ff8bce04b1efeb25353) +++ lams_tool_forum/conf/xdoclet/filter-mappings.xml (.../filter-mappings.xml) (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -1,6 +1,6 @@ hibernateFilter - *.do + /* SystemSessionFilter Index: lams_tool_forum/conf/xdoclet/servlet-mappings.xml =================================================================== diff -u -rfd1d19665518ba6781ce9e3851889c077e8efff4 -rde672e5125377cd876df4bf2e9e624ffcfac30a4 --- lams_tool_forum/conf/xdoclet/servlet-mappings.xml (.../servlet-mappings.xml) (revision fd1d19665518ba6781ce9e3851889c077e8efff4) +++ lams_tool_forum/conf/xdoclet/servlet-mappings.xml (.../servlet-mappings.xml) (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -13,3 +13,9 @@ download /download/* + + + exportPortfolio + /exportPortfolio + + \ No newline at end of file Index: lams_tool_forum/conf/xdoclet/servlets.xml =================================================================== diff -u -r1d178e94bec7d2c17be92d2ae7690135deb2ff54 -rde672e5125377cd876df4bf2e9e624ffcfac30a4 --- lams_tool_forum/conf/xdoclet/servlets.xml (.../servlets.xml) (revision 1d178e94bec7d2c17be92d2ae7690135deb2ff54) +++ lams_tool_forum/conf/xdoclet/servlets.xml (.../servlets.xml) (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -5,6 +5,11 @@ + exportPortfolio + org.lamsfoundation.lams.tool.forum.web.actions.ExportServlet + + + action org.apache.struts.action.ActionServlet Index: lams_tool_forum/db/sql/tool_insert.sql =================================================================== diff -u -r62402371ee899b9b20c61c988149efbec1cc00bd -rde672e5125377cd876df4bf2e9e624ffcfac30a4 --- lams_tool_forum/db/sql/tool_insert.sql (.../tool_insert.sql) (revision 62402371ee899b9b20c61c988149efbec1cc00bd) +++ lams_tool_forum/db/sql/tool_insert.sql (.../tool_insert.sql) (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -47,7 +47,7 @@ 'tool/lafrum11/authoring/init.do', 'tool/lafrum11/monitoring/listContentUsers.do', 'tool/lafrum11/definelater.do', -'tool/lafrum11/export.do', +'tool/lafrum11/exportPortfolio', 'tool/lafrum11/contribute.do', 'tool/lafrum11/moderate.do', NOW() Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/ExportServlet.java =================================================================== diff -u --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/ExportServlet.java (revision 0) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/ExportServlet.java (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -0,0 +1,148 @@ +/* + *Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * + *This program is free software; you can redistribute it and/or modify + *it under the terms of the GNU General Public License as published by + *the Free Software Foundation; either version 2 of the License, or + *(at your option) any later version. + * + *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 + */ +package org.lamsfoundation.lams.tool.forum.web.actions; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.forum.dto.MessageDTO; +import org.lamsfoundation.lams.tool.forum.persistence.Forum; +import org.lamsfoundation.lams.tool.forum.persistence.ForumException; +import org.lamsfoundation.lams.tool.forum.persistence.ForumToolSession; +import org.lamsfoundation.lams.tool.forum.persistence.ForumUser; +import org.lamsfoundation.lams.tool.forum.service.ForumServiceProxy; +import org.lamsfoundation.lams.tool.forum.service.IForumService; +import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; + +public class ExportServlet extends AbstractExportPortfolioServlet { + private static final long serialVersionUID = -4529093489007108143L; + private static Logger logger = Logger.getLogger(ExportServlet.class); + private final String FILENAME = "forum_main.html"; + + + public String doExport(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) + { + if (StringUtils.equals(mode,ToolAccessMode.LEARNER.toString())){ + learner(request,response,directoryName,cookies); + }else if (StringUtils.equals(mode,ToolAccessMode.TEACHER.toString())){ + teacher(request,response,directoryName,cookies); + } + + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath(); + writeResponseToFile(basePath+"/jsps/export/exportportfolio.jsp",directoryName,FILENAME,cookies); + + return FILENAME; + } + public void learner(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) + { + + IForumService forumService = ForumServiceProxy.getForumService(getServletContext()); + + if (userID == null || toolSessionID == null) + { + String error = "Tool session Id or user Id is null. Unable to continue"; + logger.error(error); + throw new ForumException(error); + } + + ForumUser learner = forumService.getUserByUserAndSession(userID,toolSessionID); + + if (learner == null) + { + String error="The user with user id " + userID + " does not exist in this session or session may not exist."; + logger.error(error); + throw new ForumException(error); + } + + Forum content = forumService.getForumByContentId(toolSessionID); + + if (content == null) + { + String error="The content for this activity has not been defined yet."; + logger.error(error); + throw new ForumException(error); + } + List topicList = forumService.getAllTopicsFromSession(toolSessionID); + Map topicsByUser = getTopicsSortedByAuthor(topicList); + request.getSession().setAttribute("report",topicsByUser); + } + + public void teacher(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) + { + IForumService forumService = ForumServiceProxy.getForumService(getServletContext()); + + //check if toolContentId exists in db or not + if (toolContentID==null) + { + String error="Tool Content Id is missing. Unable to continue"; + logger.error(error); + throw new ForumException(error); + } + + Forum content = forumService.getForumByContentId(toolContentID); + + if (content == null) + { + String error="Data is missing from the database. Unable to Continue"; + logger.error(error); + throw new ForumException(error); + } + //return FileDetailsDTO list according to the given sessionID + List sessionList = forumService.getSessionsByContentId(toolContentID); + Iterator iter = sessionList.iterator(); + Map topicsByUser = new HashMap(); + while(iter.hasNext()){ + ForumToolSession session = (ForumToolSession) iter.next(); + List topicList = forumService.getAllTopicsFromSession(session.getSessionId()); + topicsByUser.putAll(getTopicsSortedByAuthor(topicList)); + } + request.getSession().setAttribute("report",topicsByUser); + } + /** + * @param topicList + * @return + */ + private Map getTopicsSortedByAuthor(List topicList) { + Map topicsByUser = new HashMap(); + Iterator iter = topicList.iterator(); + while(iter.hasNext()){ + MessageDTO dto = (MessageDTO) iter.next(); + dto.getMessage().getReport(); + List list = (List) topicsByUser.get(dto.getMessage().getCreatedBy()); + if(list == null){ + list = new ArrayList(); + topicsByUser.put(dto.getMessage().getCreatedBy(),list); + } + list.add(dto); + } + return topicsByUser; + } +} Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java =================================================================== diff -u -r1ef94892cf45b63377deb39499047080a4cf2d8c -rde672e5125377cd876df4bf2e9e624ffcfac30a4 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision 1ef94892cf45b63377deb39499047080a4cf2d8c) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -47,6 +47,7 @@ */ public class LearningAction extends Action { private static Logger log = Logger.getLogger(LearningAction.class); + private static final boolean MODE_OPTIONAL = false; private IForumService forumService; @@ -98,6 +99,10 @@ */ private ActionForward viewForm(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + //set the mode into http session + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE,MODE_OPTIONAL); + request.getSession().setAttribute(AttributeNames.ATTR_MODE, mode); + //get sessionId from HttpServletRequest String sessionIdStr = request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); Long sessionId; Index: lams_tool_forum/web/WEB-INF/web.xml =================================================================== diff -u -r62402371ee899b9b20c61c988149efbec1cc00bd -rde672e5125377cd876df4bf2e9e624ffcfac30a4 --- lams_tool_forum/web/WEB-INF/web.xml (.../web.xml) (revision 62402371ee899b9b20c61c988149efbec1cc00bd) +++ lams_tool_forum/web/WEB-INF/web.xml (.../web.xml) (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -49,7 +49,7 @@ hibernateFilter - *.do + /* SystemSessionFilter @@ -69,6 +69,11 @@ + exportPortfolio + org.lamsfoundation.lams.tool.forum.web.actions.ExportServlet + + + action org.apache.struts.action.ActionServlet @@ -132,6 +137,11 @@ /download/* + + exportPortfolio + /exportPortfolio + + 120 Index: lams_tool_forum/web/jsps/export/exportportfolio.jsp =================================================================== diff -u --- lams_tool_forum/web/jsps/export/exportportfolio.jsp (revision 0) +++ lams_tool_forum/web/jsps/export/exportportfolio.jsp (revision de672e5125377cd876df4bf2e9e624ffcfac30a4) @@ -0,0 +1,86 @@ +<%@ include file="/includes/taglibs.jsp" %> + + + + Learner Topics Details + + + css/aqua.css" rel="stylesheet" type="text/css"> + + + + + + + + + + + + + + + , + , + provides following submisstion: + + + + + + + + + + + + + + + "> + + + + + + + + + + + + + + + + Marks: + + + + + + + + + + + + + Comments: + + + + + + + + + + + + + + + + + \ No newline at end of file
+ + + + + , + , + provides following submisstion: + + + + + + + + + + + + + + + "> + + + + + + + + + + + + + + + + Marks: + + + + + + + + + + + + + Comments: + + + + + + + + + + + +