Index: lams_tool_forum/build.properties =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/build.properties,v diff -u -r1.26 -r1.27 --- lams_tool_forum/build.properties 27 Oct 2010 17:27:35 -0000 1.26 +++ lams_tool_forum/build.properties 4 Mar 2011 13:50:04 -0000 1.27 @@ -9,7 +9,7 @@ ### project properties ### signature=lafrum11 project.displayname = lams forum tool -tool.version=20101025 +tool.version=20110228 # hide tool option hideTool=false Index: lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Attic/Forum.hbm.xml,v diff -u -r1.20 -r1.21 --- lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml 27 Oct 2010 17:27:35 -0000 1.20 +++ lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml 4 Mar 2011 13:50:04 -0000 1.21 @@ -221,6 +221,14 @@ /> + + + + + + + + + + @@ -91,6 +97,9 @@ + + + @@ -161,6 +170,7 @@ 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 Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dbupdates/patch20110228_updateTo236.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/AverageRatingDTO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java,v diff -u -r1.18 -r1.19 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java 2 Feb 2009 03:21:24 -0000 1.18 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dto/MessageDTO.java 4 Mar 2011 13:50:04 -0000 1.19 @@ -46,6 +46,10 @@ private String comment; private boolean released; + //rating fields + private String averageRating; + private String numberOfVotes; + // number of posts the learner has made in this topic. // used when this message is a root topic. private int numOfPosts; @@ -181,6 +185,22 @@ public void setReleased(boolean isReleased) { this.released = isReleased; } + + public String getAverageRating() { + return averageRating; + } + + public void setAverageRating(String averageRating) { + this.averageRating = averageRating; + } + + public String getNumberOfVotes() { + return numberOfVotes; + } + + public void setNumberOfVotes(String numberOfVotes) { + this.numberOfVotes = numberOfVotes; + } public String getAttachmentLocalUrl() { return attachmentLocalUrl; Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java,v diff -u -r1.32 -r1.33 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java 27 Oct 2010 17:27:35 -0000 1.32 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java 4 Mar 2011 13:50:03 -0000 1.33 @@ -67,6 +67,8 @@ private boolean allowNewTopic; private boolean allowUpload; + + private boolean allowRateMessages; private int maximumReply; @@ -549,7 +551,20 @@ public void setAllowUpload(boolean allowUpload) { this.allowUpload = allowUpload; } + + /** + * @hibernate.property column="allow_rate_messages" + * @return + */ + public boolean isAllowRateMessages() { + return allowRateMessages; + } + public void setAllowRateMessages(boolean allowRateMessages) { + this.allowRateMessages = allowRateMessages; + } + + /** * @hibernate.property column="maximum_reply" * @return Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/MessageRating.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/MessageRatingDAO.java'. Fisheye: No comparison available. Pass `N' to diff? 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.108 -r1.109 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 10 Feb 2011 22:38:02 -0000 1.108 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 4 Mar 2011 13:50:04 -0000 1.109 @@ -78,6 +78,7 @@ import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.SessionDataExistsException; import org.lamsfoundation.lams.tool.exception.ToolException; +import org.lamsfoundation.lams.tool.forum.dto.AverageRatingDTO; import org.lamsfoundation.lams.tool.forum.dto.MessageDTO; import org.lamsfoundation.lams.tool.forum.persistence.Attachment; import org.lamsfoundation.lams.tool.forum.persistence.AttachmentDao; @@ -93,6 +94,8 @@ import org.lamsfoundation.lams.tool.forum.persistence.ForumUserDao; import org.lamsfoundation.lams.tool.forum.persistence.Message; import org.lamsfoundation.lams.tool.forum.persistence.MessageDao; +import org.lamsfoundation.lams.tool.forum.persistence.MessageRating; +import org.lamsfoundation.lams.tool.forum.persistence.MessageRatingDAO; import org.lamsfoundation.lams.tool.forum.persistence.MessageSeq; import org.lamsfoundation.lams.tool.forum.persistence.MessageSeqDao; import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException; @@ -132,6 +135,8 @@ private TimestampDao timestampDao; private MessageSeqDao messageSeqDao; + + private MessageRatingDAO messageRatingDao; private ForumUserDao forumUserDao; @@ -588,7 +593,29 @@ currentUser.setSessionFinished(true); forumUserDao.save(currentUser); } + + public AverageRatingDTO rateMessage(Long messageId, Long userId, Long toolSessionID, float rating) { + ForumUser imageGalleryUser = getUserByUserAndSession(userId, toolSessionID); + MessageRating messageRating = messageRatingDao.getRatingByMessageAndUser(messageId, userId); + Message message = messageDao.getById(messageId); + //persist MessageRating changes in DB + if (messageRating == null) { // add + messageRating = new MessageRating(); + messageRating.setUser(imageGalleryUser); + messageRating.setMessage(message); + } + messageRating.setRating(rating); + messageRatingDao.saveObject(messageRating); + + //to make available new changes be visible in jsp page + return messageRatingDao.getAverageRatingDTOByMessage(messageId); + } + + public AverageRatingDTO getAverageRatingDTOByMessage(Long messageId) { + return messageRatingDao.getAverageRatingDTOByMessage(messageId); + } + // *************************************************************************************************************** // Private methods // *************************************************************************************************************** @@ -599,13 +626,23 @@ private List getSortedMessageDTO(SortedMap map) { Iterator iter; MessageSeq msgSeq; + Message message; List msgDtoList = new ArrayList(); iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Entry) iter.next(); msgSeq = (MessageSeq) entry.getKey(); - MessageDTO dto = MessageDTO.getMessageDTO((Message) entry.getValue()); + message = (Message) entry.getValue(); + MessageDTO dto = MessageDTO.getMessageDTO(message); dto.setLevel(msgSeq.getMessageLevel()); + + //set averageRating + if (message.getForum().isAllowRateMessages()) { + AverageRatingDTO averageRating = getAverageRatingDTOByMessage(message.getUid()); + dto.setAverageRating(averageRating.getRating()); + dto.setNumberOfVotes(averageRating.getNumberOfVotes()); + } + msgDtoList.add(dto); } return msgDtoList; @@ -1038,6 +1075,7 @@ toolContentObj.setAllowNewTopic(Boolean.TRUE); toolContentObj.setAllowRichEditor(Boolean.FALSE); toolContentObj.setAllowUpload(Boolean.TRUE); // this is the default value + toolContentObj.setAllowRateMessages(Boolean.FALSE); // this is the default value toolContentObj.setContentId(toolContentId); toolContentObj.setContentInUse(Boolean.FALSE); toolContentObj.setCreated(now); @@ -1230,7 +1268,15 @@ public void setMessageSeqDao(MessageSeqDao messageSeqDao) { this.messageSeqDao = messageSeqDao; } + + public MessageRatingDAO getMessageRatingDao() { + return messageRatingDao; + } + public void setMessageRatingDao(MessageRatingDAO messageRatingDao) { + this.messageRatingDao = messageRatingDao; + } + public ForumToolSessionDao getForumToolSessionDao() { return forumToolSessionDao; } 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.48 -r1.49 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 10 Feb 2011 22:38:02 -0000 1.48 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 4 Mar 2011 13:50:04 -0000 1.49 @@ -31,6 +31,7 @@ import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.tool.forum.dto.AverageRatingDTO; import org.lamsfoundation.lams.tool.forum.dto.MessageDTO; import org.lamsfoundation.lams.tool.forum.persistence.Attachment; import org.lamsfoundation.lams.tool.forum.persistence.Forum; @@ -441,4 +442,9 @@ * @return */ boolean isGroupedActivity(long toolContentID); + + AverageRatingDTO rateMessage(Long messageId, Long userId, Long toolSessionID, float rating); + + AverageRatingDTO getAverageRatingDTOByMessage(Long responseId); + } 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.55 -r1.56 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 19 Nov 2010 19:08:31 -0000 1.55 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 4 Mar 2011 13:50:04 -0000 1.56 @@ -76,6 +76,8 @@ public static final String ATTR_ALLOW_NEW_TOPICS = "allowNewTopics"; public static final String ATTR_ALLOW_RICH_EDITOR = "allowRichEditor"; + + public static final String ATTR_ALLOW_RATE_MESSAGES = "allowRateMessages"; public static final String ATTR_LIMITED_CHARS = "limitedChars"; Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java,v diff -u -r1.69 -r1.70 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 6 Feb 2011 11:26:03 -0000 1.69 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 4 Mar 2011 13:50:04 -0000 1.70 @@ -47,13 +47,16 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +import org.apache.tomcat.util.json.JSONException; +import org.apache.tomcat.util.json.JSONObject; import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.ToolSessionManager; import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.ToolException; +import org.lamsfoundation.lams.tool.forum.dto.AverageRatingDTO; import org.lamsfoundation.lams.tool.forum.dto.MessageDTO; import org.lamsfoundation.lams.tool.forum.persistence.Attachment; import org.lamsfoundation.lams.tool.forum.persistence.Forum; @@ -126,7 +129,10 @@ if (param.equals("updateMessageHideFlag")) { return updateMessageHideFlag(mapping, form, request, response); } - + if (param.equals("rateMessage")) { + return rateMessage(mapping, form, request, response); + } + // ================ Reflection ======================= if (param.equals("newReflection")) { return newReflection(mapping, form, request, response); @@ -206,6 +212,7 @@ sessionMap.put(ForumConstants.ATTR_USER_FINISHED, forumUser.isSessionFinished()); sessionMap.put(ForumConstants.ATTR_ALLOW_EDIT, forum.isAllowEdit()); sessionMap.put(ForumConstants.ATTR_ALLOW_UPLOAD, forum.isAllowUpload()); + sessionMap.put(ForumConstants.ATTR_ALLOW_RATE_MESSAGES, forum.isAllowRateMessages()); sessionMap.put(ForumConstants.ATTR_ALLOW_NEW_TOPICS, forum.isAllowNewTopic()); sessionMap.put(ForumConstants.ATTR_ALLOW_RICH_EDITOR, allowRichEditor); sessionMap.put(ForumConstants.ATTR_LIMITED_CHARS, new Integer(allowNumber)); @@ -884,7 +891,41 @@ return mapping.findForward("success"); } + + /** + * Rates postings submitted by other learners. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + * @throws JSONException + * @throws IOException + * @throws ServletException + * @throws ToolException + */ + public ActionForward rateMessage(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws JSONException, IOException { + forumService = getForumManager(); + + float rating = Float.parseFloat((String) request.getParameter("rate")); + Long responseId = WebUtil.readLongParam(request, "idBox"); + Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + Long userId = new Long(user.getUserID().intValue()); + + AverageRatingDTO averageRatingDTO = forumService.rateMessage(responseId, userId, toolSessionID, rating); + + JSONObject JSONObject = new JSONObject(); + JSONObject.put("averageRating", averageRatingDTO.getRating()); + JSONObject.put("numberOfVotes", averageRatingDTO.getNumberOfVotes()); + response.setContentType("application/x-json"); + response.getWriter().print(JSONObject); + return null; + } + // ========================================================================================== // Utility methods // ========================================================================================== 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.17 -r1.18 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java 17 Sep 2006 06:22:30 -0000 1.17 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java 4 Mar 2011 13:50:04 -0000 1.18 @@ -118,6 +118,7 @@ forum.setLockWhenFinished(false); forum.setAllowNewTopic(false); forum.setAllowUpload(false); + forum.setAllowRateMessages(false); forum.setReflectOnActivity(false); } //-------------------------get/set methods---------------- Index: lams_tool_forum/web/WEB-INF/struts/tiles-defs.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/WEB-INF/struts/Attic/tiles-defs.xml,v diff -u -r1.33 -r1.34 --- lams_tool_forum/web/WEB-INF/struts/tiles-defs.xml 17 Sep 2006 06:22:31 -0000 1.33 +++ lams_tool_forum/web/WEB-INF/struts/tiles-defs.xml 4 Mar 2011 13:50:04 -0000 1.34 @@ -71,10 +71,7 @@ - - - - + Index: lams_tool_forum/web/images/bg_jRatingInfos.png =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/images/Attic/bg_jRatingInfos.png,v diff -u -r1.1 -r1.2 Binary files differ Index: lams_tool_forum/web/images/small.png =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/images/Attic/small.png,v diff -u -r1.1 -r1.2 Binary files differ Index: lams_tool_forum/web/images/stars.png =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/images/Attic/stars.png,v diff -u -r1.1 -r1.2 Binary files differ Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/web/includes/css/jRating.jquery.css'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/web/includes/css/ratingStars.css'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/web/includes/javascript/jRating.jquery.js'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/web/includes/javascript/jquery.js'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_forum/web/jsps/authoring/advance.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/authoring/advance.jsp,v diff -u -r1.26 -r1.27 --- lams_tool_forum/web/jsps/authoring/advance.jsp 27 Oct 2010 17:27:35 -0000 1.26 +++ lams_tool_forum/web/jsps/authoring/advance.jsp 4 Mar 2011 13:50:04 -0000 1.27 @@ -23,6 +23,15 @@

+ + + +

+ +

Index: lams_tool_forum/web/jsps/learning/viewtopic.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/learning/viewtopic.jsp,v diff -u -r1.19 -r1.20 --- lams_tool_forum/web/jsps/learning/viewtopic.jsp 18 Mar 2010 11:30:40 -0000 1.19 +++ lams_tool_forum/web/jsps/learning/viewtopic.jsp 4 Mar 2011 13:50:04 -0000 1.20 @@ -1,92 +1,175 @@ + + <%@ include file="/common/taglibs.jsp"%> + + + + + + + - + + + <fmt:message key="activity.title" /> + + + + + + + + + + + + + + + + + + + + + + + + + +

+

+ ${sessionMap.title} +

+ +
+
+ + + + + + +
+

+ +

+ +
+ + + + +
+ + + + + + +
+
+ +
+ + + + + +
+
+ +
+ + + + + +
+
+
+
+
+ + <%@ include file="message/topicview.jsp"%> + + + +
+ +
+ + + + + + +
+ + + +
+
-
+ + -

- ${sessionMap.title} -

-
-
- - - - - - -
-

- -

-
- - - -
- - - - - - -
-
- -
- - - - - -
-
- -
- - - - - -
-
-
-
-
- - <%@ include file="message/topicview.jsp"%> - - -
-
- - - - - - -
- -
-
+ + + + + Index: lams_tool_forum/web/jsps/learning/message/topicview.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/learning/message/topicview.jsp,v diff -u -r1.32 -r1.33 --- lams_tool_forum/web/jsps/learning/message/topicview.jsp 16 Dec 2008 04:09:33 -0000 1.32 +++ lams_tool_forum/web/jsps/learning/message/topicview.jsp 4 Mar 2011 13:50:04 -0000 1.33 @@ -96,16 +96,26 @@
+ + + + <%@ include file="/jsps/learning/rating/ratingStarsDisabled.jsp"%> + + + <%@ include file="/jsps/learning/rating/ratingStars.jsp"%> + + + - + Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/web/jsps/learning/rating/ratingStars.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/web/jsps/learning/rating/ratingStarsDisabled.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_forum/web/jsps/monitoring/summary.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/summary.jsp,v diff -u -r1.17 -r1.18 --- lams_tool_forum/web/jsps/monitoring/summary.jsp 10 Feb 2011 22:38:02 -0000 1.17 +++ lams_tool_forum/web/jsps/monitoring/summary.jsp 4 Mar 2011 13:50:05 -0000 1.18 @@ -97,6 +97,23 @@ + + + + + + + + + + + + + + + + +