Index: lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.hbm.xml =================================================================== diff -u --- lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.hbm.xml (revision 0) +++ lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.hbm.xml (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_forum/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rafae3c86d50dcfd6c351daafc198184d2b3f20d9 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision afae3c86d50dcfd6c351daafc198184d2b3f20d9) +++ lams_tool_forum/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -32,6 +32,7 @@ lable.topic.title.update =Last post lable.topic.title.author =Author lable.topic.title.replies =Replies +lable.topic.title.repliesnew =New lable.topic.title.mark =Mark lable.topic.subject.by =By lable.topic.title.message.number =# of Msg Index: lams_tool_forum/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rafae3c86d50dcfd6c351daafc198184d2b3f20d9 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision afae3c86d50dcfd6c351daafc198184d2b3f20d9) +++ lams_tool_forum/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -32,6 +32,7 @@ lable.topic.title.update =Last post lable.topic.title.author =Author lable.topic.title.replies =Replies +lable.topic.title.repliesnew =New lable.topic.title.mark =Mark lable.topic.subject.by =By lable.topic.title.message.number =# of Msg Index: lams_tool_forum/conf/xdoclet/filters.xml =================================================================== diff -u -r4526bc668178760326017e561b75a0358e10b4fb -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/conf/xdoclet/filters.xml (.../filters.xml) (revision 4526bc668178760326017e561b75a0358e10b4fb) +++ lams_tool_forum/conf/xdoclet/filters.xml (.../filters.xml) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -1,7 +1,7 @@ hibernateFilter - org.springframework.orm.hibernate3.support.OpenSessionInViewFilter + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter sessionFactoryBeanName Index: lams_tool_forum/db/model/forum.clay =================================================================== diff -u -rc081e2b0c9c82fc97d2d39fb7109c9c2f10ff224 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/db/model/forum.clay (.../forum.clay) (revision c081e2b0c9c82fc97d2d39fb7109c9c2f10ff224) +++ lams_tool_forum/db/model/forum.clay (.../forum.clay) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -9,7 +9,7 @@ - + @@ -256,7 +256,7 @@
- + @@ -541,7 +541,7 @@
- + @@ -966,7 +966,7 @@
- + Index: lams_tool_forum/db/sql/cleanup_lams_tool_forum.sql =================================================================== diff -u -rac0c4f506511cfd628fc56582b17c934425db055 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/db/sql/cleanup_lams_tool_forum.sql (.../cleanup_lams_tool_forum.sql) (revision ac0c4f506511cfd628fc56582b17c934425db055) +++ lams_tool_forum/db/sql/cleanup_lams_tool_forum.sql (.../cleanup_lams_tool_forum.sql) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -6,3 +6,4 @@ delete from tl_lafrum11_message; delete from tl_lafrum11_message_seq; delete from tl_lafrum11_tool_session; +delete from tl_lafrum11_timestamp; \ No newline at end of file Index: lams_tool_forum/db/sql/create_lams_tool_forum.sql =================================================================== diff -u -rc081e2b0c9c82fc97d2d39fb7109c9c2f10ff224 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/db/sql/create_lams_tool_forum.sql (.../create_lams_tool_forum.sql) (revision c081e2b0c9c82fc97d2d39fb7109c9c2f10ff224) +++ lams_tool_forum/db/sql/create_lams_tool_forum.sql (.../create_lams_tool_forum.sql) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -8,6 +8,7 @@ drop table if exists tl_lafrum11_message_seq; drop table if exists tl_lafrum11_report; drop table if exists tl_lafrum11_tool_session; +drop table if exists tl_lafrum11_timestamp; create table tl_lafrum11_attachment ( uid bigint not null auto_increment, file_version_id bigint, @@ -103,7 +104,6 @@ session_name varchar(250), primary key (uid) )TYPE=InnoDB; - CREATE TABLE tl_lafrum11_conditions ( condition_id BIGINT(20) NOT NULL , content_uid BIGINT(20) @@ -123,6 +123,16 @@ , CONSTRAINT ForumConditionQuestionToForumQuestion FOREIGN KEY (topic_uid) REFERENCES tl_lafrum11_message(uid) ON DELETE CASCADE ON UPDATE CASCADE )TYPE=InnoDB; +create table tl_lafrum11_timestamp ( + uid BIGINT(20) not null auto_increment, + message_uid BIGINT(20) not null, + timestamp_date DATETIME not null, + forum_user_uid BIGINT(20) not null, + primary key (`uid`), + unique key `uid` (`uid`), + key `message_uid` (`message_uid`), + key `forum_user_uid` (`forum_user_uid`) +)TYPE=InnoDB; alter table tl_lafrum11_attachment add index FK389AD9A2FE939F2A (message_uid), add constraint FK389AD9A2FE939F2A foreign key (message_uid) references tl_lafrum11_message (uid); alter table tl_lafrum11_attachment add index FK389AD9A2131CE31E (forum_uid), add constraint FK389AD9A2131CE31E foreign key (forum_uid) references tl_lafrum11_forum (uid); @@ -138,13 +148,14 @@ alter table tl_lafrum11_message_seq add index FKD2C71F88FE939F2A (message_uid), add constraint FKD2C71F88FE939F2A foreign key (message_uid) references tl_lafrum11_message (uid); alter table tl_lafrum11_message_seq add index FKD2C71F8845213B4D (root_message_uid), add constraint FKD2C71F8845213B4D foreign key (root_message_uid) references tl_lafrum11_message (uid); alter table tl_lafrum11_tool_session add index FK5A04D7AE131CE31E (forum_uid), add constraint FK5A04D7AE131CE31E foreign key (forum_uid) references tl_lafrum11_forum (uid); +alter table tl_lafrum11_timestamp add index ForumUserFK (forum_user_uid), add constraint ForumUserFK foreign key (forum_user_uid) references tl_lafrum11_forum_user (uid); +alter table tl_lafrum11_timestamp add index MessageFK (message_uid), add constraint MessageFK foreign key (message_uid) references tl_lafrum11_message (uid); - INSERT INTO tl_lafrum11_forum (uid,title,instructions,online_instructions,offline_instructions,content_id,allow_anonym,run_offline,lock_on_finished,content_in_use,define_later,allow_edit,allow_rich_editor, allow_new_topic,allow_upload,maximum_reply, minimum_reply,limited_input_flag,limited_of_chars,reflect_on_activity) VALUES(1,"Forum","Instructions",null,null,${default_content_id},0,0,0,0,0,1,0,1,0,1,0,1,5000,0); INSERT INTO `tl_lafrum11_message` (`uid`, `create_date`, `last_reply_date`, `update_date`, `create_by`, `modified_by`, `subject`, `body`, `is_authored`, `is_anonymous`, `forum_session_uid`, `parent_uid`, `forum_uid`, `reply_number`, `hide_flag`, `report_id`) VALUES (1,NOW(),NOW(),NOW(),null,null,'Topic Heading','Topic message',1,0,NULL,NULL,1,0,0,NULL); - + SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_forum/db/sql/drop_lams_tool_forum.sql =================================================================== diff -u -rc081e2b0c9c82fc97d2d39fb7109c9c2f10ff224 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/db/sql/drop_lams_tool_forum.sql (.../drop_lams_tool_forum.sql) (revision c081e2b0c9c82fc97d2d39fb7109c9c2f10ff224) +++ lams_tool_forum/db/sql/drop_lams_tool_forum.sql (.../drop_lams_tool_forum.sql) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -10,6 +10,7 @@ drop table if exists tl_lafrum11_report; drop table if exists tl_lafrum11_condition_topics; drop table if exists tl_lafrum11_conditions; +drop table if exists tl_lafrum11_timestamp; SET FOREIGN_KEY_CHECKS=1; Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dbupdates/autopatchContext.xml =================================================================== diff -u -r558ead6c7d0ae923be08b6e6cd60ea44839ecfdc -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dbupdates/autopatchContext.xml (.../autopatchContext.xml) (revision 558ead6c7d0ae923be08b6e6cd60ea44839ecfdc) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dbupdates/autopatchContext.xml (.../autopatchContext.xml) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -2,10 +2,11 @@ - - - - - + + + + + \ No newline at end of file Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java =================================================================== diff -u -r86ef0c92b6e5b8a3915fcc960b918ab95b629503 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java (.../MessageDTO.java) (revision 86ef0c92b6e5b8a3915fcc960b918ab95b629503) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java (.../MessageDTO.java) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -26,6 +26,7 @@ package org.lamsfoundation.lams.tool.forum.dto; import java.util.ArrayList; +import java.util.Date; import java.util.Iterator; import java.util.List; @@ -52,7 +53,10 @@ //2 fields use for export portfolio function private String attachmentName; private String attachmentLocalUrl; - + + private int newPostingsNum; + private Date lastTopicDate; + /** * Get a MessageDTO instance from a given Message. * @@ -202,4 +206,19 @@ this.numOfPosts = numOfPosts; } + public void setNewPostingsNum(int newPostingsNum) { + this.newPostingsNum = newPostingsNum; + } + + public int getNewPostingsNum() { + return newPostingsNum; + } + + public void setLastTopicDate(Date lastTopicDate) { + this.lastTopicDate = lastTopicDate; + } + + public Date getLastTopicDate() { + return lastTopicDate; + } } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml =================================================================== diff -u -rc081e2b0c9c82fc97d2d39fb7109c9c2f10ff224 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml (.../forumApplicationContext.xml) (revision c081e2b0c9c82fc97d2d39fb7109c9c2f10ff224) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml (.../forumApplicationContext.xml) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -1,155 +1,199 @@ - + - - org.lamsfoundation.lams.tool.forum.ApplicationResources + + + org.lamsfoundation.lams.tool.forum.ApplicationResources + - - - - + + + + + + + + - - - - org/lamsfoundation/lams/learningdesign/BranchCondition.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/Message.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/Attachment.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/ForumUser.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/ForumToolSession.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/MessageSeq.hbm.xml - org/lamsfoundation/lams/tool/forum/persistence/ForumCondition.hbm.xml - - - + + + + org/lamsfoundation/lams/learningdesign/BranchCondition.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/Message.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/Attachment.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/ForumUser.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/ForumReport.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/ForumToolSession.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/MessageSeq.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/ForumCondition.hbm.xml + org/lamsfoundation/lams/tool/forum/persistence/Timestamp.hbm.xml + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - false - - - - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception + + PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception - - - + + + \ No newline at end of file Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Message.java =================================================================== diff -u -r5cf94a873af22670c1bcfb832c7e868ef168333a -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Message.java (.../Message.java) (revision 5cf94a873af22670c1bcfb832c7e868ef168333a) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Message.java (.../Message.java) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -52,7 +52,6 @@ private boolean isAuthored; private boolean isAnonymous; - private Date created; private Date updated; private Date lastReplyDate; @@ -66,7 +65,6 @@ private ForumUser modifiedBy; private Set attachments; private ForumReport report; - private Set sessionClones; private ForumToolContentHandler toolContentHandler; @@ -168,6 +166,7 @@ } this.setUpdated(new Date(now)); } + public boolean equals(Object o) { if (this == o) return true; @@ -409,7 +408,8 @@ public Message getParent() { return parent; } - /** + + /** * @return a set of Attachments to this Message. * * @hibernate.set table="ATTACHMENT" @@ -512,4 +512,5 @@ public void setToolContentHandler(ForumToolContentHandler toolContentHandler) { this.toolContentHandler = toolContentHandler; } + } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/MessageDao.java =================================================================== diff -u -r4526bc668178760326017e561b75a0358e10b4fb -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/MessageDao.java (.../MessageDao.java) (revision 4526bc668178760326017e561b75a0358e10b4fb) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/MessageDao.java (.../MessageDao.java) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -25,6 +25,10 @@ package org.lamsfoundation.lams.tool.forum.persistence; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; @@ -49,8 +53,11 @@ + " where m.toolSession.sessionId=?"; private static final String SQL_QUERY_TOPICS_NUMBER_BY_USER_SESSION = "select count(*) from " + Message.class.getName() + " m " - + " where m.createdBy.userId=? and m.toolSession.sessionId=? and m.isAuthored = false"; + + " where m.createdBy.userId=? and m.toolSession.sessionId=? and m.isAuthored = false"; + private static final String SQL_QUERY_LAST_TOPIC_DATE_BY_MESSAGE = " select m.updated from " + Message.class.getName() + " m " + + " where m.uid IN (select seq.message.uid FROM " + MessageSeq.class.getName() + + " seq WHERE seq.rootMessage.uid = ?) order by m.updated desc "; public void saveOrUpdate(Message message) { message.updateModificationData(); @@ -126,5 +133,16 @@ else return 0; } - + /** + * Return date of the last posting in a thread + * @param messageID + * @return + */ + public Date getLastTopicDate(Long messageID) { + List list = this.getHibernateTemplate().find(SQL_QUERY_LAST_TOPIC_DATE_BY_MESSAGE, new Object[]{messageID}); + if(list != null && list.size() > 0) + return ((Date) list.get(0)); + else + return new Date(); + } } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.hbm.xml =================================================================== diff -u --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.hbm.xml (revision 0) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.hbm.xml (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.java =================================================================== diff -u --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.java (revision 0) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Timestamp.java (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -0,0 +1,113 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $$Id$$ */ +package org.lamsfoundation.lams.tool.forum.persistence; + +import java.util.Date; + +/** + * Forum + * + * @author ruslan + * + * @hibernate.class table="tl_lafrum11_timestamp" + * + */ +public class Timestamp implements Cloneable { + private Long uid; // key + private ForumUser forumUser; + private Message message; + private Date timestamp; + + /** + * Default contruction method. + * + */ + public Timestamp() { + } + + // ********************************************************** + // get/set methods + // ********************************************************** + /** + * @hibernate.id column="uid" generator-class="native" + */ + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * Returns the user's timestamp + * + * @return timestamp + * @hibernate.property column="timestamp_date" + */ + public Date getTimestamp() { + return timestamp; + } + + /** + * Sets the user's timestamp + * + * @param timestamp + */ + public void setTimestamp(Date timestamp) { + this.timestamp = timestamp; + } + + /** + * @return Returns the user of the user who saved the timestamp + * + * @hibernate.many-to-one cascade="none" column="forum_user_uid" + * + */ + public ForumUser getForumUser() { + return forumUser; + } + + /** + * @param userid + * The userid of the user who saved the timestamp + */ + public void setForumUser(ForumUser forumUser) { + this.forumUser = forumUser; + } + + /** + * @hibernate.many-to-one column="message_uid" + * cascade="none" + */ + public Message getMessage() { + return message; + } + + public void setMessage(Message message) { + this.message = message; + } + +} Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/TimestampDao.java =================================================================== diff -u --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/TimestampDao.java (revision 0) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/TimestampDao.java (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -0,0 +1,164 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $$Id$$ */ +package org.lamsfoundation.lams.tool.forum.persistence; + +import java.util.Iterator; +import java.util.List; + +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; + +/** + * TimestampDao + * @author ruslan + */ +public class TimestampDao extends HibernateDaoSupport { + + /* 0 if user opens forum first time; otherwise >0 */ + private static final String SQL_QUERY_FIRST_TIME_BY_MESSAGE_USER = + " SELECT count(*) FROM " + Timestamp.class.getName() + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ? "; + + private static final String SQL_QUERY_TIMESTAMP_BY_MESSAGE_USER = + " FROM " + Timestamp.class.getName() + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ? "; + + /*private static final String SQL_QUERY_ROOT_MESSAGE_NUMBER_BY_SESSION_MESSAGE_USER = + "SELECT count(*) FROM " + Message.class.getName() + " AS p3 WHERE p3.uid = ? " + + "AND p3.updated > ( SELECT ts.timestamp FROM " + Timestamp.class.getName() + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ?)"; + */ + + private static final String SQL_QUERY_MESSAGE_NUMBER_BY_MESSAGE_USER = + "SELECT count(*) FROM " + Message.class.getName() + " mes WHERE mes.uid IN (SELECT seq.message.uid FROM " + + MessageSeq.class.getName() + " seq WHERE seq.rootMessage.uid = ?) " + " AND mes.updated > (SELECT ts.timestamp FROM " + + Timestamp.class.getName() + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ?)"; + + /*private static final String SQL_QUERY_ROOT_MESSAGE_CHANGED = + " SELECT count(*) FROM " + Message.class.getName() + " mes1, " + Message.class.getName() + " mes2" + + " WHERE mes1.updated = mes2.updated AND mes1.uid = ? AND mes1.parent.uid IS NULL " + + " AND mes1.updated > (SELECT ts.timestamp FROM " + Timestamp.class.getName() + + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ?)"; + */ + /*private static final String SQL_QUERY_ROOT_MESSAGE_CHANGED = + "SELECT count(*) FROM " + Message.class.getName() + " AS mes LEFT JOIN mes.parent " + + " WHERE "; + /*" WHERE p1.uid = p2.parent AND (p1.uid = ? OR p1.parent = ?) " + + " AND p2.toolSession.sessionId = ? AND p2.updated > ( SELECT ts.timestamp FROM " + Timestamp.class.getName() + + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ?)"; + */ + /* Recursive query for 10 levels down + private static final String SQL_QUERY_MESSAGE_NUMBER_BY_SESSION_MESSAGE_USER = + "SELECT count(*) FROM " + Message.class.getName() + " AS p1 LEFT JOIN p1.parent " + + " WHERE p1.toolSession.sessionId = ? " + + " AND p1.updated > (SELECT ts.timestamp FROM " + Timestamp.class.getName() + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ?)"; + */ + /*private static final String SQL_QUERY_MESSAGE_NUMBER_BY_SESSION_MESSAGE_USER = + "SELECT count(*) FROM " + Message.class.getName() + " as p1 LEFT JOIN " + + " p1.parent as p2 LEFT JOIN p2.parent as p3 LEFT JOIN p3.parent as p4 LEFT JOIN p4.parent as p5 " + + " WHERE p1.uid = ? OR p2.uid = ? OR p3.uid = ? OR p4.uid = ? OR p5.uid = ? AND p1.toolSession.sessionId = ? " + + " AND p1.updated > (SELECT ts.timestamp FROM " + Timestamp.class.getName() + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ?)"; + */ + /*private static final String SQL_QUERY_MESSAGE_NUMBER_BY_SESSION_MESSAGE_USER = + "SELECT count(*) FROM " + Message.class.getName() + " AS p1, " + Message.class.getName() + " AS p2 " + + " WHERE p1.uid = p2.parent AND (p1.uid = ? OR p1.parent = ?) " + + " AND p2.toolSession.sessionId = ? AND p2.updated > ( SELECT ts.timestamp FROM " + Timestamp.class.getName() + + " ts WHERE ts.message.uid = ? AND ts.forumUser.uid = ?)";*/ + + public void delete(Timestamp timestamp) { + this.getHibernateTemplate().delete(timestamp); + } + + /** + * Save timestamp. + * + * @param timestamp + * @return + */ + public void saveOrUpdate(Timestamp timestamp) { + this.getHibernateTemplate().saveOrUpdate(timestamp); + } + + /** + * Get timestamp. + * + * @param messageId + * @param forumUserId + * @return + */ + public Timestamp getTimestamp(Long messageId, Long forumUserId) { + List timestampList = this.getHibernateTemplate().find(SQL_QUERY_TIMESTAMP_BY_MESSAGE_USER, new Object[]{messageId, forumUserId}); + if (timestampList != null && timestampList.size() > 0) + return (Timestamp) (timestampList.get(0)); + else + return null; + } + + /** + * Get number of new postings. + * + * @param sessionId + * @param messageId + * @param userId + * @return + */ + public int getNewMessagesNum(Long messageId, Long userId) { + List firstTimeList = this.getHibernateTemplate().find(SQL_QUERY_FIRST_TIME_BY_MESSAGE_USER, new Object[]{messageId, userId}); + if (firstTimeList != null && firstTimeList.size() > 0) + { + if (((Number)firstTimeList.get(0)).intValue() > 0) // if not first time + { + //List rootPostingsList = this.getHibernateTemplate().find(SQL_QUERY_ROOT_MESSAGE_NUMBER_BY_SESSION_MESSAGE_USER, + // new Object[]{messageId, messageId, userId}); + List postingsList = this.getHibernateTemplate().find(SQL_QUERY_MESSAGE_NUMBER_BY_MESSAGE_USER, + new Object[]{messageId, messageId, userId}); + //List rootUpdatedList = this.getHibernateTemplate().find(SQL_QUERY_ROOT_MESSAGE_CHANGED, + // new Object[]{messageId, messageId, userId}); + + if(postingsList != null && postingsList.size() > 0) + { + //int rootMesNum = ((Number)rootPostingsList.get(0)).intValue(); + //int postingsNum = ((Number)postingsList.get(0)).intValue(); + //int rootUpdated = ((Number)rootUpdatedList.get(0)).intValue(); + + /*if (mesNum > 0) // if there are new messages + { + if (rootUpdated == 1) // if root posting was updated + return mesNum + 1; + else + return mesNum; + } + else if (mesNum == 0) // if there are no messages + return rootMesNum;*/ + + return ((Number)postingsList.get(0)).intValue(); + } + else + return 0; + } + else + return -1; // user views forum for the first time + } + else + return 0; + } + +} Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== diff -u -rc4dfe712e2f4adc4d448e5653df6430eb2949002 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision c4dfe712e2f4adc4d448e5653df6430eb2949002) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -89,6 +89,8 @@ import org.lamsfoundation.lams.tool.forum.persistence.MessageSeq; import org.lamsfoundation.lams.tool.forum.persistence.MessageSeqDao; import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException; +import org.lamsfoundation.lams.tool.forum.persistence.Timestamp; +import org.lamsfoundation.lams.tool.forum.persistence.TimestampDao; import org.lamsfoundation.lams.tool.forum.util.DateComparator; import org.lamsfoundation.lams.tool.forum.util.ForumConstants; import org.lamsfoundation.lams.tool.forum.util.ForumToolContentHandler; @@ -118,6 +120,8 @@ private AttachmentDao attachmentDao; private MessageDao messageDao; + + private TimestampDao timestampDao; private MessageSeqDao messageSeqDao; @@ -243,7 +247,7 @@ MessageSeq msgSeq = messageSeqDao.getByTopicId(message.getUid()); Message root = msgSeq.getRootMessage(); // update reply date - messageDao.saveOrUpdate(root); + //messageDao.saveOrUpdate(root); // do not update date of root posting return message; } @@ -321,11 +325,11 @@ msgSeq.setRootMessage(root); messageSeqDao.save(msgSeq); - // update last reply date for root message + // update last reply date for root messagegetlas root.setLastReplyDate(new Date()); // update reply message number for root root.setReplyNumber(root.getReplyNumber() + 1); - messageDao.saveOrUpdate(root); + //messageDao.saveOrUpdate(root); // do not update the date of root posting return replyMessage; } @@ -1138,7 +1142,15 @@ public void setForumDao(ForumDao forumDao) { this.forumDao = forumDao; } + + public TimestampDao getTimestampDao() { + return timestampDao; + } + public void setTimestampDao(TimestampDao timestampDao) { + this.timestampDao = timestampDao; + } + public MessageDao getMessageDao() { return messageDao; } @@ -1255,4 +1267,48 @@ } while (uniqueNumber == null); return getForumOutputFactory().buildTextSearchConditionName(uniqueNumber); } + + /** + * Get number of new postings. + * + * @param sessionId + * @param messageId + * @param userId + * @return + */ + public int getNewMessagesNum(Long messageId, Long userId) { + return timestampDao.getNewMessagesNum(messageId, userId); + } + + /** + * Get last topic date. + * + * @param messageId + * @return + */ + public Date getLastTopicDate(Long messageId) { + return messageDao.getLastTopicDate(messageId); + } + + /** + * Get timestamp. + * + * @param messageId + * @param forumUserId + * @return + */ + public Timestamp getTimestamp(Long MessageId, Long forumUserId) throws PersistenceException { + return timestampDao.getTimestamp(MessageId, forumUserId); + } + + /** + * Save timestamp. + * + * @param timestamp + * @return + */ + public void saveTimestamp(Timestamp timestamp) { + timestampDao.saveOrUpdate(timestamp); + } + } \ No newline at end of file Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java =================================================================== diff -u -rc081e2b0c9c82fc97d2d39fb7109c9c2f10ff224 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java (.../IForumService.java) (revision c081e2b0c9c82fc97d2d39fb7109c9c2f10ff224) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java (.../IForumService.java) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -25,6 +25,7 @@ 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; @@ -39,6 +40,7 @@ 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; /** @@ -50,7 +52,7 @@ // ************************************************************************************ /** * Create a Forum instance according to the default content.
- * Note, this new insstance won't save into database until called persist method. + * Note, this new instance won't save into database until called persist method. * * @param contentID * @return @@ -105,7 +107,43 @@ // ************************************************************************************ // Topic Method // ************************************************************************************ + /** + * Get number of new postings. + * + * @param sessionId + * @param messageId + * @param userId + * @return + */ + public int getNewMessagesNum(Long messageId, Long userId); + + /** + * Get last topic date. + * + * @param messageId + * @return + */ + public Date getLastTopicDate(Long messageId); + + /** + * Get timestamp. + * + * @param messageId + * @param forumUserId + * @return + */ + public Timestamp getTimestamp(Long MessageId, Long forumUserId); + + /** + * Save timestamp. + * + * @param timestamp + * @return + */ + public void saveTimestamp(Timestamp timestamp); + + /** * Create a root topic. * * @param forumId Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java =================================================================== diff -u -rc081e2b0c9c82fc97d2d39fb7109c9c2f10ff224 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java (.../ForumConstants.java) (revision c081e2b0c9c82fc97d2d39fb7109c9c2f10ff224) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java (.../ForumConstants.java) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -140,7 +140,7 @@ public static final String ATTR_REFLECTION_INSTRUCTION = "reflectInstructions"; public static final String ATTR_REFLECTION_ENTRY = "reflectEntry"; - + public static final String ATTR_MINIMUM_REPLY = "minimumReply"; public static final String ATTR_MAXIMUM_REPLY = "maximumReply"; Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java =================================================================== diff -u -ra01292ae06e058ffcc16aaeec6d61959a7b69273 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision a01292ae06e058ffcc16aaeec6d61959a7b69273) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -25,6 +25,9 @@ package org.lamsfoundation.lams.tool.forum.web.actions; import java.io.IOException; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashSet; import java.util.Iterator; @@ -44,6 +47,7 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +import org.hibernate.Session; import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; @@ -59,6 +63,8 @@ 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.tool.forum.service.ForumService; import org.lamsfoundation.lams.tool.forum.service.ForumServiceProxy; import org.lamsfoundation.lams.tool.forum.service.IForumService; import org.lamsfoundation.lams.tool.forum.util.ForumConstants; @@ -268,6 +274,19 @@ forumUser.getUserId().longValue(), IEventNotificationService.DELIVERY_METHOD_MAIL, IEventNotificationService.PERIODICITY_SINGLE); } + + // displaying new postings + for (Iterator iterator = rootTopics.iterator(); iterator.hasNext();) { + MessageDTO messageDTO = (MessageDTO) iterator.next(); + int numOfNewPosts = forumService.getNewMessagesNum( + messageDTO.getMessage().getUid(), forumUser.getUid()); + if (numOfNewPosts == -1) // first time; show all postings as new, including root message + messageDTO.setNewPostingsNum(messageDTO.getMessage().getReplyNumber() + 1); + else + messageDTO.setNewPostingsNum(numOfNewPosts); + + messageDTO.setLastTopicDate(forumService.getLastTopicDate(messageDTO.getMessage().getUid())); + } return mapping.findForward("success"); } @@ -462,10 +481,45 @@ // 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); - + + // Saving or updating user timestamp + saveUserTimestamp(rootTopicId, forumUser); + return mapping.findForward("success"); - } + + /** + * Saving user timestamp + * + * @param toorTopicId + * @param forumUser + * @return + */ + private void saveUserTimestamp(Long rootTopicId, ForumUser forumUser) + { + Date curDate = new Date(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + curDate = dateFormat.parse(dateFormat.format(new Date())); + } catch(ParseException pe) { + pe.printStackTrace(); + } + + Timestamp timestamp = forumService.getTimestamp(rootTopicId, forumUser.getUid()); + if (timestamp != null) + { + timestamp.setTimestamp(curDate); + forumService.saveTimestamp(timestamp); + } + else + { + timestamp = new Timestamp(); + timestamp.setMessage(forumService.getMessage(rootTopicId)); + timestamp.setTimestamp(curDate); + timestamp.setForumUser(forumUser); + forumService.saveTimestamp(timestamp); + } + } /** * Display empty page for a new topic in forum @@ -518,11 +572,25 @@ forumService = getForumManager(); forumService.createRootTopic(forumId, sessionId, message); - // echo back current root topic to fourm init page + // echo back current root topic to forum init page List rootTopics = forumService.getRootTopics(sessionId); request.setAttribute(ForumConstants.AUTHORING_TOPICS_LIST, rootTopics); request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, messageForm.getSessionMapID()); - + + saveUserTimestamp(message.getUid(), forumUser); + + for (Iterator iterator = rootTopics.iterator(); iterator.hasNext();) { + MessageDTO messageDTO = (MessageDTO) iterator.next(); + int numOfNewPosts = forumService.getNewMessagesNum( + messageDTO.getMessage().getUid(), forumUser.getUid()); + if (numOfNewPosts == -1) // first time; show all postings as new, including root message + messageDTO.setNewPostingsNum(messageDTO.getMessage().getReplyNumber() + 1); + else + messageDTO.setNewPostingsNum(numOfNewPosts); + + messageDTO.setLastTopicDate(forumService.getLastTopicDate(messageDTO.getMessage().getUid())); + } + return mapping.findForward("success"); } @@ -626,6 +694,9 @@ request.setAttribute(ForumConstants.ATTR_NUM_OF_POSTS, numOfPosts); sessionMap.remove(ForumConstants.ATTR_ORIGINAL_MESSAGE); + + // Saving or updating user timestamp + saveUserTimestamp(rootTopicId, forumUser); return mapping.findForward("success"); } @@ -759,7 +830,10 @@ request.setAttribute(ForumConstants.AUTHORING_TOPIC_THREAD, msgDtoList); request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, messageForm.getSessionMapID()); - + + // Saving or updating user timestamp + saveUserTimestamp(rootTopicId, forumUser); + return mapping.findForward("success"); } @@ -804,7 +878,7 @@ request.setAttribute(ForumConstants.AUTHORING_TOPIC_THREAD, msgDtoList); request.setAttribute(ForumConstants.ATTR_SESSION_MAP_ID, WebUtil .readStrParam(request, ForumConstants.ATTR_SESSION_MAP_ID)); - + return mapping.findForward("success"); } Index: lams_tool_forum/web/WEB-INF/lams.tld =================================================================== diff -u -rc081e2b0c9c82fc97d2d39fb7109c9c2f10ff224 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/web/WEB-INF/lams.tld (.../lams.tld) (revision c081e2b0c9c82fc97d2d39fb7109c9c2f10ff224) +++ lams_tool_forum/web/WEB-INF/lams.tld (.../lams.tld) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -123,6 +123,26 @@ + Converts role name into form usable as message resources key + Converts role name into form usable as message resources key + + + role + org.lamsfoundation.lams.web.tag.RoleTag + empty + + + Converts role name into form usable as message resources key + role + true + + true + + + + + + Help tag Help tag @@ -167,26 +187,6 @@ - Converts role name into form usable as message resources key - Converts role name into form usable as message resources key - - - role - org.lamsfoundation.lams.web.tag.RoleTag - empty - - - Converts role name into form usable as message resources key - role - true - - true - - - - - - Output stylesheet based on the user preferences. User's chosen stylesheet @@ -289,11 +289,6 @@ true - index - false - true - - indexed false true Index: lams_tool_forum/web/WEB-INF/struts-config.xml =================================================================== diff -u -r05db875c7974d705f89231416ff6dfe91a5e70f1 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 05db875c7974d705f89231416ff6dfe91a5e70f1) +++ lams_tool_forum/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -18,25 +18,25 @@ type="org.lamsfoundation.lams.tool.forum.web.forms.ForumForm" /> - + Index: lams_tool_forum/web/WEB-INF/tags/Head.tag =================================================================== diff -u -r18e5e690d2e1a7c3d918759f7a2827c8205feaac -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/web/WEB-INF/tags/Head.tag (.../Head.tag) (revision 18e5e690d2e1a7c3d918759f7a2827c8205feaac) +++ lams_tool_forum/web/WEB-INF/tags/Head.tag (.../Head.tag) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -1,41 +1,41 @@ -<%/**************************************************************** - * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) - * ============================================================= - * License Information: http://lamsfoundation.org/licensing/lams/2.0/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2.0 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 - * USA - * - * http://www.gnu.org/licenses/gpl.txt - * **************************************************************** - */ - -/** - * Head.tag - * Author: Fiona Malikoff +<%/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/** + * Head.tag + * Author: Fiona Malikoff * Description: Sets up the non-cache pragma statements and the UTF-8 - * encoding. Use in place of the normal head tag. - */ + * encoding. Use in place of the normal head tag. + */ %> - -<%@ tag body-content="scriptless"%> +<%@ tag body-content="scriptless"%> + - + Index: lams_tool_forum/web/WEB-INF/tags/Passon.tag =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/web/WEB-INF/tags/Passon.tag (.../Passon.tag) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_tool_forum/web/WEB-INF/tags/Passon.tag (.../Passon.tag) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -1,86 +1,86 @@ -<% -/**************************************************************** - * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) - * ============================================================= - * License Information: http://lamsfoundation.org/licensing/lams/2.0/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2.0 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 - * USA - * - * http://www.gnu.org/licenses/gpl.txt - * **************************************************************** - */ - - /** - * Passon - * Author: Mitchell Seaton - * Description: Passes on progress data to the Flash Learner to update the progress bar. - * - */ - - %> -<%@ tag body-content="empty" %> -<%@ attribute name="progress" required="true" rtexprvalue="true" type="java.lang.String" %> -<%@ attribute name="version" required="false" rtexprvalue="true" %> -<%@ attribute name="id" required="true" rtexprvalue="true" %> -<%@ attribute name="redirect" required="false" rtexprvalue="true" %> -<%@ taglib uri="tags-core" prefix="c" %> -<%@ taglib uri="tags-lams" prefix="lams" %> - - - - - - - - - - - - - - - - - +<% +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Passon + * Author: Mitchell Seaton + * Description: Passes on progress data to the Flash Learner to update the progress bar. + * + */ + + %> +<%@ tag body-content="empty" %> +<%@ attribute name="progress" required="true" rtexprvalue="true" type="java.lang.String" %> +<%@ attribute name="version" required="false" rtexprvalue="true" %> +<%@ attribute name="id" required="true" rtexprvalue="true" %> +<%@ attribute name="redirect" required="false" rtexprvalue="true" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_forum/web/WEB-INF/web.xml =================================================================== diff -u -re851ecbb7a28dba597688df7f4466b2ab603405c -r59e4b8d442ec5f40e2e7a5bef1bda2059953b59a --- lams_tool_forum/web/WEB-INF/web.xml (.../web.xml) (revision e851ecbb7a28dba597688df7f4466b2ab603405c) +++ lams_tool_forum/web/WEB-INF/web.xml (.../web.xml) (revision 59e4b8d442ec5f40e2e7a5bef1bda2059953b59a) @@ -18,19 +18,14 @@ classpath:/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml classpath:/org/lamsfoundation/lams/learning/learningApplicationContext.xml classpath:/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml + classpath:/org/lamsfoundation/lams/tool/forum/dbupdates/autopatchContext.xml - - - org.springframework.web.context.ContextLoaderListener - - - hibernateFilter - org.springframework.orm.hibernate3.support.OpenSessionInViewFilter + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter sessionFactoryBeanName @@ -73,6 +68,11 @@ org.springframework.web.context.ContextLoaderListener + + + org.lamsfoundation.lams.web.session.SetMaxTimeoutListener + + exportPortfolio @@ -148,6 +148,10 @@ /exportPortfolio + + 120 + +