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.106 -r1.107 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 15 Nov 2010 17:49:16 -0000 1.106 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 19 Nov 2010 19:08:31 -0000 1.107 @@ -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.54 -r1.55 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 2 Aug 2009 20:15:08 -0000 1.54 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 19 Nov 2010 19:08:31 -0000 1.55 @@ -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.75 -r1.76 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 5 Apr 2010 17:27:46 -0000 1.75 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 19 Nov 2010 19:08:30 -0000 1.76 @@ -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; @@ -257,6 +258,8 @@ // tear down PO to normal object using clone() method forumForm.setForum((Forum) forum.clone()); + + sessionMap.put(ForumConstants.AUTHORING_FORUM, forum); } catch (Exception e) { AuthoringAction.log.error(e); return mapping.findForward("error"); @@ -410,7 +413,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()); @@ -696,6 +699,18 @@ 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));