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.52 -r1.52.2.1
--- lams_tool_forum/conf/xdoclet/struts-actions.xml 17 Jan 2014 21:42:45 -0000 1.52
+++ lams_tool_forum/conf/xdoclet/struts-actions.xml 19 Jan 2015 21:34:30 -0000 1.52.2.1
@@ -294,6 +294,11 @@
type="org.lamsfoundation.lams.tool.forum.web.actions.MonitoringAction"
scope="request"
parameter="releaseMark" >
+
+
-
-
-
-
-
-
-
getMessageDTO(List msgList){
+ public static List getMessageDTO(List msgList){
List retSet = new ArrayList();
if(msgList == null || msgList.isEmpty())
return retSet;
- Iterator iter = msgList.iterator();
+ Iterator iter = msgList.iterator();
while(iter.hasNext()){
- Message msg = (Message) iter.next();
+ Message msg = iter.next();
MessageDTO msgDto = new MessageDTO();
msgDto.setMessage(msg);
if(msg.getCreatedBy() != null)
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/SessionDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/SessionDTO.java,v
diff -u -r1.3 -r1.3.14.1
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/SessionDTO.java 17 Sep 2006 06:22:31 -0000 1.3
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/SessionDTO.java 19 Jan 2015 21:34:30 -0000 1.3.14.1
@@ -21,35 +21,49 @@
* ****************************************************************
*/
-/* $$Id$$ */
+/* $$Id$$ */
package org.lamsfoundation.lams.tool.forum.dto;
+import java.util.List;
+import java.util.Map;
+
+import org.lamsfoundation.lams.tool.forum.persistence.ForumUser;
+
/**
*
* @author Anthony Sukkar
- *
+ *
*/
public class SessionDTO {
- private Long sessionID;
-
- private String sessionName;
+ private Long sessionID;
+ private String sessionName;
+ //used for storing data for MonitoringAction.getUsers() serving tablesorter paging
+ private Map> topicsByUser;
- public Long getSessionID() {
- return sessionID;
- }
+ public Long getSessionID() {
+ return sessionID;
+ }
- public void setSessionID(Long sessionID) {
- this.sessionID = sessionID;
- }
+ public void setSessionID(Long sessionID) {
+ this.sessionID = sessionID;
+ }
- public String getSessionName() {
- return sessionName;
- }
+ public String getSessionName() {
+ return sessionName;
+ }
- public void setSessionName(String sessionName) {
- this.sessionName = sessionName;
- }
-
+ public void setSessionName(String sessionName) {
+ this.sessionName = sessionName;
+ }
+
+ public Map> getTopicsByUser() {
+ return topicsByUser;
+ }
+
+ public void setTopicsByUser(Map> topicsByUser) {
+ this.topicsByUser = topicsByUser;
+ }
+
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/UserDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/UserDTO.java,v
diff -u -r1.2 -r1.2.12.1
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/UserDTO.java 7 May 2008 06:33:45 -0000 1.2
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/UserDTO.java 19 Jan 2015 21:34:30 -0000 1.2.12.1
@@ -4,83 +4,95 @@
public class UserDTO {
- private Long userUid;
- private String fullName;
- private String loginName;
- private int noOfPosts;
- private boolean hasRefection;
- private String reflectInstrctions;
- private boolean finishReflection;
- private String reflect;
- private boolean anyPostsMarked;
-
- public UserDTO(){
- }
-
- public UserDTO(ForumUser user) {
- this.setLoginName(user.getLoginName());
- this.setFullName(user.getFirstName()+" "+user.getLastName());
- this.setUserUid(user.getUid());
-
- }
- public String getFullName() {
- return fullName;
- }
- public void setFullName(String fullName) {
- this.fullName = fullName;
- }
- public boolean isHasRefection() {
- return hasRefection;
- }
- public void setHasRefection(boolean hasRefection) {
- this.hasRefection = hasRefection;
- }
- public String getLoginName() {
- return loginName;
- }
- public void setLoginName(String loginName) {
- this.loginName = loginName;
- }
- public int getNoOfPosts() {
- return noOfPosts;
- }
- public void setNoOfPosts(int noOfPosts) {
- this.noOfPosts = noOfPosts;
- }
- public Long getUserUid() {
- return userUid;
- }
- public void setUserUid(Long userUid) {
- this.userUid = userUid;
- }
- public String getReflect() {
- return reflect;
- }
- public void setReflect(String reflection) {
- this.reflect = reflection;
- }
+ private Long userUid;
+ private String fullName;
+ private String loginName;
+ private int noOfPosts;
+ private boolean hasRefection;
+ private String reflectInstrctions;
+ private boolean finishReflection;
+ private String reflect;
+ private boolean anyPostsMarked;
- public String getReflectInstrctions() {
- return reflectInstrctions;
- }
+ public UserDTO() {
+ }
- public void setReflectInstrctions(String reflectInstrctions) {
- this.reflectInstrctions = reflectInstrctions;
- }
+ public UserDTO(ForumUser user) {
+ this.setLoginName(user.getLoginName());
+ this.setFullName(user.getFirstName() + " " + user.getLastName());
+ this.setUserUid(user.getUid());
- public boolean isFinishReflection() {
- return finishReflection;
- }
+ }
- public void setFinishReflection(boolean finishReflection) {
- this.finishReflection = finishReflection;
- }
+ public String getFullName() {
+ return fullName;
+ }
- public boolean isAnyPostsMarked() {
- return anyPostsMarked;
- }
+ public void setFullName(String fullName) {
+ this.fullName = fullName;
+ }
- public void setAnyPostsMarked(boolean anyPostsMarked) {
- this.anyPostsMarked = anyPostsMarked;
- }
+ public boolean isHasRefection() {
+ return hasRefection;
+ }
+
+ public void setHasRefection(boolean hasRefection) {
+ this.hasRefection = hasRefection;
+ }
+
+ public String getLoginName() {
+ return loginName;
+ }
+
+ public void setLoginName(String loginName) {
+ this.loginName = loginName;
+ }
+
+ public int getNoOfPosts() {
+ return noOfPosts;
+ }
+
+ public void setNoOfPosts(int noOfPosts) {
+ this.noOfPosts = noOfPosts;
+ }
+
+ public Long getUserUid() {
+ return userUid;
+ }
+
+ public void setUserUid(Long userUid) {
+ this.userUid = userUid;
+ }
+
+ public String getReflect() {
+ return reflect;
+ }
+
+ public void setReflect(String reflection) {
+ this.reflect = reflection;
+ }
+
+ public String getReflectInstrctions() {
+ return reflectInstrctions;
+ }
+
+ public void setReflectInstrctions(String reflectInstrctions) {
+ this.reflectInstrctions = reflectInstrctions;
+ }
+
+ public boolean isFinishReflection() {
+ return finishReflection;
+ }
+
+ public void setFinishReflection(boolean finishReflection) {
+ this.finishReflection = finishReflection;
+ }
+
+ public boolean isAnyPostsMarked() {
+ return anyPostsMarked;
+ }
+
+ public void setAnyPostsMarked(boolean anyPostsMarked) {
+ this.anyPostsMarked = anyPostsMarked;
+ }
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumUser.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumUser.java,v
diff -u -r1.12 -r1.12.14.1
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumUser.java 24 Oct 2006 00:02:58 -0000 1.12
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/ForumUser.java 19 Jan 2015 21:34:30 -0000 1.12.14.1
@@ -21,7 +21,7 @@
* ****************************************************************
*/
-/* $$Id$$ */
+/* $$Id$$ */
package org.lamsfoundation.lams.tool.forum.persistence;
@@ -31,6 +31,7 @@
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+
/**
*
* @hibernate.class table="tl_lafrum11_forum_user"
@@ -39,158 +40,161 @@
* @version $Revision$
* @serialData -7043502180037866257L
*/
-public class ForumUser implements Serializable,Cloneable{
+public class ForumUser implements Serializable, Cloneable {
- private static final long serialVersionUID = -7043502180037866257L;
- private static Logger log = Logger.getLogger(ForumUser.class);
-
+ private static final long serialVersionUID = -7043502180037866257L;
+ private static Logger log = Logger.getLogger(ForumUser.class);
+
private Long uid;
- private Long userId;
- private String firstName;
- private String lastName;
- private String loginName;
- private boolean sessionFinished;
-
- private ForumToolSession session;
-
- public ForumUser(){
- }
-
- public ForumUser(UserDTO user, ForumToolSession session) {
- this.userId = new Long(user.getUserID().intValue());
- this.firstName = user.getFirstName();
- this.lastName = user.getLastName();
- this.loginName = user.getLogin();
- this.session = session;
- this.sessionFinished = false;
- }
-
+ private Long userId;
+ private String firstName;
+ private String lastName;
+ private String loginName;
+ private boolean sessionFinished;
-// **********************************************************
- // Function method for ForumUser
-// **********************************************************
- /* (non-Javadoc)
- * @see java.lang.Object#clone()
- */
- public Object clone() {
-
- Object obj = null;
- try {
- obj = super.clone();
- } catch (CloneNotSupportedException e) {
- log.error("When clone " + ForumUser.class + " failed");
- }
- return obj;
- }
+ private ForumToolSession session;
+ public ForumUser() {
+ }
-// **********************************************************
- // Get/Set methods
-// **********************************************************
- /**
- * @hibernate.id generator-class="native" type="java.lang.Long" column="uid"
- * @return Returns the uid.
- */
- public Long getUid() {
- return uid;
- }
- /**
- * @param uid The uid to set.
- */
- public void setUid(Long userID) {
- this.uid = userID;
- }
+ public ForumUser(UserDTO user, ForumToolSession session) {
+ this.userId = new Long(user.getUserID().intValue());
+ this.firstName = user.getFirstName();
+ this.lastName = user.getLastName();
+ this.loginName = user.getLogin();
+ this.session = session;
+ this.sessionFinished = false;
+ }
- /**
- * @hibernate.property column="user_id" length="20"
- * @return Returns the userId.
- */
- public Long getUserId() {
- return userId;
- }
- /**
- * @param userId
- * The userId to set.
- */
- public void setUserId(Long userID) {
- this.userId = userID;
- }
+ // **********************************************************
+ // Function method for ForumUser
+ // **********************************************************
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Object#clone()
+ */
+ public Object clone() {
- /**
- * @hibernate.property length="255" column="last_name"
- * @return
- */
- public String getLastName() {
- return lastName;
+ Object obj = null;
+ try {
+ obj = super.clone();
+ } catch (CloneNotSupportedException e) {
+ log.error("When clone " + ForumUser.class + " failed");
}
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
- /**
- * @hibernate.property length="255" column="first_name"
- * @return
- */
- public String getFirstName() {
- return firstName;
- }
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
-
- /**
- * @hibernate.many-to-one column="session_id"
- * cascade="none"
- * @return
- */
- public ForumToolSession getSession() {
- return session;
- }
+ return obj;
+ }
- public void setSession(ForumToolSession session) {
- this.session = session;
- }
+ // **********************************************************
+ // Get/Set methods
+ // **********************************************************
+ /**
+ * @hibernate.id generator-class="native" type="java.lang.Long" column="uid"
+ * @return Returns the uid.
+ */
+ public Long getUid() {
+ return uid;
+ }
- /**
- * @hibernate.property column="login_name"
- * @return
- */
- public String getLoginName() {
- return loginName;
- }
+ /**
+ * @param uid
+ * The uid to set.
+ */
+ public void setUid(Long userID) {
+ this.uid = userID;
+ }
- public void setLoginName(String loginName) {
- this.loginName = loginName;
- }
- /**
- * @hibernate.property column="session_finished"
- * @return
- */
- public boolean isSessionFinished() {
- return sessionFinished;
- }
+ /**
+ * @hibernate.property column="user_id" length="20"
+ * @return Returns the userId.
+ */
+ public Long getUserId() {
+ return userId;
+ }
- public void setSessionFinished(boolean sessionFinished) {
- this.sessionFinished = sessionFinished;
- }
-
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (!(obj instanceof ForumUser))
- return false;
+ /**
+ * @param userId
+ * The userId to set.
+ */
+ public void setUserId(Long userID) {
+ this.userId = userID;
+ }
- final ForumUser user = (ForumUser) obj;
-
- return new EqualsBuilder().append(this.uid, user.uid).append(this.firstName, user.firstName)
- .append(this.lastName,user.lastName).append(this.loginName, user.loginName).isEquals();
-
- }
+ /**
+ * @hibernate.property length="255" column="last_name"
+ * @return
+ */
+ public String getLastName() {
+ return lastName;
+ }
- public int hashCode() {
- return new HashCodeBuilder().append(uid).append(firstName)
- .append(lastName).append(loginName)
- .toHashCode();
- }
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+ /**
+ * @hibernate.property length="255" column="first_name"
+ * @return
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ /**
+ * @hibernate.many-to-one column="session_id" cascade="none"
+ * @return
+ */
+ public ForumToolSession getSession() {
+ return session;
+ }
+
+ public void setSession(ForumToolSession session) {
+ this.session = session;
+ }
+
+ /**
+ * @hibernate.property column="login_name"
+ * @return
+ */
+ public String getLoginName() {
+ return loginName;
+ }
+
+ public void setLoginName(String loginName) {
+ this.loginName = loginName;
+ }
+
+ /**
+ * @hibernate.property column="session_finished"
+ * @return
+ */
+ public boolean isSessionFinished() {
+ return sessionFinished;
+ }
+
+ public void setSessionFinished(boolean sessionFinished) {
+ this.sessionFinished = sessionFinished;
+ }
+
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!(obj instanceof ForumUser))
+ return false;
+
+ final ForumUser user = (ForumUser) obj;
+
+ return new EqualsBuilder().append(this.uid, user.uid).append(this.firstName, user.firstName)
+ .append(this.lastName, user.lastName).append(this.loginName, user.loginName).isEquals();
+
+ }
+
+ public int hashCode() {
+ return new HashCodeBuilder().append(uid).append(firstName).append(lastName).append(loginName).toHashCode();
+ }
+
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/IForumUserDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Attic/IForumUserDAO.java,v
diff -u -r1.1.2.1 -r1.1.2.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/IForumUserDAO.java 1 Dec 2014 22:06:08 -0000 1.1.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/IForumUserDAO.java 19 Jan 2015 21:34:30 -0000 1.1.2.2
@@ -6,16 +6,20 @@
public interface IForumUserDAO extends IBaseDAO {
- List getBySessionId(Long sessionID);
+ List getBySessionId(Long sessionID);
- void save(ForumUser forumUser);
+ void save(ForumUser forumUser);
- ForumUser getByUserIdAndSessionId(Long userId, Long sessionId);
+ ForumUser getByUserIdAndSessionId(Long userId, Long sessionId);
- ForumUser getByUserId(Long userId);
+ ForumUser getByUserId(Long userId);
- ForumUser getByUid(Long userUid);
+ ForumUser getByUid(Long userUid);
- void delete(ForumUser user);
-
+ void delete(ForumUser user);
+
+ int getCountUsersBySession(Long sessionId);
+
+ List getUsersForTablesorter(Long sessionId, int page, int size, int sorting);
+
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/IMessageDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Attic/IMessageDAO.java,v
diff -u -r1.1.2.1 -r1.1.2.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/IMessageDAO.java 1 Dec 2014 22:06:07 -0000 1.1.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/IMessageDAO.java 19 Jan 2015 21:34:30 -0000 1.1.2.2
@@ -6,62 +6,62 @@
public interface IMessageDAO extends IBaseDAO {
- void saveOrUpdate(Message message);
+ void saveOrUpdate(Message message);
- void update(Message message);
+ void update(Message message);
- Message getById(Long messageId);
+ Message getById(Long messageId);
- /**
- * Get all root (first level) topics in a special Session.
- *
- * @param sessionId
- * @return
- */
- List getRootTopics(Long sessionId);
+ /**
+ * Get all root (first level) topics in a special Session.
+ *
+ * @param sessionId
+ * @return
+ */
+ List getRootTopics(Long sessionId);
- /**
- * Get all message posted by author role in a special forum.
- *
- * @param forumUid
- * @return
- */
- List getTopicsFromAuthor(Long forumUid);
+ /**
+ * Get all message posted by author role in a special forum.
+ *
+ * @param forumUid
+ * @return
+ */
+ List getTopicsFromAuthor(Long forumUid);
- void delete(Long uid);
+ void delete(Long uid);
- /**
- * Get all children message from the given parent topic ID.
- *
- * @param parentId
- * @return
- */
- List getChildrenTopics(Long parentId);
+ /**
+ * Get all children message from the given parent topic ID.
+ *
+ * @param parentId
+ * @return
+ */
+ List getChildrenTopics(Long parentId);
- /**
- * Get all messages according to special user and session.
- *
- * @param userUid
- * @param sessionId
- * @return
- */
- List getByUserAndSession(Long userUid, Long sessionId);
+ /**
+ * Get all messages according to special user and session.
+ *
+ * @param userUid
+ * @param sessionId
+ * @return
+ */
+ List getByUserAndSession(Long userUid, Long sessionId);
- /**
- * Get all messages according to special session.
- *
- * @param sessionId
- * @return
- */
- List getBySession(Long sessionId);
+ /**
+ * Get all messages according to special session.
+ *
+ * @param sessionId
+ * @return
+ */
+ List getBySession(Long sessionId);
- /**
- * Return how many post from this user and session. DOES NOT include posts from author.
- *
- * @param userID
- * @param sessionId
- * @return
- */
- int getTopicsNum(Long userID, Long sessionId);
-
+ /**
+ * Return how many post from this user and session. DOES NOT include posts from author.
+ *
+ * @param userID
+ * @param sessionId
+ * @return
+ */
+ int getTopicsNum(Long userID, Long sessionId);
+
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/ForumToolSessionDao.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/Attic/ForumToolSessionDao.java,v
diff -u -r1.1.2.1 -r1.1.2.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/ForumToolSessionDao.java 1 Dec 2014 22:06:07 -0000 1.1.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/ForumToolSessionDao.java 19 Jan 2015 21:34:30 -0000 1.1.2.2
@@ -21,7 +21,7 @@
* ****************************************************************
*/
-/* $$Id$$ */
+/* $$Id$$ */
package org.lamsfoundation.lams.tool.forum.persistence.hibernate;
@@ -36,53 +36,38 @@
@Repository
public class ForumToolSessionDao extends LAMSBaseDAO implements IForumToolSessionDAO {
- private static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " + ForumToolSession.class.getName() + " where session_id=?";
- private static final String SQL_QUERY_FIND_BY_CONTENT_ID = "select s from " + Forum.class.getName()+ " as f, " +
- ForumToolSession.class.getName() + " as s" +
- " where f.contentId=? and s.forum.uid=f.uid";
-
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumToolSessionDAO#getBySessionId(java.lang.Long)
- */
- @Override
- public ForumToolSession getBySessionId(Long sessionId) {
- List list = this.doFind(SQL_QUERY_FIND_BY_SESSION_ID,sessionId);
- if(list == null || list.isEmpty())
- return null;
- return (ForumToolSession) list.get(0);
- }
-
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumToolSessionDAO#saveOrUpdate(org.lamsfoundation.lams.tool.forum.persistence.ForumToolSession)
- */
- @Override
- public void saveOrUpdate(ForumToolSession session){
- this.getSession().saveOrUpdate(session);
- }
+ private static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " + ForumToolSession.class.getName()
+ + " where session_id=?";
+ private static final String SQL_QUERY_FIND_BY_CONTENT_ID = "select s from " + Forum.class.getName() + " as f, "
+ + ForumToolSession.class.getName() + " as s" + " where f.contentId=? and s.forum.uid=f.uid";
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumToolSessionDAO#getByContentId(java.lang.Long)
- */
- @Override
- public List getByContentId(Long contentID) {
- List list = this.doFind(SQL_QUERY_FIND_BY_CONTENT_ID,contentID);
- return list;
- }
+ @Override
+ public ForumToolSession getBySessionId(Long sessionId) {
+ List list = this.doFind(SQL_QUERY_FIND_BY_SESSION_ID, sessionId);
+ if (list == null || list.isEmpty())
+ return null;
+ return (ForumToolSession) list.get(0);
+ }
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumToolSessionDAO#delete(java.lang.Long)
- */
- @Override
- public void delete(Long sessionId) {
- ForumToolSession session = getBySessionId(sessionId);
- this.getSession().delete(session);
- }
+ @Override
+ public void saveOrUpdate(ForumToolSession session) {
+ this.getSession().saveOrUpdate(session);
+ }
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumToolSessionDAO#delete(org.lamsfoundation.lams.tool.forum.persistence.ForumToolSession)
- */
- @Override
- public void delete(ForumToolSession session){
- this.getSession().delete(session);
- }
+ @Override
+ public List getByContentId(Long contentID) {
+ List list = this.doFind(SQL_QUERY_FIND_BY_CONTENT_ID, contentID);
+ return list;
+ }
+
+ @Override
+ public void delete(Long sessionId) {
+ ForumToolSession session = getBySessionId(sessionId);
+ this.getSession().delete(session);
+ }
+
+ @Override
+ public void delete(ForumToolSession session) {
+ this.getSession().delete(session);
+ }
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/ForumUserDao.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/Attic/ForumUserDao.java,v
diff -u -r1.1.2.1 -r1.1.2.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/ForumUserDao.java 1 Dec 2014 22:06:07 -0000 1.1.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/ForumUserDao.java 19 Jan 2015 21:34:30 -0000 1.1.2.2
@@ -21,7 +21,7 @@
* ****************************************************************
*/
-/* $$Id$$ */
+/* $$Id$$ */
package org.lamsfoundation.lams.tool.forum.persistence.hibernate;
@@ -30,79 +30,130 @@
import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO;
import org.lamsfoundation.lams.tool.forum.persistence.ForumUser;
import org.lamsfoundation.lams.tool.forum.persistence.IForumUserDAO;
+import org.lamsfoundation.lams.tool.forum.persistence.Message;
+import org.lamsfoundation.lams.tool.forum.util.ForumConstants;
import org.springframework.stereotype.Repository;
@Repository
public class ForumUserDao extends LAMSBaseDAO implements IForumUserDAO {
- private static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " + ForumUser.class.getName() + " as f"
- + " where user_id=? and f.session.sessionId=?";
-
- private static final String SQL_QUERY_FIND_BY_USER_ID = "from " + ForumUser.class.getName() + " as f"
- + " where user_id=? and session_id is null";
-
- private static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " +
- ForumUser.class.getName() + " as f " +
- " where f.session.sessionId=?";
+ private static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " + ForumUser.class.getName() + " as f"
+ + " where user_id=? and f.session.sessionId=?";
+ private static final String SQL_QUERY_FIND_BY_USER_ID = "from " + ForumUser.class.getName() + " as f"
+ + " where user_id=? and session_id is null";
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumUserDAO#getBySessionId(java.lang.Long)
- */
- @Override
- public List getBySessionId(Long sessionID) {
- return this.doFind(SQL_QUERY_FIND_BY_SESSION_ID, sessionID);
+ private static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " + ForumUser.class.getName() + " as f "
+ + " where f.session.sessionId=?";
+
+ private static final String SQL_QUERY_FIND_BY_SESSION_AND_QUESTION_LIMIT = "from user in class ForumUser "
+ + "where user.session.sessionId=:sessionId order by ";
+
+ private static final String SQL_QUERY_FIND_BY_SESSION_LIMIT_ORDER_BY_NUM_POSTS = "SELECT user FROM "
+ + Message.class.getName() + " as message " + " RIGHT JOIN message.createdBy as user "
+ + " WHERE user.session.sessionId=:sessionId GROUP BY user.userId ORDER BY ";
+
+ private static final String GET_COUNT_RESPONSES_FOR_SESSION_AND_QUESTION = "SELECT COUNT(*) from "
+ + ForumUser.class.getName() + " as user where user.session.sessionId=?";
+
+
+ @Override
+ public List getBySessionId(Long sessionID) {
+ return this.doFind(SQL_QUERY_FIND_BY_SESSION_ID, sessionID);
+ }
+
+ @Override
+ public void save(ForumUser forumUser) {
+ this.getSession().save(forumUser);
+ }
+
+ @Override
+ public ForumUser getByUserIdAndSessionId(Long userId, Long sessionId) {
+ List list = this.doFind(SQL_QUERY_FIND_BY_USER_ID_SESSION_ID, new Object[] { userId, sessionId });
+
+ if (list == null || list.isEmpty())
+ return null;
+
+ return (ForumUser) list.get(0);
+ }
+
+ @Override
+ public ForumUser getByUserId(Long userId) {
+ List list = this.doFind(SQL_QUERY_FIND_BY_USER_ID, userId);
+
+ if (list == null || list.isEmpty())
+ return null;
+
+ return (ForumUser) list.get(0);
+ }
+
+ @Override
+ public ForumUser getByUid(Long userUid) {
+ return (ForumUser) this.getSession().get(ForumUser.class, userUid);
+ }
+
+ @Override
+ public List getUsersForTablesorter(final Long sessionId, int page, int size, int sorting) {
+ String sortingOrder = "";
+ switch (sorting) {
+ case ForumConstants.SORT_BY_NO:
+ sortingOrder = "user.lastName";
+ break;
+ case ForumConstants.SORT_BY_USER_NAME_ASC:
+ sortingOrder = "user.lastName ASC, user.firstName ASC";
+ break;
+ case ForumConstants.SORT_BY_USER_NAME_DESC:
+ sortingOrder = "user.lastName DESC, user.firstName DESC";
+ break;
+ case ForumConstants.SORT_BY_LAST_POSTING_ASC:
+ sortingOrder = " MAX(message.created) ASC";
+ break;
+ case ForumConstants.SORT_BY_LAST_POSTING_DESC:
+ sortingOrder = " MAX(message.created) DESC";
+ break;
+ case ForumConstants.SORT_BY_NUMBER_OF_POSTS_ASC:
+ sortingOrder = " COUNT(message) ASC";
+ break;
+ case ForumConstants.SORT_BY_NUMBER_OF_POSTS_DESC:
+ sortingOrder = " COUNT(message) DESC";
+ break;
}
-
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumUserDAO#save(org.lamsfoundation.lams.tool.forum.persistence.ForumUser)
- */
- @Override
- public void save(ForumUser forumUser){
- this.getSession().save(forumUser);
- }
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumUserDAO#getByUserIdAndSessionId(java.lang.Long, java.lang.Long)
- */
- @Override
- public ForumUser getByUserIdAndSessionId(Long userId, Long sessionId) {
- List list = this.doFind(SQL_QUERY_FIND_BY_USER_ID_SESSION_ID
- , new Object[]{userId,sessionId});
-
- if(list == null || list.isEmpty())
- return null;
-
- return (ForumUser) list.get(0);
- }
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumUserDAO#getByUserId(java.lang.Long)
- */
- @Override
- public ForumUser getByUserId(Long userId) {
- List list = this.doFind(SQL_QUERY_FIND_BY_USER_ID, userId);
-
- if(list == null || list.isEmpty())
- return null;
-
- return (ForumUser) list.get(0);
+ if (sorting == ForumConstants.SORT_BY_NUMBER_OF_POSTS_ASC
+ || sorting == ForumConstants.SORT_BY_NUMBER_OF_POSTS_DESC) {
+
+ List list = getSession().createQuery(SQL_QUERY_FIND_BY_SESSION_LIMIT_ORDER_BY_NUM_POSTS + sortingOrder)
+ .setLong("sessionId", sessionId.longValue()).setFirstResult(page * size).setMaxResults(size).list();
+ return list;
+
+ } else if (sorting == ForumConstants.SORT_BY_LAST_POSTING_ASC
+ || sorting == ForumConstants.SORT_BY_LAST_POSTING_DESC) {
+
+ List list = getSession().createQuery(SQL_QUERY_FIND_BY_SESSION_LIMIT_ORDER_BY_NUM_POSTS + sortingOrder)
+ .setLong("sessionId", sessionId.longValue()).setFirstResult(page * size).setMaxResults(size).list();
+
+ return list;
+
+ } else {
+
+ return getSession().createQuery(SQL_QUERY_FIND_BY_SESSION_AND_QUESTION_LIMIT + sortingOrder)
+ .setLong("sessionId", sessionId.longValue()).setFirstResult(page * size).setMaxResults(size).list();
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumUserDAO#getByUid(java.lang.Long)
- */
- @Override
- public ForumUser getByUid(Long userUid) {
-
- return (ForumUser) this.getSession().get(ForumUser.class,userUid);
- }
+ }
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IForumUserDAO#delete(org.lamsfoundation.lams.tool.forum.persistence.ForumUser)
- */
- @Override
- public void delete(ForumUser user) {
- this.getSession().delete(user);
+ @Override
+ public int getCountUsersBySession(final Long sessionId) {
+ List list = this.doFind(GET_COUNT_RESPONSES_FOR_SESSION_AND_QUESTION,
+ new Object[] { sessionId });
+ if (list == null || list.size() == 0) {
+ return 0;
}
+ return ((Number) list.get(0)).intValue();
+ }
+ @Override
+ public void delete(ForumUser user) {
+ this.delete(user);
+ }
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/MessageDao.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/Attic/MessageDao.java,v
diff -u -r1.1.2.1 -r1.1.2.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/MessageDao.java 1 Dec 2014 22:06:07 -0000 1.1.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/hibernate/MessageDao.java 19 Jan 2015 21:34:30 -0000 1.1.2.2
@@ -55,88 +55,57 @@
+ Message.class.getName() + " m "
+ " where m.createdBy.userId=? and m.toolSession.sessionId=? and m.isAuthored = false";
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#saveOrUpdate(org.lamsfoundation.lams.tool.forum.persistence.Message)
- */
@Override
- public void saveOrUpdate(Message message) {
+ public void saveOrUpdate(Message message) {
this.getSession().saveOrUpdate(message);
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#update(org.lamsfoundation.lams.tool.forum.persistence.Message)
- */
@Override
- public void update(Message message) {
+ public void update(Message message) {
this.getSession().saveOrUpdate(message);
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#getById(java.lang.Long)
- */
@Override
- public Message getById(Long messageId) {
+ public Message getById(Long messageId) {
return (Message) getSession().get(Message.class, messageId);
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#getRootTopics(java.lang.Long)
- */
@Override
- public List getRootTopics(Long sessionId) {
- return this.doFind(SQL_QUERY_FIND_ROOT_TOPICS, sessionId);
+ public List getRootTopics(Long sessionId) {
+ return (List) this.doFind(SQL_QUERY_FIND_ROOT_TOPICS, sessionId);
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#getTopicsFromAuthor(java.lang.Long)
- */
@Override
- public List getTopicsFromAuthor(Long forumUid) {
- return this.doFind(SQL_QUERY_FIND_TOPICS_FROM_AUTHOR, forumUid);
+ public List getTopicsFromAuthor(Long forumUid) {
+ return (List) this.doFind(SQL_QUERY_FIND_TOPICS_FROM_AUTHOR, forumUid);
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#delete(java.lang.Long)
- */
@Override
- public void delete(Long uid) {
+ public void delete(Long uid) {
Message msg = getById(uid);
if (msg != null) {
this.getSession().delete(msg);
}
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#getChildrenTopics(java.lang.Long)
- */
@Override
- public List getChildrenTopics(Long parentId) {
- return this.doFind(SQL_QUERY_FIND_CHILDREN, parentId);
+ public List getChildrenTopics(Long parentId) {
+ return (List) this.doFind(SQL_QUERY_FIND_CHILDREN, parentId);
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#getByUserAndSession(java.lang.Long, java.lang.Long)
- */
@Override
- public List getByUserAndSession(Long userUid, Long sessionId) {
- return this.doFind(SQL_QUERY_BY_USER_SESSION, new Object[] { userUid, sessionId });
+ public List getByUserAndSession(Long userUid, Long sessionId) {
+ return (List) this.doFind(SQL_QUERY_BY_USER_SESSION, new Object[] { userUid, sessionId });
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#getBySession(java.lang.Long)
- */
@Override
- public List getBySession(Long sessionId) {
- return this.doFind(SQL_QUERY_BY_SESSION, sessionId);
+ public List getBySession(Long sessionId) {
+ return (List) this.doFind(SQL_QUERY_BY_SESSION, sessionId);
}
- /* (non-Javadoc)
- * @see org.lamsfoundation.lams.tool.forum.persistence.hibernate.IMessageDAO#getTopicsNum(java.lang.Long, java.lang.Long)
- */
- @Override
- public int getTopicsNum(Long userID, Long sessionId) {
- List list = this.doFind(SQL_QUERY_TOPICS_NUMBER_BY_USER_SESSION,
- new Object[] { userID, sessionId });
+ @Override
+ public int getTopicsNum(Long userID, Long sessionId) {
+ List list = this.doFind(SQL_QUERY_TOPICS_NUMBER_BY_USER_SESSION, new Object[] { userID, sessionId });
if (list != null && list.size() > 0)
return ((Number) list.get(0)).intValue();
else
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.126.2.4 -r1.126.2.5
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 30 Dec 2014 09:44:07 -0000 1.126.2.4
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 19 Jan 2015 21:34:30 -0000 1.126.2.5
@@ -432,6 +432,16 @@
public ForumUser getUserByUserAndSession(Long userId, Long sessionId) {
return forumUserDao.getByUserIdAndSessionId(userId, sessionId);
}
+
+ @Override
+ public List getUsersForTablesorter(final Long sessionId, int page, int size, int sorting) {
+ return forumUserDao.getUsersForTablesorter(sessionId, page, size, sorting);
+ }
+
+ @Override
+ public int getCountUsersBySession(Long sessionId) {
+ return forumUserDao.getCountUsersBySession(sessionId);
+ }
@Override
public void createUser(ForumUser forumUser) {
@@ -470,18 +480,18 @@
}
@Override
- public List getSessionsByContentId(Long contentID) {
+ public List getSessionsByContentId(Long contentID) {
return forumToolSessionDao.getByContentId(contentID);
}
@Override
- public List getUsersBySessionId(Long sessionID) {
+ public List getUsersBySessionId(Long sessionID) {
return forumUserDao.getBySessionId(sessionID);
}
@Override
- public List getMessagesByUserUid(Long userId, Long sessionId) {
- List list = messageDao.getByUserAndSession(userId, sessionId);
+ public List getMessagesByUserUid(Long userId, Long sessionId) {
+ List list = messageDao.getByUserAndSession(userId, sessionId);
return MessageDTO.getMessageDTO(list);
}
@@ -494,8 +504,8 @@
@Override
public void releaseMarksForSession(Long sessionID) {
// udate release mark date for each message.
- List list = messageDao.getBySession(sessionID);
- Iterator iter = list.iterator();
+ List list = messageDao.getBySession(sessionID);
+ Iterator iter = list.iterator();
ForumToolSession session = forumToolSessionDao.getBySessionId(sessionID);
Forum forum = session.getForum();
boolean notifyLearnersOnMarkRelease = getEventNotificationService().eventExists(ForumConstants.TOOL_SIGNATURE,
@@ -508,7 +518,7 @@
}
while (iter.hasNext()) {
- Message msg = (Message) iter.next();
+ Message msg = iter.next();
ForumReport report = msg.getReport();
if (report != null) {
report.setDateMarksReleased(new Date());
@@ -1095,6 +1105,7 @@
return content;
}
+ @Override
public List getAllTopicsFromSession(Long sessionID) {
return MessageDTO.getMessageDTO(messageDao.getBySession(sessionID));
}
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.53 -r1.53.2.1
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 19 Feb 2014 21:27:43 -0000 1.53
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 19 Jan 2015 21:34:30 -0000 1.53.2.1
@@ -25,7 +25,6 @@
package org.lamsfoundation.lams.tool.forum.service;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
import org.apache.struts.upload.FormFile;
@@ -36,12 +35,10 @@
import org.lamsfoundation.lams.tool.forum.persistence.Attachment;
import org.lamsfoundation.lams.tool.forum.persistence.Forum;
import org.lamsfoundation.lams.tool.forum.persistence.ForumCondition;
-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;
import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException;
-import org.lamsfoundation.lams.tool.forum.persistence.Timestamp;
import org.lamsfoundation.lams.util.audit.IAuditService;
/**
@@ -86,6 +83,10 @@
* @throws PersistenceException
*/
Forum getForumByContentId(Long contentID) throws PersistenceException;
+
+ List getUsersForTablesorter(final Long sessionId, int page, int size, int sorting);
+
+ int getCountUsersBySession(Long sessionId);
// ************************************************************************************
// Topic Method
@@ -221,7 +222,7 @@
* @param userId
* @return
*/
- List getMessagesByUserUid(Long userId, Long sessionId);
+ List getMessagesByUserUid(Long userId, Long sessionId);
/**
* Get how many post of this user post in a special session. DOES NOT include posts from author.
@@ -258,7 +259,7 @@
* @param contentID
* @return List
*/
- List getSessionsByContentId(Long contentID);
+ List getSessionsByContentId(Long contentID);
/**
* Get all message according to the given session ID.
@@ -292,7 +293,7 @@
* @param sessionID
* @return
*/
- List getUsersBySessionId(Long sessionID);
+ List getUsersBySessionId(Long sessionID);
/**
* Get user by uid
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.61.2.1 -r1.61.2.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 30 Dec 2014 09:44:07 -0000 1.61.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 19 Jan 2015 21:34:30 -0000 1.61.2.2
@@ -33,6 +33,14 @@
public static final String TOOL_SIGNATURE = "lafrum11";
public static final String TOOL_CONTENT_HANDLER_NAME = "forumToolContentHandler";
+
+ public static final int SORT_BY_NO = 0;
+ public static final int SORT_BY_USER_NAME_ASC = 1;
+ public static final int SORT_BY_USER_NAME_DESC = 2;
+ public static final int SORT_BY_LAST_POSTING_ASC = 3;
+ public static final int SORT_BY_LAST_POSTING_DESC = 4;
+ public static final int SORT_BY_NUMBER_OF_POSTS_ASC = 5;
+ public static final int SORT_BY_NUMBER_OF_POSTS_DESC = 6;
// See LDEV652
// For old style (Fiona's description): The oldest topic is at the top, does not depends the reply date etc.
@@ -93,13 +101,15 @@
public static final String DELETED_AUTHORING_TOPICS_LIST = "deletedAuthoringTopicList";
- public static final String USER_UID = "userID";
+ public static final String USER_UID = "userUid";
public static final String ATTR_FINISHED_LOCK = "finishedLock";
public static final String ATTR_USER_FINISHED = "userFinished";
public static final String ATTR_UPLOAD_MAX_FILE_SIZE = "uploadMaxFileSize";
+
+ public static final String ATTR_SESSION_DTOS = "sessionDtos";
// for submission deadline
@@ -128,7 +138,7 @@
public static final String ATTR_USER_UID = "userUid";
- public static final String ATTR_REPORT = "report";
+ public static final String ATTR_MESSAGES = "messages";
public static final String PARAM_UPDATE_MODE = "updateMode";
@@ -163,8 +173,6 @@
public static final String ATTR_MAXIMUM_REPLY = "maximumReply";
- public static final String MARK_UPDATE_FROM_SESSION = "listAllMarks";
-
public static final String MARK_UPDATE_FROM_USER = "listMarks";
public static final String MARK_UPDATE_FROM_FORUM = "viewForum";
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumUserComparator.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/MessageDTOByDateComparator.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/MessageDtoComparator.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/MessageDtoComparator.java,v
diff -u -r1.1 -r1.1.4.1
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/MessageDtoComparator.java 23 Mar 2010 15:30:02 -0000 1.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/MessageDtoComparator.java 19 Jan 2015 21:34:30 -0000 1.1.4.1
@@ -35,9 +35,7 @@
*/
public class MessageDtoComparator implements Comparator {
- /**
- * {@inheritDoc}
- */
+ @Override
public int compare(MessageDTO o1, MessageDTO o2) {
if (o1 != null && o2 != null) {
return o1.getMessage().getSequenceId() - o2.getMessage().getSequenceId();
Fisheye: Tag 1.1.2.1 refers to a dead (removed) revision in file `lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/SessionDTOComparator.java'.
Fisheye: No comparison available. Pass `N' to diff?
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.46 -r1.46.2.1
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 6 Jan 2012 16:35:08 -0000 1.46
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 19 Jan 2015 21:34:30 -0000 1.46.2.1
@@ -29,8 +29,8 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
@@ -41,10 +41,12 @@
import java.util.TreeMap;
import java.util.TreeSet;
+import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
@@ -59,19 +61,25 @@
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionRedirect;
import org.apache.struts.config.ForwardConfig;
+import org.apache.tomcat.util.json.JSONArray;
+import org.apache.tomcat.util.json.JSONException;
+import org.apache.tomcat.util.json.JSONObject;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
import org.lamsfoundation.lams.tool.forum.dto.MessageDTO;
import org.lamsfoundation.lams.tool.forum.dto.SessionDTO;
-import org.lamsfoundation.lams.tool.forum.dto.UserDTO;
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;
import org.lamsfoundation.lams.tool.forum.service.IForumService;
import org.lamsfoundation.lams.tool.forum.util.ForumConstants;
+import org.lamsfoundation.lams.tool.forum.util.ForumUserComparator;
import org.lamsfoundation.lams.tool.forum.util.ForumWebUtils;
+import org.lamsfoundation.lams.tool.forum.util.MessageDTOByDateComparator;
+import org.lamsfoundation.lams.tool.forum.util.MessageDtoComparator;
+import org.lamsfoundation.lams.tool.forum.util.SessionDTOComparator;
import org.lamsfoundation.lams.tool.forum.web.forms.ForumForm;
import org.lamsfoundation.lams.tool.forum.web.forms.MarkForm;
import org.lamsfoundation.lams.util.DateUtil;
@@ -90,42 +98,6 @@
private IForumService forumService;
- private class SessionDTOComparator implements Comparator {
- public int compare(SessionDTO o1, SessionDTO o2) {
- if (o1 != null && o2 != null) {
- return o1.getSessionName().compareTo(o2.getSessionName());
- } else if (o1 != null) {
- return 1;
- } else {
- return -1;
- }
- }
- }
-
- private class ForumUserComparator implements Comparator {
- public int compare(ForumUser o1, ForumUser o2) {
- if (o1 != null && o2 != null) {
- return o1.getLoginName().compareTo(o2.getLoginName());
- } else if (o1 != null) {
- return 1;
- } else {
- return -1;
- }
- }
- }
-
- private class UserDTOComparator implements Comparator {
- public int compare(UserDTO o1, UserDTO o2) {
- if (o1 != null && o2 != null) {
- return o1.getLoginName().compareTo(o2.getLoginName());
- } else if (o1 != null) {
- return 1;
- } else {
- return -1;
- }
- }
- }
-
/**
* Action method entry.
*/
@@ -137,14 +109,15 @@
if (param.equals("init")) {
return init(mapping, form, request, response);
}
- //refresh statistic page by Ajax call.
+ // refresh statistic page by Ajax call.
if (param.equals("statistic")) {
return statistic(mapping, form, request, response);
}
- // ***************** Marks Functions ********************
- if (param.equals("viewAllMarks")) {
- return viewAllMarks(mapping, form, request, response);
+ if (param.equals("getUsers")) {
+ return getUsers(mapping, form, request, response);
}
+
+ // ***************** Marks Functions ********************
if (param.equals("downloadMarks")) {
return downloadMarks(mapping, form, request, response);
}
@@ -170,10 +143,6 @@
return viewTopicTree(mapping, form, request, response);
}
- if (param.equals("viewReflection")) {
- return viewReflection(mapping, form, request, response);
- }
-
// **************** Date restriction *****************
if (param.equals("setSubmissionDeadline")) {
return setSubmissionDeadline(mapping, form, request, response);
@@ -188,7 +157,7 @@
private ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
- //set back tool content ID
+ // set back tool content ID
String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID);
request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, contentFolderID);
@@ -201,14 +170,13 @@
summary(request);
viewInstructions(request);
viewActivity(request);
- statistic(request);
+ // statistic(request);
return mapping.findForward("load");
}
/**
- * The initial method for monitoring. List all users according to given
- * Content ID.
+ * The initial method for monitoring. List all users according to given Content ID.
*
* @param mapping
* @param form
@@ -217,80 +185,162 @@
* @return
*/
private void summary(HttpServletRequest request) {
- Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID));
-
+ Long toolContentId = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID));
forumService = getForumService();
-
- // get session from shared session.
- HttpSession ss = SessionManager.getSession();
-
- List sessionsList = forumService.getSessionsByContentId(toolContentID);
- // A forum clone required for listing the advanced options LDEV-1662
- Forum forumClone = null;
+ // create sessionMap
+ SessionMap sessionMap = new SessionMap();
+ request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap);
+ request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
+ Forum forum = forumService.getForumByContentId(toolContentId);
+ sessionMap.put("forum", forum);
+
+ List sessions = forumService.getSessionsByContentId(toolContentId);
+
+ Set sessionDtos = new TreeSet(new SessionDTOComparator());
+ // build a map with all users in the forumSessionList
+ for (ForumToolSession session : sessions) {
+ Long sessionId = session.getSessionId();
+ SessionDTO sessionDto = new SessionDTO();
+
+ sessionDto.setSessionID(sessionId);
+ sessionDto.setSessionName(session.getSessionName());
+
+ // used for storing data for MonitoringAction.getUsers() serving tablesorter paging
+ List topics = forumService.getAllTopicsFromSession(sessionId);
+ Map> topicsByUser = getTopicsSortedByAuthor(topics);
+ sessionDto.setTopicsByUser(topicsByUser);
+
+ sessionDtos.add(sessionDto);
+ }
+ sessionMap.put(ForumConstants.ATTR_SESSION_DTOS, sessionDtos);
+
// check if there is submission deadline
- Date submissionDeadline = forumService.getForumByContentId(toolContentID).getSubmissionDeadline();
-
+ Date submissionDeadline = forum.getSubmissionDeadline();
if (submissionDeadline != null) {
- org.lamsfoundation.lams.usermanagement.dto.UserDTO learnerDto = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss.getAttribute(AttributeNames.USER);
- TimeZone learnerTimeZone = learnerDto.getTimeZone();
- Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, submissionDeadline);
- request.setAttribute(ForumConstants.ATTR_SUBMISSION_DEADLINE, tzSubmissionDeadline.getTime());
+ HttpSession ss = SessionManager.getSession();
+ org.lamsfoundation.lams.usermanagement.dto.UserDTO learnerDto = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss
+ .getAttribute(AttributeNames.USER);
+ TimeZone learnerTimeZone = learnerDto.getTimeZone();
+ Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, submissionDeadline);
+ sessionMap.put(ForumConstants.ATTR_SUBMISSION_DEADLINE, tzSubmissionDeadline.getTime());
}
-
-
- Map sessionUsersMap = new TreeMap(this.new SessionDTOComparator());
- // build a map with all users in the forumSessionList
- Iterator it = sessionsList.iterator();
- while (it.hasNext()) {
- SessionDTO sessionDto = new SessionDTO();
- ForumToolSession fts = (ForumToolSession) it.next();
- boolean hasReflection = fts.getForum().isReflectOnActivity();
- if (forumClone == null) {
- forumClone = (Forum) fts.getForum().clone();
- request.setAttribute("forum", forumClone);
+ boolean isGroupedActivity = forumService.isGroupedActivity(toolContentId);
+ sessionMap.put("isGroupedActivity", isGroupedActivity);
+ }
+
+ /**
+ * Refreshes user list.
+ */
+ public ActionForward getUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse res) throws IOException, ServletException, JSONException {
+ forumService = getForumService();
+ String sessionMapId = WebUtil.readStrParam(request, ForumConstants.ATTR_SESSION_MAP_ID);
+ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(
+ sessionMapId);
+
+ // teacher timezone
+ HttpSession ss = SessionManager.getSession();
+ org.lamsfoundation.lams.usermanagement.dto.UserDTO teacher = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss
+ .getAttribute(AttributeNames.USER);
+ TimeZone teacherTimeZone = teacher.getTimeZone();
+
+ Long sessionId = WebUtil.readLongParam(request, "sessionId");
+
+ // paging parameters of tablesorter
+ int size = WebUtil.readIntParam(request, "size");
+ int page = WebUtil.readIntParam(request, "page");
+ Integer isSort1 = WebUtil.readIntParam(request, "column[0]", true);
+ Integer isSort2 = WebUtil.readIntParam(request, "column[1]", true);
+ Integer isSort3 = WebUtil.readIntParam(request, "column[2]", true);
+
+ int sorting = ForumConstants.SORT_BY_NO;
+ if ((isSort1 != null) && isSort1.equals(0)) {
+ sorting = ForumConstants.SORT_BY_USER_NAME_ASC;
+
+ } else if ((isSort1 != null) && isSort1.equals(1)) {
+ sorting = ForumConstants.SORT_BY_USER_NAME_DESC;
+
+ } else if ((isSort2 != null) && isSort2.equals(0)) {
+ sorting = ForumConstants.SORT_BY_LAST_POSTING_ASC;
+
+ } else if ((isSort2 != null) && isSort2.equals(1)) {
+ sorting = ForumConstants.SORT_BY_LAST_POSTING_DESC;
+
+ } else if ((isSort3 != null) && isSort3.equals(0)) {
+ sorting = ForumConstants.SORT_BY_NUMBER_OF_POSTS_ASC;
+
+ } else if ((isSort3 != null) && isSort3.equals(1)) {
+ sorting = ForumConstants.SORT_BY_NUMBER_OF_POSTS_DESC;
+ }
+
+ Set sessionDtos = (Set) sessionMap.get(ForumConstants.ATTR_SESSION_DTOS);
+ SessionDTO currentSessionDto = null;
+ for (SessionDTO sessionDto : sessionDtos) {
+ if (sessionDto.getSessionID().equals(sessionId)) {
+ currentSessionDto = sessionDto;
+ break;
}
+ }
+ Map> topicsByUser = currentSessionDto.getTopicsByUser();
- sessionDto.setSessionID(fts.getSessionId());
- sessionDto.setSessionName(fts.getSessionName());
- List userList = forumService.getUsersBySessionId(fts.getSessionId());
+ List users = forumService.getUsersForTablesorter(sessionId, page, size, sorting);
- //sort and create DTO list
- List topicList = forumService.getAllTopicsFromSession(fts.getSessionId());
- Map topicsByUser = getTopicsSortedByAuthor(topicList);
+ JSONArray rows = new JSONArray();
- Set dtoList = new TreeSet(this.new UserDTOComparator());
- Iterator iter = userList.iterator();
- while (iter.hasNext()) {
- ForumUser user = (ForumUser) iter.next();
- UserDTO userDTO = new UserDTO(user);
- userDTO.setHasRefection(hasReflection);
+ JSONObject responcedata = new JSONObject();
+ responcedata.put("total_rows", forumService.getCountUsersBySession(sessionId));
- userDTO.setAnyPostsMarked(false);
- userDTO.setNoOfPosts(0);
+ for (ForumUser user : users) {
- List messages = (List) topicsByUser.get(user);
- if (messages != null && messages.size() > 0) {
- userDTO.setNoOfPosts(messages.size());
- for (MessageDTO message : messages) {
- if (message.getMark() != null) {
- userDTO.setAnyPostsMarked(true);
- break;
- }
+ JSONObject responseRow = new JSONObject();
+ responseRow.put(ForumConstants.ATTR_USER_UID, user.getUid());
+ responseRow.put("userName", StringEscapeUtils.escapeHtml(user.getLastName() + " " + user.getFirstName()));
+
+ int numberOfPosts = 0;
+ boolean isAnyPostsMarked = false;
+ if (topicsByUser.get(user) != null) {
+
+ // sort messages by date
+ TreeSet messages = new TreeSet(new MessageDTOByDateComparator());
+ messages.addAll(topicsByUser.get(user));
+
+ MessageDTO lastMessage = messages.last();
+
+ // format lastEdited date
+ Date lastMessageDate = lastMessage.getMessage().getCreated();
+ lastMessageDate = DateUtil.convertToTimeZoneFromDefault(teacherTimeZone, lastMessageDate);
+ DateFormat dateFormatter = new SimpleDateFormat("d MMMM yyyy h:mm:ss a");
+ responseRow.put("lastMessageDate", dateFormatter.format(lastMessageDate));
+
+ numberOfPosts = messages.size();
+ for (MessageDTO message : messages) {
+ if (message.getMark() != null) {
+ isAnyPostsMarked = true;
+ break;
}
}
- dtoList.add(userDTO);
}
+ responseRow.put("anyPostsMarked", isAnyPostsMarked);
+ responseRow.put("numberOfPosts", numberOfPosts);
- sessionUsersMap.put(sessionDto, dtoList);
- }
+ Forum forum = (Forum) sessionMap.get("forum");
+ if (forum.isReflectOnActivity()) {
+ NotebookEntry notebookEntry = forumService.getEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL,
+ ForumConstants.TOOL_SIGNATURE, user.getUserId().intValue());
- boolean isGroupedActivity = forumService.isGroupedActivity(toolContentID);
- request.setAttribute("isGroupedActivity", isGroupedActivity);
- // request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID,sessionID);
- request.setAttribute("sessionUserMap", sessionUsersMap);
+ String reflection = (notebookEntry == null) ? null : notebookEntry.getEntry();
+ responseRow.put("notebookEntry", StringEscapeUtils.escapeHtml(reflection));
+ }
+
+ rows.put(responseRow);
+ }
+ responcedata.put("rows", rows);
+ res.setContentType("application/json;charset=utf-8");
+ res.getWriter().print(new String(responcedata.toString()));
+ return null;
}
/**
@@ -370,7 +420,7 @@
cell.setCellValue(DateFormat.getInstance().format(dto.getMessage().getCreated()));
cell = row.createCell(idx++);
-
+
if (dto.getMessage() != null && dto.getMessage().getReport() != null
&& dto.getMessage().getReport().getMark() != null) {
cell.setCellValue(NumberUtil.formatLocalisedNumber(dto.getMessage().getReport().getMark(),
@@ -420,7 +470,7 @@
*/
private void viewActivity(HttpServletRequest request) {
Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID));
-
+
forumService = getForumService();
Forum forum = forumService.getForumByContentId(toolContentID);
String title = forum.getTitle();
@@ -462,7 +512,7 @@
statistic(request);
return mapping.findForward("success");
}
-
+
/**
* Performs all necessary actions for showing statistic page.
*
@@ -472,7 +522,7 @@
Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID));
forumService = getForumService();
- Map sessionTopicsMap = new TreeMap>(this.new SessionDTOComparator());
+ Map sessionTopicsMap = new TreeMap>(new SessionDTOComparator());
Map sessionAvaMarkMap = new HashMap();
Map sessionTotalMsgMap = new HashMap();
@@ -542,32 +592,6 @@
return mapping.findForward("success");
}
- private ActionForward viewReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) {
-
- Long uid = WebUtil.readLongParam(request, ForumConstants.ATTR_USER_UID);
- Long sessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID);
-
- ForumUser user = forumService.getUser(uid);
- NotebookEntry notebookEntry = forumService.getEntry(sessionID, CoreNotebookConstants.NOTEBOOK_TOOL,
- ForumConstants.TOOL_SIGNATURE, user.getUserId().intValue());
-
- ForumToolSession session = forumService.getSessionBySessionId(sessionID);
-
- UserDTO userDTO = new UserDTO(user);
- if (notebookEntry == null) {
- userDTO.setFinishReflection(false);
- userDTO.setReflect(null);
- } else {
- userDTO.setFinishReflection(true);
- userDTO.setReflect(notebookEntry.getEntry());
- }
- userDTO.setReflectInstrctions(session.getForum().getReflectInstructions());
-
- request.setAttribute("userDTO", userDTO);
- return mapping.findForward("success");
- }
-
/**
* View topic subject, content and attachement.
*
@@ -591,7 +615,7 @@
private ActionForward releaseMark(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
- //get service then update report table
+ // get service then update report table
forumService = getForumService();
Long sessionID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID));
forumService.releaseMarksForSession(sessionID);
@@ -617,37 +641,6 @@
// ==========================================================================================
/**
- * View all user marks for a special Session ID
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return
- */
- private ActionForward viewAllMarks(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) {
- //only one param for session scope marks
- Long sessionID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID));
-
- //create sessionMap
- SessionMap sessionMap = new SessionMap();
- request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap);
- sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, sessionID);
- sessionMap.put(ForumConstants.PARAM_UPDATE_MODE, ForumConstants.MARK_UPDATE_FROM_SESSION);
-
- request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
-
- //get tool session scope topics
- forumService = getForumService();
- List topicList = forumService.getAllTopicsFromSession(sessionID);
-
- Map topicsByUser = getTopicsSortedByAuthor(topicList);
- request.setAttribute(ForumConstants.ATTR_REPORT, topicsByUser);
- return mapping.findForward("success");
- }
-
- /**
* View a special user's mark
*
* @param mapping
@@ -661,24 +654,23 @@
Long userUid = new Long(WebUtil.readLongParam(request, ForumConstants.USER_UID));
Long sessionId = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID));
- //create sessionMap
- SessionMap sessionMap = new SessionMap();
- request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap);
+ // create sessionMap
+ String sessionMapId = WebUtil.readStrParam(request, ForumConstants.ATTR_SESSION_MAP_ID);
+ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(
+ sessionMapId);
+ request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, sessionMapId);
sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId);
sessionMap.put(ForumConstants.PARAM_UPDATE_MODE, ForumConstants.MARK_UPDATE_FROM_USER);
- request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID());
- //get this user's all topics
+ // get this user's all topics
forumService = getForumService();
- List messageList = forumService.getMessagesByUserUid(userUid, sessionId);
+ List messages = forumService.getMessagesByUserUid(userUid, sessionId);
+ request.setAttribute(ForumConstants.ATTR_MESSAGES, messages);
+
ForumUser user = forumService.getUser(userUid);
+ request.setAttribute(ForumConstants.ATTR_USER, user);
- // each back to web page
- Map> report = new TreeMap(this.new ForumUserComparator());
- report.put(user, messageList);
- request.setAttribute(ForumConstants.ATTR_REPORT, report);
-
return mapping.findForward("success");
}
@@ -694,9 +686,10 @@
private ActionForward editMark(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
MarkForm markForm = (MarkForm) form;
- SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(markForm.getSessionMapID());
+ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(
+ markForm.getSessionMapID());
String updateMode = (String) sessionMap.get(ForumConstants.PARAM_UPDATE_MODE);
- //view forum mode
+ // view forum mode
if (StringUtils.isBlank(updateMode)) {
sessionMap.put(ForumConstants.PARAM_UPDATE_MODE, ForumConstants.MARK_UPDATE_FROM_FORUM);
sessionMap.put(ForumConstants.ATTR_ROOT_TOPIC_UID, markForm.getTopicID());
@@ -724,7 +717,7 @@
// Should we show the reflection or not? We shouldn't show it when the View Forum screen is accessed
// from the Monitoring Summary screen, but we should when accessed from the Learner Progress screen.
// Need to constantly past this value on, rather than hiding just the once, as the View Forum
- // screen has a refresh button. Need to pass it through the view topic screen and dependent screens
+ // screen has a refresh button. Need to pass it through the view topic screen and dependent screens
// as it has a link from the view topic screen back to View Forum screen.
boolean hideReflection = WebUtil.readBooleanParam(request, ForumConstants.ATTR_HIDE_REFLECTION, false);
sessionMap.put(ForumConstants.ATTR_HIDE_REFLECTION, hideReflection);
@@ -774,7 +767,7 @@
return mapping.getInputForward();
}
- //update message report
+ // update message report
forumService = getForumService();
ForumReport report = msg.getReport();
@@ -783,34 +776,27 @@
msg.setReport(report);
}
- SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(markForm.getSessionMapID());
+ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(
+ markForm.getSessionMapID());
Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID);
String updateMode = (String) sessionMap.get(ForumConstants.PARAM_UPDATE_MODE);
report.setMark(mark);
report.setComment(markForm.getComment());
forumService.updateContainedReport(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, ForumConstants.MARK_UPDATE_FROM_SESSION)) {
- List topicList = forumService.getAllTopicsFromSession(sessionId);
- Map topicsByUser = getTopicsSortedByAuthor(topicList);
- request.setAttribute(ForumConstants.ATTR_REPORT, topicsByUser);
- //listMark or listAllMark.
+ // 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, ForumConstants.MARK_UPDATE_FROM_USER)) {
+ List messages = forumService.getMessagesByUserUid(user.getUid(), sessionId);
+ request.setAttribute(ForumConstants.ATTR_MESSAGES, messages);
+ // listMark
return mapping.findForward("success");
-
- } else if (StringUtils.equals(updateMode, ForumConstants.MARK_UPDATE_FROM_USER)) {
- List messageList = forumService.getMessagesByUserUid(user.getUid(), 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");
-
- } else { //mark from view forum
- //display root topic rather than leaf one
+
+ } else { // mark from view forum
+ // display root topic rather than leaf one
Long rootTopicId = forumService.getRootTopicId(msg.getUid());
-
+
ForwardConfig redirectConfig = mapping.findForwardConfig("viewTopic");
ActionRedirect redirect = new ActionRedirect(redirectConfig);
redirect.addParameter(ForumConstants.ATTR_SESSION_MAP_ID, markForm.getSessionMapID());
@@ -820,7 +806,7 @@
}
}
-
+
/**
* Set Submission Deadline
*
@@ -833,16 +819,17 @@
public ActionForward setSubmissionDeadline(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
forumService = getForumService();
-
+
Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
Forum forum = forumService.getForumByContentId(contentID);
-
+
Long dateParameter = WebUtil.readLongParam(request, ForumConstants.ATTR_SUBMISSION_DEADLINE, true);
Date tzSubmissionDeadline = null;
if (dateParameter != null) {
Date submissionDeadline = new Date(dateParameter);
HttpSession ss = SessionManager.getSession();
- org.lamsfoundation.lams.usermanagement.dto.UserDTO teacher = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss.getAttribute(AttributeNames.USER);
+ org.lamsfoundation.lams.usermanagement.dto.UserDTO teacher = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss
+ .getAttribute(AttributeNames.USER);
TimeZone teacherTimeZone = teacher.getTimeZone();
tzSubmissionDeadline = DateUtil.convertFromTimeZoneToDefault(teacherTimeZone, submissionDeadline);
}
@@ -851,9 +838,7 @@
return null;
}
-
-
// ==========================================================================================
// Utility methods
// ==========================================================================================
@@ -873,26 +858,25 @@
}
/**
- * @param topicList
+ * @param topics
* @return
*/
- private Map getTopicsSortedByAuthor(List topicList) {
- Map> topicsByUser = new TreeMap(this.new ForumUserComparator());
- Iterator iter = topicList.iterator();
- forumService = getForumService();
- while (iter.hasNext()) {
- MessageDTO dto = (MessageDTO) iter.next();
- if (dto.getMessage().getIsAuthored()) {
+ private Map> getTopicsSortedByAuthor(List topics) {
+ Map> topicsByUser = new TreeMap>(
+ new ForumUserComparator());
+ for (MessageDTO topic : topics) {
+ if (topic.getMessage().getIsAuthored()) {
continue;
}
- dto.getMessage().getReport();
- ForumUser user = (ForumUser) dto.getMessage().getCreatedBy().clone();
- List list = topicsByUser.get(user);
- if (list == null) {
- list = new ArrayList();
- topicsByUser.put(user, list);
+ topic.getMessage().getReport();
+ ForumUser user = (ForumUser) topic.getMessage().getCreatedBy().clone();
+
+ List topicsByUserExist = topicsByUser.get(user);
+ if (topicsByUserExist == null) {
+ topicsByUserExist = new ArrayList();
+ topicsByUser.put(user, topicsByUserExist);
}
- list.add(dto);
+ topicsByUserExist.add(topic);
}
return topicsByUser;
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java,v
diff -u -r1.19.2.1 -r1.19.2.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java 30 Dec 2014 09:44:07 -0000 1.19.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java 19 Jan 2015 21:34:31 -0000 1.19.2.2
@@ -96,7 +96,6 @@
forum.setAllowEdit(false);
forum.setAllowAnonym(false);
forum.setAllowRichEditor(false);
- forum.setLimitedMinCharacters(false);
forum.setLimitedMaxCharacters(false);
forum.setLockWhenFinished(false);
forum.setAllowNewTopic(false);
Index: lams_tool_forum/web/WEB-INF/tiles-defs.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/WEB-INF/tiles-defs.xml,v
diff -u -r1.4.2.2 -r1.4.2.3
--- lams_tool_forum/web/WEB-INF/tiles-defs.xml 18 Oct 2014 21:17:12 -0000 1.4.2.2
+++ lams_tool_forum/web/WEB-INF/tiles-defs.xml 19 Jan 2015 21:34:30 -0000 1.4.2.3
@@ -106,41 +106,37 @@
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
Fisheye: Tag 1.2.2.1 refers to a dead (removed) revision in file `lams_tool_forum/web/jsps/monitoring/daterestriction.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_forum/web/jsps/monitoring/header.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/header.jsp,v
diff -u -r1.8 -r1.8.2.1
--- lams_tool_forum/web/jsps/monitoring/header.jsp 17 Jan 2014 21:42:44 -0000 1.8
+++ lams_tool_forum/web/jsps/monitoring/header.jsp 19 Jan 2015 21:34:30 -0000 1.8.2.1
@@ -23,8 +23,9 @@
selectTab(tabId);
//for statistic page change:
- if(tabId == 3)
- doStatistic();
+ if(tabId == 3) {
+ doStatistic();
+ }
}
function doStatistic(){
Index: lams_tool_forum/web/jsps/monitoring/monitoring.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/monitoring.jsp,v
diff -u -r1.6 -r1.6.2.1
--- lams_tool_forum/web/jsps/monitoring/monitoring.jsp 17 Jan 2014 21:42:44 -0000 1.6
+++ lams_tool_forum/web/jsps/monitoring/monitoring.jsp 19 Jan 2015 21:34:30 -0000 1.6.2.1
@@ -1,5 +1,8 @@
<%@ include file="/common/taglibs.jsp"%>
<%@ page import="org.lamsfoundation.lams.tool.forum.util.ForumConstants"%>
+
+
+