Index: lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Attic/ForumReport.hbm.xml,v diff -u -r1.1 -r1.2 --- lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml 22 Nov 2005 04:01:13 -0000 1.1 +++ lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml 30 Nov 2005 03:36:13 -0000 1.2 @@ -43,7 +43,7 @@ + - + MessageDTO instance from a given Message. * @@ -52,7 +55,11 @@ dto.setHasAttachment(false); else dto.setHasAttachment(true); - + + ForumReport report = msg.getReport(); + if(report != null && report.getMark() != null) + dto.mark = report.getMark(); + return dto; } @@ -70,12 +77,16 @@ while(iter.hasNext()){ Message msg = (Message) iter.next(); MessageDTO msgDto = new MessageDTO(); + msgDto.setMessage(msg); + msgDto.setAuthor(msg.getCreatedBy().getFirstName()+" "+msg.getCreatedBy().getLastName()); + if(msg.getAttachments() == null || msg.getAttachments().isEmpty()) msgDto.setHasAttachment(false); else msgDto.setHasAttachment(true); - msgDto.setMessage(msg); - msgDto.setAuthor(msg.getCreatedBy().getFirstName()+" "+msg.getCreatedBy().getLastName()); + ForumReport report = msg.getReport(); + if(report != null && report.getMark() != null) + msgDto.mark = report.getMark(); retSet.add(msgDto); } @@ -121,4 +132,11 @@ this.isAuthor = isAuthor; } + public Float getMark() { + return mark; + } + + public void setMark(Float mark) { + this.mark = mark; + } } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Attic/ForumReport.hbm.xml,v diff -u -r1.1 -r1.2 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml 22 Nov 2005 04:01:13 -0000 1.1 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml 30 Nov 2005 03:36:13 -0000 1.2 @@ -43,7 +43,7 @@ errors.footer= @@ -59,7 +64,7 @@ error.inputFileTooLarge = Input File size is too large! error.uploading = error uploading error.mark.needNumber= Mark must be int value -error.mark.needInteger= Mark must be int value +error.mark.invalid.number= Mark is invalid number format error.fail.get.forum=No Forum available error.title.empty=Title can not be blank #General Messages 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.6 -r1.7 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 24 Nov 2005 06:25:24 -0000 1.6 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 30 Nov 2005 03:36:13 -0000 1.7 @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.text.DateFormat; +import java.text.FieldPosition; +import java.text.NumberFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -33,7 +35,6 @@ 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.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; @@ -234,8 +235,9 @@ cell = row1.createCell((short) idx++); - if(dto.getMessage() != null && dto.getMessage().getReport() != null) - cell.setCellValue(new Double(dto.getMessage().getReport().getMark()).doubleValue()); + if(dto.getMessage() != null && dto.getMessage().getReport() != null + && dto.getMessage().getReport().getMark() != null) + cell.setCellValue(dto.getMessage().getReport().getMark().doubleValue()); else cell.setCellValue(""); @@ -302,8 +304,11 @@ //echo back to web page MarkForm markForm = (MarkForm) form; - if(msg.getReport() != null){ - markForm.setMark(new Integer(msg.getReport().getMark()).toString()); + if(msg.getReport() != null ){ + if(msg.getReport().getMark() != null) + markForm.setMark(msg.getReport().getMark().toString()); + else + markForm.setMark(""); markForm.setComment(msg.getReport().getComment()); } markForm.setUser(user); @@ -329,7 +334,7 @@ report = new ForumReport(); msg.setReport(report); } - report.setMark(Integer.parseInt(markForm.getMark())); + report.setMark(new Float(Float.parseFloat(markForm.getMark()))); report.setComment(markForm.getComment()); forumService.updateTopic(msg); @@ -442,9 +447,52 @@ private ActionForward statistic(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); + Iterator iter = topicList.iterator(); + int totalMsg = 0; + int msgNum; + float totalMsgMarkSum = 0; + float msgMarkSum = 0; + for(;iter.hasNext();){ + MessageDTO msgDto = (MessageDTO) iter.next(); + //get all message under this topic + List topicThread = forumService.getTopicThread(msgDto.getMessage().getUid()); + //loop all message under this topic + msgMarkSum = 0; + Iterator threadIter = topicThread.iterator(); + for(msgNum=0;threadIter.hasNext();msgNum++){ + MessageDTO dto = (MessageDTO) threadIter.next(); + if(dto.getMark() != null) + msgMarkSum += dto.getMark().floatValue(); + } + //summary to total mark + totalMsgMarkSum += msgMarkSum; + //set average mark to topic message DTO for display use + msgDto.setMark(getAverageFormat(msgMarkSum/(float)msgNum)); + totalMsg += msgNum; + } + + float averMark = totalMsg == 0 ? 0: (totalMsgMarkSum/(float)totalMsg); + request.setAttribute("topicList",topicList); + request.setAttribute("markAverage",getAverageFormat(averMark)); + request.setAttribute("totalMessage",new Integer(totalMsg)); return mapping.findForward("success"); } + private Float getAverageFormat(float aver) { + try { + NumberFormat format = NumberFormat.getInstance(); + format.setMaximumFractionDigits(1); + return new Float(Float.parseFloat(format.format(aver))); + } catch (Exception e) { + return new Float(0); + } + } + + private ActionForward viewTopic(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { @@ -484,9 +532,6 @@ 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(); Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/MarkForm.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/MarkForm.java,v diff -u -r1.2 -r1.3 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/MarkForm.java 24 Nov 2005 03:40:59 -0000 1.2 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/MarkForm.java 30 Nov 2005 03:36:13 -0000 1.3 @@ -60,9 +60,9 @@ errors.add("report.mark", error); }else { try{ - Integer.parseInt(mark); + Float.parseFloat(mark); }catch(Exception e){ - ActionMessage error = new ActionMessage("error.mark.needInteger"); + ActionMessage error = new ActionMessage("error.mark.invalid.number"); errors.add("report.mark", error); } } 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.26 -r1.27 --- lams_tool_forum/web/WEB-INF/struts-config.xml 24 Nov 2005 06:25:24 -0000 1.26 +++ lams_tool_forum/web/WEB-INF/struts-config.xml 30 Nov 2005 03:36:14 -0000 1.27 @@ -330,7 +330,7 @@ - + + + + + + Index: lams_tool_forum/web/jsps/monitoring/statistic.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/statistic.jsp,v diff -u -r1.1 -r1.2 --- lams_tool_forum/web/jsps/monitoring/statistic.jsp 22 Nov 2005 04:01:13 -0000 1.1 +++ lams_tool_forum/web/jsps/monitoring/statistic.jsp 30 Nov 2005 03:36:14 -0000 1.2 @@ -1,33 +1,48 @@ -<%@include file="../sharing/share.jsp" %> - - - - Monitoring Statistic - - - - -

-
- - - - - - - - - - - - - - - - - +<%@ include file="/includes/taglibs.jsp" %> + + +
+
TitleCount
+ + + + + + + + + + + + +
+
+ + + + + + + + + + + + +
+ + + + + + + + + + +
-
- - + +


+