Index: lams_tool_forum/conf/language/ApplicationResources.properties
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/conf/language/Attic/ApplicationResources.properties,v
diff -u -r1.12 -r1.13
--- lams_tool_forum/conf/language/ApplicationResources.properties 3 Aug 2006 04:50:13 -0000 1.12
+++ lams_tool_forum/conf/language/ApplicationResources.properties 8 Aug 2006 01:56:34 -0000 1.13
@@ -143,4 +143,6 @@
#======= End labels: Exported 134 labels for en AU =====
-button.close=Close
\ No newline at end of file
+button.close=Close
+button.release.mark=Release marks
+msg.mark.released=Marks in {0} have been released.
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.35 -r1.36
--- lams_tool_forum/conf/xdoclet/struts-actions.xml 4 Aug 2006 04:25:32 -0000 1.35
+++ lams_tool_forum/conf/xdoclet/struts-actions.xml 8 Aug 2006 01:56:34 -0000 1.36
@@ -239,6 +239,11 @@
parameter="statistic" >
+
+
-
+
@@ -266,7 +271,7 @@
scope="request"
validate="false"
parameter="viewUserMark" >
-
+
-
+ org.lamsfoundation.lams.tool.forum.ApplicationResources
-
+
@@ -104,7 +104,7 @@
-
+
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java,v
diff -u -r1.11 -r1.12
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java 3 Aug 2006 01:19:33 -0000 1.11
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java 8 Aug 2006 01:56:34 -0000 1.12
@@ -43,9 +43,8 @@
private boolean isAuthor;
private Float mark;
private String comment;
+ private boolean released;
-
-
/**
* Get a MessageDTO instance from a given Message.
*
@@ -68,6 +67,7 @@
if(report != null && report.getMark() != null){
dto.mark = report.getMark();
dto.comment = report.getComment();
+ dto.released = report.getDateMarksReleased() == null?false:true;
}
return dto;
@@ -98,6 +98,7 @@
if(report != null && report.getMark() != null){
msgDto.mark = report.getMark();
msgDto.comment = report.getComment();
+ msgDto.released = report.getDateMarksReleased() == null?false:true;
}
retSet.add(msgDto);
@@ -158,4 +159,13 @@
public void setComment(String comment) {
this.comment = comment;
}
+
+ public boolean isReleased() {
+ return released;
+ }
+
+ public void setReleased(boolean isReleased) {
+ this.released = isReleased;
+ }
+
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/BaseDAOHibernate.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/BaseDAOHibernate.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/BaseDAOHibernate.java 8 Aug 2006 01:56:34 -0000 1.1
@@ -0,0 +1,71 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * 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.
+ *
+ * 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
+ * ****************************************************************
+ */
+/* $$Id: BaseDAOHibernate.java,v 1.1 2006/08/08 01:56:34 steven Exp $$ */
+package org.lamsfoundation.lams.tool.forum.persistence;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
+
+/**
+ * This class serves as the Base class for all other DAOs - namely to hold
+ * common methods that they might all use. Can be used for standard CRUD
+ * operations.
+ *
+ * @author Dapeng.Ni
+ */
+public class BaseDAOHibernate extends HibernateDaoSupport {
+ protected final Log log = LogFactory.getLog(getClass());
+
+ /**
+ * @see com.edgenius.paradise.dao.DAO#saveObject(java.lang.Object)
+ */
+ public void saveObject(Object o) {
+ getHibernateTemplate().saveOrUpdate(o);
+ }
+
+ /**
+ * @see com.edgenius.paradise.dao.DAO#getObject(java.lang.Class, java.io.Serializable)
+ */
+ public Object getObject(Class clazz, Serializable id) {
+ Object o = getHibernateTemplate().get(clazz, id);
+ return o;
+ }
+
+ /**
+ * @see com.edgenius.paradise.dao.DAO#getObjects(java.lang.Class)
+ */
+ public List getObjects(Class clazz) {
+ return getHibernateTemplate().loadAll(clazz);
+ }
+
+ /**
+ * @see com.edgenius.paradise.dao.DAO#removeObject(java.lang.Class, java.io.Serializable)
+ */
+ public void removeObject(Class clazz, Serializable id) {
+ getHibernateTemplate().delete(getObject(clazz, id));
+ }
+}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumReportDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Attic/ForumReportDAO.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumReportDAO.java 8 Aug 2006 01:56:34 -0000 1.1
@@ -0,0 +1,6 @@
+package org.lamsfoundation.lams.tool.forum.persistence;
+
+
+public class ForumReportDAO extends BaseDAOHibernate {
+
+}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumToolSession.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumToolSession.java,v
diff -u -r1.5 -r1.6
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumToolSession.java 6 Apr 2006 06:40:39 -0000 1.5
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumToolSession.java 8 Aug 2006 01:56:34 -0000 1.6
@@ -45,6 +45,7 @@
private Forum forum;
private Date sessionStartDate;
private Date sessionEndDate;
+ private boolean markReleased;
//finish or not
private int status;
@@ -149,5 +150,15 @@
this.sessionName = sessionName;
}
+ /**
+ * @hibernate.property column="mark_released"
+ * @return Returns the mark released flag
+ */
+ public boolean isMarkReleased() {
+ return markReleased;
+ }
+ public void setMarkReleased(boolean markReleased) {
+ this.markReleased = markReleased;
+ }
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java,v
diff -u -r1.59 -r1.60
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 4 Aug 2006 07:22:43 -0000 1.59
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 8 Aug 2006 01:56:34 -0000 1.60
@@ -68,6 +68,7 @@
import org.lamsfoundation.lams.tool.forum.persistence.ForumDao;
import org.lamsfoundation.lams.tool.forum.persistence.ForumException;
import org.lamsfoundation.lams.tool.forum.persistence.ForumReport;
+import org.lamsfoundation.lams.tool.forum.persistence.ForumReportDAO;
import org.lamsfoundation.lams.tool.forum.persistence.ForumToolSession;
import org.lamsfoundation.lams.tool.forum.persistence.ForumToolSessionDao;
import org.lamsfoundation.lams.tool.forum.persistence.ForumUser;
@@ -103,6 +104,7 @@
private MessageSeqDao messageSeqDao;
private ForumUserDao forumUserDao;
private ForumToolSessionDao forumToolSessionDao;
+ private ForumReportDAO forumReportDAO;
//system level handler and service
private ILamsToolService toolService;
private ForumToolContentHandler forumToolContentHandler;
@@ -193,7 +195,10 @@
return message;
}
-
+
+ public void updateReport(ForumReport report) {
+ forumReportDAO.saveObject(report);
+ }
public Message updateMessageHideFlag(Long messageId, boolean hideFlag) {
Message message = getMessage(messageId);
@@ -424,6 +429,7 @@
}
public void releaseMarksForSession(Long sessionID) {
+ //udate release mark date for each message.
List list = messageDao.getBySession(sessionID);
Iterator iter = list.iterator();
while(iter.hasNext()){
@@ -433,6 +439,11 @@
report.setDateMarksReleased(new Date());
messageDao.saveOrUpdate(msg);
}
+ //update session to set MarkRelease flag.
+ ForumToolSession session = forumToolSessionDao.getBySessionId(sessionID);
+ session.setMarkReleased(true);
+ forumToolSessionDao.saveOrUpdate(session);
+
}
//***************************************************************************************************************
@@ -884,7 +895,12 @@
this.userManagementService = userManagementService;
}
+ public ForumReportDAO getForumReportDAO() {
+ return forumReportDAO;
+ }
+ public void setForumReportDAO(ForumReportDAO forumReportDAO) {
+ this.forumReportDAO = forumReportDAO;
+ }
-
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java,v
diff -u -r1.29 -r1.30
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 14 Jun 2006 06:02:58 -0000 1.29
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 8 Aug 2006 01:56:34 -0000 1.30
@@ -30,6 +30,7 @@
import org.lamsfoundation.lams.tool.forum.dto.MessageDTO;
import org.lamsfoundation.lams.tool.forum.persistence.Attachment;
import org.lamsfoundation.lams.tool.forum.persistence.Forum;
+import org.lamsfoundation.lams.tool.forum.persistence.ForumReport;
import org.lamsfoundation.lams.tool.forum.persistence.ForumToolSession;
import org.lamsfoundation.lams.tool.forum.persistence.ForumUser;
import org.lamsfoundation.lams.tool.forum.persistence.Message;
@@ -259,7 +260,11 @@
* @return
*/
public ForumUser getUserByID(Long userId);
-
+ /**
+ * Update forum message report.
+ * @param report
+ */
+ public void updateReport(ForumReport report);
//************************************************************************************
// Report Method
//************************************************************************************
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java,v
diff -u -r1.31 -r1.32
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 3 Aug 2006 04:50:13 -0000 1.31
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 8 Aug 2006 01:56:34 -0000 1.32
@@ -87,7 +87,9 @@
public static final String ATTR_TOOL_CONTENT_TOPICS = "ToolContentTopicList";
public static final String ATTR_TOPIC = "topic";
public static final String ATTR_USER= "user";
- public static final String ATTR_TOPIC_LIST = "topicList";
+ public static final String ATTR_REPORT = "report";
+ public static final String PARAM_UPDATE_MODE = "updateMode";
+
}
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.21 -r1.22
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 4 Aug 2006 04:25:32 -0000 1.21
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 8 Aug 2006 01:56:34 -0000 1.22
@@ -27,10 +27,12 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Comparator;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -67,6 +69,7 @@
import org.lamsfoundation.lams.tool.forum.util.ForumWebUtils;
import org.lamsfoundation.lams.tool.forum.web.forms.ForumForm;
import org.lamsfoundation.lams.tool.forum.web.forms.MarkForm;
+import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.util.AttributeNames;
import org.springframework.web.context.WebApplicationContext;
@@ -90,6 +93,20 @@
return -1;
}
}
+
+ private class ForumUserComparator implements Comparator{
+ public int compare(ForumUser o1, ForumUser o2) {
+ if(o1 != null && o2 != null){
+ int c = o1.getLoginName().compareTo(o2.getLoginName());
+ //to ensure ForumUser can be put into map even they have duplicated name.
+ return c==0?1:c;
+ }else if(o1 != null)
+ return 1;
+ else
+ return -1;
+ }
+ }
+
public final ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
@@ -118,7 +135,9 @@
if (param.equals("updateMark")) {
return updateMark(mapping, form, request, response);
}
-
+
+ if(param.equals("releaseMark"))
+ return releaseMark(mapping, form, request, response);
// ***************** Miscellaneous ********************
if (param.equals("viewTopic")) {
return viewTopic(mapping, form, request, response);
@@ -190,8 +209,8 @@
Map topicsByUser = getTopicsSortedByAuthor(topicList);
request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID, sessionID);
- request.setAttribute("report", topicsByUser);
-
+ request.setAttribute(ForumConstants.ATTR_REPORT, topicsByUser);
+ request.setAttribute(ForumConstants.PARAM_UPDATE_MODE, "listAllMarks");
return mapping.findForward("success");
}
@@ -337,14 +356,16 @@
AttributeNames.PARAM_TOOL_SESSION_ID));
forumService = getForumService();
- List messageList = forumService
- .getMessagesByUserUid(userUid, sessionId);
+ List messageList = forumService.getMessagesByUserUid(userUid, sessionId);
ForumUser user = forumService.getUser(userUid);
// each back to web page
- request.setAttribute(ForumConstants.ATTR_TOPIC_LIST, messageList);
- request.setAttribute(ForumConstants.ATTR_USER, user);
+ Map> report = new TreeMap(this.new ForumUserComparator());
+ report.put(user,messageList);
+ request.setAttribute(ForumConstants.ATTR_REPORT, report);
+
request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId);
+ request.setAttribute(ForumConstants.PARAM_UPDATE_MODE, "listMarks");
return mapping.findForward("success");
}
@@ -365,7 +386,8 @@
ForumConstants.MESSAGE_UID));
Long sessionId = new Long(WebUtil.readLongParam(request,
AttributeNames.PARAM_TOOL_SESSION_ID));
-
+ String updateMode = request.getParameter(ForumConstants.PARAM_UPDATE_MODE);
+
// get Message and User from database
forumService = getForumService();
Message msg = forumService.getMessage(messageId);
@@ -385,6 +407,7 @@
request.setAttribute(ForumConstants.ATTR_TOPIC, MessageDTO.getMessageDTO(msg));
request.setAttribute(ForumConstants.ATTR_USER, user);
request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId);
+ request.setAttribute(ForumConstants.PARAM_UPDATE_MODE, updateMode);
return mapping.findForward("success");
}
@@ -407,7 +430,9 @@
ForumConstants.USER_UID));
Long sessionId = new Long(WebUtil.readLongParam(request,
AttributeNames.PARAM_TOOL_SESSION_ID));
-
+ String updateMode = request.getParameter(ForumConstants.PARAM_UPDATE_MODE);
+ request.setAttribute(ForumConstants.PARAM_UPDATE_MODE, updateMode);
+
String mark = markForm.getMark();
ActionErrors errors = new ActionErrors();
if (StringUtils.isBlank(mark)) {
@@ -427,7 +452,6 @@
forumService = getForumService();
// echo back to web page
- List messageList = forumService.getMessagesByUserUid(userUid, sessionId);
ForumUser user = forumService.getUser(userUid);
Message msg = forumService.getMessage(messageId);
@@ -448,13 +472,28 @@
report = new ForumReport();
msg.setReport(report);
}
+ //only session has been released mark, the data of mark release will have value.
+ ForumToolSession toolSession = forumService.getSessionBySessionId(sessionId);
+ if(toolSession.isMarkReleased())
+ report.setDateMarksReleased(new Date());
+
report.setMark(new Float(Float.parseFloat(mark)));
report.setComment(markForm.getComment());
-
- //echo back to topic list page
- request.setAttribute(ForumConstants.ATTR_TOPIC_LIST, messageList);
forumService.updateTopic(msg);
+
+ //echo back to topic list page: it depends which screen is come from: view special user mark, or view all user marks.
+ if(StringUtils.equals(updateMode, "listAllMarks")){
+ List topicList = forumService.getAllTopicsFromSession(sessionId);
+ Map topicsByUser = getTopicsSortedByAuthor(topicList);
+ request.setAttribute(ForumConstants.ATTR_REPORT, topicsByUser);
+ }else{
+ List messageList = forumService.getMessagesByUserUid(userUid, sessionId);
+ Map> topicMap = new TreeMap(this.new ForumUserComparator());
+ topicMap.put(user,messageList);
+ request.setAttribute(ForumConstants.ATTR_REPORT, topicMap);
+ }
+ //listMark or listAllMark.
return mapping.findForward("success");
}
@@ -616,6 +655,28 @@
return mapping.findForward("success");
}
+
+
+ private ActionForward releaseMark(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
+ //get service then update report table
+ forumService = getForumService();
+ Long sessionID =new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_SESSION_ID));
+ forumService.releaseMarksForSession(sessionID);
+ try {
+ PrintWriter out = response.getWriter();
+ ForumToolSession session = forumService.getSessionBySessionId(sessionID);
+ String sessionName = "";
+ if(session != null)
+ sessionName = session.getSessionName();
+ out.write(getMessageService().getMessage("msg.mark.released",new String[]{sessionName}));
+ out.flush();
+ } catch (IOException e) {
+ }
+
+ return null;
+ }
+
+
// ==========================================================================================
// Utility methods
// ==========================================================================================
@@ -673,15 +734,15 @@
* @return
*/
private Map getTopicsSortedByAuthor(List topicList) {
- Map topicsByUser = new HashMap();
+ Map> topicsByUser = new TreeMap(this.new ForumUserComparator());
Iterator iter = topicList.iterator();
while (iter.hasNext()) {
MessageDTO dto = (MessageDTO) iter.next();
dto.getMessage().getReport();
- List list = (List) topicsByUser
+ List list = (List) topicsByUser
.get(dto.getMessage().getCreatedBy());
if (list == null) {
- list = new ArrayList();
+ list = new ArrayList();
topicsByUser.put(dto.getMessage().getCreatedBy(), list);
}
list.add(dto);
@@ -704,5 +765,11 @@
return new Float(0);
}
}
-
+ /**
+ * Return ResourceService bean.
+ */
+ private MessageService getMessageService() {
+ WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext());
+ return (MessageService) wac.getBean("forumMessageService");
+ }
}
Index: lams_tool_forum/web/WEB-INF/struts/tiles-defs.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/WEB-INF/struts/Attic/tiles-defs.xml,v
diff -u -r1.29 -r1.30
--- lams_tool_forum/web/WEB-INF/struts/tiles-defs.xml 3 Jul 2006 07:03:10 -0000 1.29
+++ lams_tool_forum/web/WEB-INF/struts/tiles-defs.xml 8 Aug 2006 01:56:34 -0000 1.30
@@ -109,14 +109,10 @@
-
+
-
+
-
-
-
-
Index: lams_tool_forum/web/images/indicator.gif
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/images/indicator.gif,v
diff -u
Binary files differ
Index: lams_tool_forum/web/jsps/export/exportportfolio.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/export/exportportfolio.jsp,v
diff -u -r1.7 -r1.8
--- lams_tool_forum/web/jsps/export/exportportfolio.jsp 3 Aug 2006 01:19:33 -0000 1.7
+++ lams_tool_forum/web/jsps/export/exportportfolio.jsp 8 Aug 2006 01:56:34 -0000 1.8
@@ -75,7 +75,7 @@
<%-- display mark for teacher --%>
-
+
<%@ include file="/common/messages.jsp"%>
Fisheye: Tag 1.10 refers to a dead (removed) revision in file `lams_tool_forum/web/jsps/monitoring/usermarklist.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.8 refers to a dead (removed) revision in file `lams_tool_forum/web/jsps/monitoring/viewallmarks.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_forum/web/jsps/monitoring/viewmarks.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/viewmarks.jsp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_tool_forum/web/jsps/monitoring/viewmarks.jsp 8 Aug 2006 01:56:34 -0000 1.1
@@ -0,0 +1,112 @@
+<%@ include file="/common/taglibs.jsp"%>
+