Index: lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java
===================================================================
diff -u -r33829c670fd8c90447d62ea3300498a103905e7a -r1307599981af4c3f63c2da571c07e150d4713e8d
--- lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (.../RatingServlet.java) (revision 33829c670fd8c90447d62ea3300498a103905e7a)
+++ lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (.../RatingServlet.java) (revision 1307599981af4c3f63c2da571c07e150d4713e8d)
@@ -49,6 +49,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
+import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -122,10 +123,20 @@
if (criteria.isCommentsEnabled()) {
// can have but do not have to have comment
String comment = WebUtil.readStrParam(request, "comment", true);
+
if (comment != null) {
ratingService.commentItem(criteria, toolSessionId, userId, itemId, comment);
+
responseJSON.put("comment", StringEscapeUtils.escapeCsv(comment));
+ boolean showAllComments = WebUtil.readBooleanParam(request, "showAllComments", false);
+ if (showAllComments) {
+ ArrayNode allCommentsJSON = JsonNodeFactory.instance.arrayNode();
+ ratingService.getCommentsByCriteriaAndItem(ratingCriteriaId, null, itemId)
+ .forEach(c -> allCommentsJSON.add(c.getComment()));
+ responseJSON.set("allComments", allCommentsJSON);
+ }
}
+
}
String floatString = request.getParameter("rate");
Index: lams_central/web/includes/javascript/rating.js
===================================================================
diff -u -rf5d73e30a128c7057badb289646cd9a9ce4b95f5 -r1307599981af4c3f63c2da571c07e150d4713e8d
--- lams_central/web/includes/javascript/rating.js (.../rating.js) (revision f5d73e30a128c7057badb289646cd9a9ce4b95f5)
+++ lams_central/web/includes/javascript/rating.js (.../rating.js) (revision 1307599981af4c3f63c2da571c07e150d4713e8d)
@@ -108,6 +108,7 @@
$(".add-comment-new").click(function() {
var itemId = $(this).data("item-id");
var commentsCriteriaId = $(this).data("comment-criteria-id");
+ var showAllComments = $(this).data('show-all-comments');
var comment = validComment("comment-textarea-" + itemId, false, false);
if ( ! comment )
@@ -124,20 +125,33 @@
hasRatingLimits: HAS_RATING_LIMITS,
ratingLimitsByCriteria: ratingLimitsByCriteria,
maxRatingsForItem: maxRatingsForItem,
+ showAllComments : showAllComments,
toolSessionId: SESSION_ID
},
success: function(data, textStatus) {
if ( data.error ) {
handleError();
} else {
- //add comment to HTML
- jQuery('
', {
- 'class': "rating-comment",
- html: data.comment
- }).appendTo('#comments-area-' + itemId);
+ var commentsArea = $('#comments-area-' + itemId);
+
+ if (data.allComments) {
+ // add all users' comments to HTML
+ jQuery.each(data.allComments, function(){
+ jQuery('', {
+ 'class': "rating-comment",
+ html: this
+ }).appendTo(commentsArea);
+ });
+ } else {
+ //add this user's comment to HTML
+ jQuery('', {
+ 'class': "rating-comment",
+ html: data.comment
+ }).appendTo(commentsArea);
+ }
//hide comments textarea and button
- $("#add-comment-area-" + itemId).hide();
+ $("#add-comment-area-" + itemId, commentsArea).hide();
//handle rating limits if available
if (HAS_RATING_LIMITS) {
Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r1307599981af4c3f63c2da571c07e150d4713e8d
--- lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java (.../IRatingDAO.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java (.../IRatingDAO.java) (revision 1307599981af4c3f63c2da571c07e150d4713e8d)
@@ -21,8 +21,6 @@
* ****************************************************************
*/
-
-
package org.lamsfoundation.lams.rating.dao;
import java.util.Collection;
@@ -35,7 +33,7 @@
public interface IRatingDAO {
void saveOrUpdate(Object object);
-
+
void delete(Object object);
/** Not limiting by session as the userId is restrictive enough */
@@ -58,6 +56,10 @@
*/
ItemRatingCriteriaDTO getRatingAverageDTOByItem(Long ratingCriteriaId, Long toolSessionId, Long itemId);
+ List