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.99.4.3.4.3 -r1.99.4.3.4.4 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 15 Nov 2010 17:40:30 -0000 1.99.4.3.4.3 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 19 Nov 2010 19:56:12 -0000 1.99.4.3.4.4 @@ -243,6 +243,7 @@ while (iter.hasNext()) { Message clone = (Message) iter.next(); message.updateClone(clone); + messageDao.saveOrUpdate(clone); } } 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.52.4.1 -r1.52.4.1.2.1 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 19 May 2009 09:07:36 -0000 1.52.4.1 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 19 Nov 2010 19:56:13 -0000 1.52.4.1.2.1 @@ -59,6 +59,8 @@ public static final String AUTHORING_TOPIC_THREAD = "topicThread"; public static final String AUTHORING_TOPIC = "topic"; + + public static final String AUTHORING_FORUM = "forum"; public static final String DEFAULT_TITLE = "Forum"; Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java,v diff -u -r1.71.4.2.2.3 -r1.71.4.2.2.4 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 6 Apr 2010 10:15:40 -0000 1.71.4.2.2.3 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 19 Nov 2010 19:56:12 -0000 1.71.4.2.2.4 @@ -64,6 +64,7 @@ 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.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; @@ -256,6 +257,8 @@ // tear down PO to normal object using clone() method forumForm.setForum((Forum) forum.clone()); + + sessionMap.put(ForumConstants.AUTHORING_FORUM, forum); // set back STRUTS component value // init it to avoid null exception in following handling @@ -405,7 +408,7 @@ while (iter.hasNext()) { MessageDTO dto = (MessageDTO) iter.next(); if (dto.getMessage() != null) { - // This flushs user UID info to message if this user is a new user. + // This flushes user UID info to message if this user is a new user. dto.getMessage().setCreatedBy(forumUser); dto.getMessage().setModifiedBy(forumUser); forumService.createRootTopic(forum.getUid(), null, dto.getMessage()); @@ -691,7 +694,19 @@ attSet.add(att); } message.setAttachments(attSet); - + + // create clones of this topic (appropriate only for editing in monitoring) + Forum forum = (Forum) sessionMap.get(ForumConstants.AUTHORING_FORUM); + if (forum != null) { + List toolSessions = forumService.getSessionsByContentId(forum.getContentId()); + for (ForumToolSession toolSession : toolSessions) { + Message newMsg = Message.newInstance(message, forum.getToolContentHandler()); + newMsg.setToolSession(toolSession); + newMsg.setAttachments(new TreeSet()); + message.getSessionClones().add(newMsg); + } + } + topics.add(MessageDTO.getMessageDTO(message)); return mapping.findForward("success");