Index: lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml =================================================================== diff -u -r811003bdaefc92c8f7ddc49a1caaa9116cb8f729 -rbbe88a48d8e196a1c6df3d8d915142c19857b052 --- lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml (.../ForumReport.hbm.xml) (revision 811003bdaefc92c8f7ddc49a1caaa9116cb8f729) +++ lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml (.../ForumReport.hbm.xml) (revision bbe88a48d8e196a1c6df3d8d915142c19857b052) @@ -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 =================================================================== diff -u -r811003bdaefc92c8f7ddc49a1caaa9116cb8f729 -rbbe88a48d8e196a1c6df3d8d915142c19857b052 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml (.../ForumReport.hbm.xml) (revision 811003bdaefc92c8f7ddc49a1caaa9116cb8f729) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml (.../ForumReport.hbm.xml) (revision bbe88a48d8e196a1c6df3d8d915142c19857b052) @@ -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 =================================================================== diff -u -rcaa9a3e6d7c7a51d0852c6b350f05ee2a7d3fbab -rbbe88a48d8e196a1c6df3d8d915142c19857b052 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision caa9a3e6d7c7a51d0852c6b350f05ee2a7d3fbab) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision bbe88a48d8e196a1c6df3d8d915142c19857b052) @@ -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 =================================================================== diff -u -r1079ea24a56ed171c7d70985cf72de279765d386 -rbbe88a48d8e196a1c6df3d8d915142c19857b052 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/MarkForm.java (.../MarkForm.java) (revision 1079ea24a56ed171c7d70985cf72de279765d386) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/MarkForm.java (.../MarkForm.java) (revision bbe88a48d8e196a1c6df3d8d915142c19857b052) @@ -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 =================================================================== diff -u -rcaa9a3e6d7c7a51d0852c6b350f05ee2a7d3fbab -rbbe88a48d8e196a1c6df3d8d915142c19857b052 --- lams_tool_forum/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision caa9a3e6d7c7a51d0852c6b350f05ee2a7d3fbab) +++ lams_tool_forum/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision bbe88a48d8e196a1c6df3d8d915142c19857b052) @@ -330,7 +330,7 @@ - + + + + + + Index: lams_tool_forum/web/jsps/monitoring/statistic.jsp =================================================================== diff -u -r811003bdaefc92c8f7ddc49a1caaa9116cb8f729 -rbbe88a48d8e196a1c6df3d8d915142c19857b052 --- lams_tool_forum/web/jsps/monitoring/statistic.jsp (.../statistic.jsp) (revision 811003bdaefc92c8f7ddc49a1caaa9116cb8f729) +++ lams_tool_forum/web/jsps/monitoring/statistic.jsp (.../statistic.jsp) (revision bbe88a48d8e196a1c6df3d8d915142c19857b052) @@ -1,33 +1,48 @@ -<%@include file="../sharing/share.jsp" %> - - - - Monitoring Statistic - - - - -

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


+