Index: lams_tool_forum/conf/xdoclet/struts-actions.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/conf/xdoclet/struts-actions.xml,v diff -u -r1.20 -r1.21 --- lams_tool_forum/conf/xdoclet/struts-actions.xml 24 Nov 2005 03:40:59 -0000 1.20 +++ lams_tool_forum/conf/xdoclet/struts-actions.xml 24 Nov 2005 06:25:24 -0000 1.21 @@ -219,6 +219,7 @@ - + @@ -303,6 +304,11 @@ + + + errors.footer= Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java,v diff -u -r1.5 -r1.6 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 24 Nov 2005 03:40:59 -0000 1.5 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 24 Nov 2005 06:25:24 -0000 1.6 @@ -20,6 +20,10 @@ */ package org.lamsfoundation.lams.tool.forum.web.actions; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.text.DateFormat; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -29,8 +33,12 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; -import org.apache.poi.util.StringUtil; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.struts.action.Action; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; @@ -102,10 +110,14 @@ if (param.equals("statistic")) { return statistic(mapping,form, request, response); } - + //***************** Miscellaneous ******************** + if (param.equals("viewTopic")) { + return viewTopic(mapping,form, request, response); + } return mapping.findForward("error"); } + private ActionForward listContentUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { //get content ID from URL @@ -130,23 +142,135 @@ private ActionForward viewAllMarks(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + + Long sessionID =new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_SESSION_ID)); + forumService = getForumService(); + List topicList = forumService.getRootTopics(sessionID); - + Map topicsByUser = getTopicsSortedByAuthor(topicList); + request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID,sessionID); + request.setAttribute("report",topicsByUser); return mapping.findForward("success"); } + private ActionForward releaseMarks(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + + Long sessionID =new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_SESSION_ID)); + //get service then update report table + forumService = getForumService(); + forumService.releaseMarksForSession(sessionID); return mapping.findForward("success"); } private ActionForward downloadMarks(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + Long sessionID =new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_SESSION_ID)); + forumService = getForumService(); + List topicList = forumService.getRootTopics(sessionID); + //construct Excel file format and download + ActionMessages errors = new ActionMessages(); + try { + //create an empty excel file + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sheet = wb.createSheet("Marks"); + sheet.setColumnWidth((short)0,(short)5000); + HSSFRow row,row1=null,row2=null,row3=null,row4=null,row5=null; + HSSFCell cell; + Iterator iter = getTopicsSortedByAuthor(topicList).values().iterator(); + Iterator dtoIter; + boolean first = true; + int idx = 0; + int fileCount = 0; + while(iter.hasNext()){ + List list = (List) iter.next(); + dtoIter = list.iterator(); + first = true; + + while(dtoIter.hasNext()){ + MessageDTO dto = (MessageDTO) dtoIter.next(); + if(first){ + first = false; + row1 = sheet.createRow(0); + cell = row1.createCell((short) idx); + cell.setCellValue("Subject"); + sheet.setColumnWidth((short)idx,(short)8000); + ++idx; + + cell = row1.createCell((short) idx); + cell.setCellValue("Author"); + sheet.setColumnWidth((short)idx,(short)8000); + ++idx; + + cell = row1.createCell((short) idx); + cell.setCellValue("Date"); + sheet.setColumnWidth((short)idx,(short)8000); + ++idx; + + cell = row1.createCell((short) idx); + cell.setCellValue("Marks"); + sheet.setColumnWidth((short)idx,(short)8000); + ++idx; + + cell = row1.createCell((short) idx); + cell.setCellValue("Comments"); + sheet.setColumnWidth((short)idx,(short)8000); + ++idx; + } + ++fileCount; + idx = 0; + row1 = sheet.createRow(fileCount); + cell = row1.createCell((short) idx++); + cell.setCellValue(dto.getMessage().getSubject()); + + cell = row1.createCell((short) idx++); + cell.setCellValue(dto.getAuthor()); + + cell = row1.createCell((short) idx++); + cell.setCellValue(DateFormat.getInstance().format(dto.getMessage().getCreated())); + + cell = row1.createCell((short) idx++); + + if(dto.getMessage() != null && dto.getMessage().getReport() != null) + cell.setCellValue(new Double(dto.getMessage().getReport().getMark()).doubleValue()); + else + cell.setCellValue(""); + + cell = row1.createCell((short) idx++); + if(dto.getMessage() != null && dto.getMessage().getReport() != null) + cell.setCellValue(dto.getMessage().getReport().getComment()); + else + cell.setCellValue(""); + } + } + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + wb.write(bos); + //construct download file response header + String fileName = "marks" + sessionID+".xls"; + String mineType = "application/vnd.ms-excel"; + String header = "attachment; filename=\"" + fileName + "\";"; + response.setContentType(mineType); + response.setHeader("Content-Disposition",header); + + byte[] data = bos.toByteArray(); + response.getOutputStream().write(data,0,data.length); + response.getOutputStream().flush(); + } catch (IOException e) { + log.error(e); + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("monitoring.download.error",e.toString())); + } + + if(!errors.isEmpty()){ + saveErrors(request,errors); + request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID,sessionID); + return mapping.getInputForward(); + } + - - return mapping.findForward("success"); + return null; } private ActionForward viewUserMark(ActionMapping mapping, ActionForm form, HttpServletRequest request, @@ -321,6 +445,17 @@ return mapping.findForward("success"); } + private ActionForward viewTopic(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + Long msgUid = new Long(WebUtil.readLongParam(request,ForumConstants.MESSAGE_UID)); + + forumService = getForumService(); + Message topic = forumService.getMessage(msgUid); + + request.setAttribute(ForumConstants.AUTHORING_TOPIC,MessageDTO.getMessageDTO(topic)); + return mapping.findForward("success"); + } //========================================================================================== // Utility methods @@ -337,4 +472,28 @@ } return forumService; } + + + /** + * @param topicList + * @return + */ + private Map getTopicsSortedByAuthor(List topicList) { + Map topicsByUser = new HashMap(); + Iterator iter = topicList.iterator(); + while(iter.hasNext()){ + MessageDTO dto = (MessageDTO) iter.next(); + ForumReport report = dto.getMessage().getReport(); + if(report != null){ + log.info("REPROT MARK" + report.getMark()); + } + 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/web/WEB-INF/struts-config.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/WEB-INF/Attic/struts-config.xml,v diff -u -r1.25 -r1.26 --- lams_tool_forum/web/WEB-INF/struts-config.xml 24 Nov 2005 03:41:00 -0000 1.25 +++ lams_tool_forum/web/WEB-INF/struts-config.xml 24 Nov 2005 06:25:24 -0000 1.26 @@ -253,6 +253,7 @@ - + + + + + + + + @@ -98,6 +102,11 @@ + + + + + Index: lams_tool_forum/web/includes/header.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/includes/Attic/header.jsp,v diff -u -r1.6 -r1.7 --- lams_tool_forum/web/includes/header.jsp 22 Nov 2005 04:01:14 -0000 1.6 +++ lams_tool_forum/web/includes/header.jsp 24 Nov 2005 06:25:24 -0000 1.7 @@ -6,8 +6,8 @@ <bean:message key="appName" /> -/css/aqua.css" rel="stylesheet" type="text/css"> - +css/aqua.css" rel="stylesheet" type="text/css"> + Following files have been submitted by , @@ -9,9 +10,9 @@ - + - + Index: lams_tool_forum/web/jsps/monitoring/viewallmarks.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/Attic/viewallmarks.jsp,v diff -u -r1.1 -r1.2 --- lams_tool_forum/web/jsps/monitoring/viewallmarks.jsp 22 Nov 2005 04:01:13 -0000 1.1 +++ lams_tool_forum/web/jsps/monitoring/viewallmarks.jsp 24 Nov 2005 06:25:24 -0000 1.2 @@ -1,96 +1,87 @@ -<%@include file="../sharing/share.jsp" %> - - - - All Learner Submission Details - - - - - - +<%@ include file="/includes/taglibs.jsp" %> + - - - - - -

- - -

- - - - - - - - - - - - - - - - - - - - - - - - -
- , - , provides following submisstion: -
File Path: - File Path: - - - - - -   - - - - - - -
File Description:
Date of Submission:
Marks: - - - - - - - -
Comments: - - - - - - - - -
-
- > - > - > + + + + + + +

+ + +

+ + + + + + + + + + + + + + + + + + + + + + - - - + + + + -
+ , + , + provides following submisstion: +
+ + + + + + + + + "> + + + + + + + + +
Marks: + + + + + + + + +
Comments: + + + + + + + + +
+ + > > + > - -
- - - + +
Index: lams_tool_forum/web/jsps/monitoring/viewtopic.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/Attic/viewtopic.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_forum/web/jsps/monitoring/viewtopic.jsp 24 Nov 2005 06:25:24 -0000 1.1 @@ -0,0 +1,8 @@ + +<%@ include file="/includes/taglibs.jsp" %> + +
+ <%@ include file="message/topicview.jsp" %> +
+close +
Index: lams_tool_forum/web/jsps/monitoring/message/topicview.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/message/Attic/topicview.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_forum/web/jsps/monitoring/message/topicview.jsp 24 Nov 2005 06:25:24 -0000 1.1 @@ -0,0 +1,39 @@ +
+
+
+ + + + + + + + + + + + + +
+ +
+ - + + +
+
+ +
+
+ + + + + + + + +
+
+
+