Index: lams_tool_forum/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8 -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8) +++ lams_tool_forum/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -182,6 +182,11 @@ parameter="viewTopicNext" scope="request"> + + + + + + ? and message_level = 1"; private static final String SQL_QUERY_FIND_NEXT_THREAD_MESSAGES = "from " + MessageSeq.class.getName() + " where root_message_uid = ? and thread_message_uid = ? and message_level > 1"; + private static final String SQL_QUERY_GET_COMPLETE_THREAD = "from " + MessageSeq.class.getName() + + " where thread_message_uid = ?"; private static final String SQL_QUERY_NUM_POSTS_BY_TOPIC = "select count(*) from " + MessageSeq.class.getName() + " ms where ms.message.createdBy.userId=? and ms.message.isAuthored = false and ms.rootMessage.uid=?"; @@ -59,7 +61,11 @@ return this.getHibernateTemplate().find(SQL_QUERY_FIND_COMPLETE_TOPIC, rootTopicId); } - public List getThreadByThreadId(final Long rootTopicId, final Long previousThreadMessageId) { + public List getThreadByThreadId(final Long threadMessageId) { + return this.getHibernateTemplate().find(SQL_QUERY_GET_COMPLETE_THREAD, new Object[] { threadMessageId }); + } + + public List getNextThreadByThreadId(final Long rootTopicId, final Long previousThreadMessageId) { HibernateTemplate template = this.getHibernateTemplate(); template.setMaxResults(1); List list = template.find(SQL_QUERY_FIND_NEXT_THREAD_TOP, new Object[] { rootTopicId, previousThreadMessageId }); Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== diff -u -rd1d67f1b78f727b780453c5feb3a304af7e51e35 -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision d1d67f1b78f727b780453c5feb3a304af7e51e35) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -332,7 +332,7 @@ } @Override - public Message replyTopic(Long parentId, Long sessionId, Message replyMessage) throws PersistenceException { + public MessageSeq replyTopic(Long parentId, Long sessionId, Message replyMessage) throws PersistenceException { // set parent Message parent = this.getMessage(parentId); replyMessage.setParent(parent); @@ -374,7 +374,7 @@ root.setReplyNumber(root.getReplyNumber() + 1); messageDao.saveOrUpdate(root); - return replyMessage; + return msgSeq; } @Override @@ -425,7 +425,7 @@ do { - List msgSeqs = messageSeqDao.getThreadByThreadId(rootTopicId, lastThreadMessageUid); + List msgSeqs = messageSeqDao.getNextThreadByThreadId(rootTopicId, lastThreadMessageUid); if ( msgSeqs.size() == 0 ) { // no more to come from db foundEnough = true; @@ -450,6 +450,19 @@ } @Override + public List getThread( Long threadId ) { + List msgSeqs = messageSeqDao.getThreadByThreadId(threadId); + SortedMap map = new TreeMap(new TopicComparator()); + Iterator iter = msgSeqs.iterator(); + while ( iter.hasNext() ) { + MessageSeq msgSeq = ( MessageSeq) iter.next(); + map.put(msgSeq, msgSeq.getMessage()); + }; + return getSortedMessageDTO(map); + } + + + @Override public List getRootTopics(Long sessionId) { ForumToolSession session = getSessionBySessionId(sessionId); if (session == null || session.getForum() == null) { Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java =================================================================== diff -u -r72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8 -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java (.../IForumService.java) (revision 72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java (.../IForumService.java) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -38,6 +38,7 @@ 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.MessageSeq; import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException; import org.lamsfoundation.lams.util.audit.IAuditService; @@ -148,7 +149,7 @@ * @return * @throws PersistenceException */ - Message replyTopic(Long parentId, Long sessionId, Message message) throws PersistenceException; + MessageSeq replyTopic(Long parentId, Long sessionId, Message message) throws PersistenceException; /** * Delete the topic by given topic ID. The function will delete all children topics under this topic. @@ -191,6 +192,14 @@ public List getTopicThread(Long rootTopicId, Long afterSequenceId, Long pagingSize ); /** + * Get one complete thread within a topic Note that the return type is DTO. + * + * @param threadId + * @return List of MessageDTO + */ + public List getThread(Long threadId ); + + /** * Get root topics by a given sessionID value. Simultanousely, it gets back topics, which author posted in authoring * page for this forum, which is related with the given sessionID value. * Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java =================================================================== diff -u -r72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8 -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java (.../ForumConstants.java) (revision 72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java (.../ForumConstants.java) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -202,8 +202,11 @@ public static final int PATTERN_MATCHING_OPTIONS = Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE; - // for paging long topics + // for paging long topics & inlining reply public static final String PAGE_LAST_ID = "pageLastId"; public static final String PAGE_SIZE = "size"; public static final int DEFAULT_PAGE_SIZE = 50; + public static final String ATTR_MESS_ID = "messageUid"; + public static final String ATTR_THREAD_ID = "threadUid"; + public static final String ATTR_NO_MORE_PAGES = "noMorePages"; } \ No newline at end of file Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java =================================================================== diff -u -r217c8d5243d7137a96b2a9d12574a5c166e50660 -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision 217c8d5243d7137a96b2a9d12574a5c166e50660) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -67,6 +67,7 @@ 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.MessageSeq; import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException; import org.lamsfoundation.lams.tool.forum.persistence.Timestamp; import org.lamsfoundation.lams.tool.forum.service.ForumServiceProxy; @@ -112,6 +113,9 @@ if (param.equals("viewTopic") || param.equals("viewTopicNext")) { return viewTopic(mapping, form, request, response); } + if (param.equals("viewTopicThread")) { + return viewTopicThread(mapping, form, request, response); + } if (param.equals("newTopic")) { return newTopic(mapping, form, request, response); } @@ -124,6 +128,9 @@ if (param.equals("replyTopic")) { return replyTopic(mapping, form, request, response); } + if (param.equals("replyTopicInline")) { + return replyTopicInline(mapping, form, request, response); + } if (param.equals("editTopic")) { return editTopic(mapping, form, request, response); } @@ -468,7 +475,8 @@ // ========================================================================================== /** - * Display read-only page for a special topic. Topic will arrange by Tree structure. + * Display the messages for a particular topic. The Topic will arranged by Tree structure and loaded + * thread by thread (with paging). * * @param mapping * @param form @@ -528,7 +536,53 @@ forumService.saveTimestamp(rootTopicId, forumUser); } + /** + * Display the messages for a particular thread in a particular topic. Returns all messages for this thread - does not need paging. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + private ActionForward viewTopicThread(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + forumService = getForumManager(); + + Long rootTopicId = WebUtil.readLongParam(request, ForumConstants.ATTR_TOPIC_ID); + Long highlightMessageUid = WebUtil.readLongParam(request, ForumConstants.ATTR_MESS_ID, true); + + String sessionMapID = WebUtil.readStrParam(request, ForumConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + sessionMap.put(ForumConstants.ATTR_ROOT_TOPIC_UID, rootTopicId); + + // get forum user and forum + ForumUser forumUser = getCurrentUser(request, (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID)); + Forum forum = forumUser.getSession().getForum(); + + Long threadId = WebUtil.readLongParam(request, ForumConstants.ATTR_THREAD_ID, true); + List msgDtoList = forumService.getThread(threadId); + updateMesssageFlag(msgDtoList); + request.setAttribute(ForumConstants.AUTHORING_TOPIC_THREAD, msgDtoList); + + // check if we can still make posts in this topic + int numOfPosts = forumService.getNumOfPostsByTopic(forumUser.getUserId(), rootTopicId); + boolean noMorePosts = forum.getMaximumReply() != 0 && numOfPosts >= forum.getMaximumReply() + && !forum.isAllowNewTopic() ? Boolean.TRUE : Boolean.FALSE; + request.setAttribute(ForumConstants.ATTR_NO_MORE_POSTS, noMorePosts); + request.setAttribute(ForumConstants.ATTR_NUM_OF_POSTS, numOfPosts); + request.setAttribute(ForumConstants.ATTR_NO_MORE_PAGES, true); + + if ( highlightMessageUid != null ) { + request.setAttribute(ForumConstants.ATTR_MESS_ID, highlightMessageUid); + } + // transfer SessionMapID as well + request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, sessionMapID); + + return mapping.findForward("success"); + } + /** * Display empty page for a new topic in forum * @@ -712,7 +766,66 @@ return mapping.findForward("success"); } + /** + * Create a replayed topic for a parent topic. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + * @throws InterruptedException + * @throws JSONException + * @throws IOException + */ + private synchronized ActionForward replyTopicInline(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws InterruptedException, JSONException, IOException { + MessageForm messageForm = (MessageForm) form; + SessionMap sessionMap = getSessionMap(request, messageForm); + Long parentId = (Long) sessionMap.get(ForumConstants.ATTR_PARENT_TOPIC_ID); + Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + + Message message = messageForm.getMessage(); + boolean isTestHarness = Boolean.valueOf(request.getParameter("testHarness")); + if (isTestHarness) { + message.setBody(request.getParameter("message.body__textarea")); + } + message.setIsAuthored(false); + message.setCreated(new Date()); + message.setUpdated(new Date()); + message.setLastReplyDate(new Date()); + ForumUser forumUser = getCurrentUser(request, sessionId); + message.setCreatedBy(forumUser); + message.setModifiedBy(forumUser); + setAttachment(messageForm, message); + + // save message into database + forumService = getForumManager(); + MessageSeq newMessageSeq = forumService.replyTopic(parentId, sessionId, message); + + // check whether allow more posts for this user + Long rootTopicId = forumService.getRootTopicId(parentId); + ForumToolSession session = forumService.getSessionBySessionId(sessionId); + Forum forum = session.getForum(); + + int numOfPosts = forumService.getNumOfPostsByTopic(forumUser.getUserId(), rootTopicId); + boolean noMorePosts = forum.getMaximumReply() != 0 && numOfPosts >= forum.getMaximumReply() + && !forum.isAllowNewTopic() ? Boolean.TRUE : Boolean.FALSE; + + JSONObject JSONObject = new JSONObject(); + JSONObject.put(ForumConstants.ATTR_MESS_ID, newMessageSeq.getMessage().getUid()); + JSONObject.put(ForumConstants.ATTR_NO_MORE_POSTS, noMorePosts); + JSONObject.put(ForumConstants.ATTR_NUM_OF_POSTS, numOfPosts); + JSONObject.put(ForumConstants.ATTR_THREAD_ID, newMessageSeq.getThreadMessage().getUid()); + JSONObject.put(ForumConstants.ATTR_SESSION_MAP_ID, messageForm.getSessionMapID()); + JSONObject.put(ForumConstants.ATTR_ROOT_TOPIC_UID, rootTopicId); + JSONObject.put(ForumConstants.ATTR_PARENT_TOPIC_ID, newMessageSeq.getMessage().getParent().getUid()); + response.setContentType("application/json;charset=utf-8"); + response.getWriter().print(JSONObject); + return null; + } + /** * Display a editable form for a special topic in order to update it. * Index: lams_tool_forum/web/css/jquery.treetable.forum.css =================================================================== diff -u -rbc38faacb837ce6243961a3ca13f61b62ca0e594 -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/web/css/jquery.treetable.forum.css (.../jquery.treetable.forum.css) (revision bc38faacb837ce6243961a3ca13f61b62ca0e594) +++ lams_tool_forum/web/css/jquery.treetable.forum.css (.../jquery.treetable.forum.css) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -31,4 +31,7 @@ background-image: url(data:image/x-png;base64,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); } +div.highlight { + border:4px solid #cacdd1; +} Index: lams_tool_forum/web/jsps/learning/message/topicreplyform.jsp =================================================================== diff -u -r0bcc23651fc301918c997e707e5e28e604db70ac -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/web/jsps/learning/message/topicreplyform.jsp (.../topicreplyform.jsp) (revision 0bcc23651fc301918c997e707e5e28e604db70ac) +++ lams_tool_forum/web/jsps/learning/message/topicreplyform.jsp (.../topicreplyform.jsp) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -31,12 +31,8 @@
- - - Index: lams_tool_forum/web/jsps/learning/message/topicview.jsp =================================================================== diff -u -rdb224e68e2250720b9947fb18443a89fb204243b -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/web/jsps/learning/message/topicview.jsp (.../topicview.jsp) (revision db224e68e2250720b9947fb18443a89fb204243b) +++ lams_tool_forum/web/jsps/learning/message/topicview.jsp (.../topicview.jsp) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -17,15 +17,86 @@ if (this.level() >= 2) { this.collapse(); } - } + } + - @@ -47,9 +118,11 @@ +
+
@@ -59,7 +132,14 @@ -
px;"> + + +
px;" class="highlight" > + + +
px;" > + +
@@ -215,9 +295,7 @@ - - - + @@ -237,10 +315,11 @@ + - +
" class="button"> Index: lams_tool_forum/web/jsps/learning/message/topicviewwrapper.jsp =================================================================== diff -u -r72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8 -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/web/jsps/learning/message/topicviewwrapper.jsp (.../topicviewwrapper.jsp) (revision 72a3c5dbc0b2b0f1b3304d50cdd8798d6616aef8) +++ lams_tool_forum/web/jsps/learning/message/topicviewwrapper.jsp (.../topicviewwrapper.jsp) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -11,6 +11,7 @@ + <%@ include file="topicview.jsp"%> Index: lams_tool_forum/web/jsps/learning/reply.jsp =================================================================== diff -u -rc4854959d539a3b2d18dc30be9a11f7c127050aa -refef5787566da02898fc3cb31a876749d3a0f368 --- lams_tool_forum/web/jsps/learning/reply.jsp (.../reply.jsp) (revision c4854959d539a3b2d18dc30be9a11f7c127050aa) +++ lams_tool_forum/web/jsps/learning/reply.jsp (.../reply.jsp) (revision efef5787566da02898fc3cb31a876749d3a0f368) @@ -2,56 +2,100 @@ <%-- If you change this file, remember to update the copy made for CNG-28 --%> - + + + - + +
-

- -

-

- -

- -

- -

- - - - - - - - - - - -
- -
- - - - - - -
- -
-
- -

- -