Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java =================================================================== diff -u -r0cf0678d1f9a5cda177b0521808cfe0dfa8e5307 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (.../RatingServlet.java) (revision 0cf0678d1f9a5cda177b0521808cfe0dfa8e5307) +++ lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (.../RatingServlet.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -83,7 +83,6 @@ } else { float rating = Float.parseFloat((String) request.getParameter("rate")); - boolean hasRatingLimists = WebUtil.readBooleanParam(request, "hasRatingLimists", false); RatingCriteriaDTO averageRatingDTO = ratingService.rateItem(criteria, userId, itemId, rating); @@ -92,18 +91,21 @@ JSONObject.put("userRating", numberFormat.format(rating)); JSONObject.put("averageRating", averageRatingDTO.getAverageRating()); JSONObject.put("numberOfVotes", averageRatingDTO.getNumberOfVotes()); + } + - // refresh countRatedItems in case there is rating limit set - if (hasRatingLimists) { - // as long as this can be requested only for LEARNER_ITEM_CRITERIA_TYPE type, cast Criteria - LearnerItemRatingCriteria learnerItemRatingCriteria = (LearnerItemRatingCriteria) criteria; - Long toolContentId = learnerItemRatingCriteria.getToolContentId(); + boolean hasRatingLimits = WebUtil.readBooleanParam(request, "hasRatingLimits", false); - int countRatedItems = ratingService.getCountItemsRatedByActivityAndUser(toolContentId, userId); - JSONObject.put("countRatedItems", countRatedItems); - } + // refresh countRatedItems in case there is rating limit set + if (hasRatingLimits) { + // as long as this can be requested only for LEARNER_ITEM_CRITERIA_TYPE type, cast Criteria + LearnerItemRatingCriteria learnerItemRatingCriteria = (LearnerItemRatingCriteria) criteria; + Long toolContentId = learnerItemRatingCriteria.getToolContentId(); + int countRatedItems = ratingService.getCountItemsRatedByUser(toolContentId, userId); + JSONObject.put("countRatedItems", countRatedItems); } + } catch (JSONException e) { throw new ServletException(e); } Index: lams_central/web/css/defaultHTML.css =================================================================== diff -u -r523ee42825f76a1a82e0b3cae120a2d35de9f36b -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_central/web/css/defaultHTML.css (.../defaultHTML.css) (revision 523ee42825f76a1a82e0b3cae120a2d35de9f36b) +++ lams_central/web/css/defaultHTML.css (.../defaultHTML.css) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -1723,3 +1723,6 @@ div.delete-arrow { background-image: url('../images/disposal.gif'); } +.gray-color{ + color: gray; +} Index: lams_central/web/css/jquery.jRating.css =================================================================== diff -u -r0cf0678d1f9a5cda177b0521808cfe0dfa8e5307 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_central/web/css/jquery.jRating.css (.../jquery.jRating.css) (revision 0cf0678d1f9a5cda177b0521808cfe0dfa8e5307) +++ lams_central/web/css/jquery.jRating.css (.../jquery.jRating.css) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -63,6 +63,10 @@ padding: 15px; margin: 10px 0; } +.rating-info{ + margin-top: 0; + margin-bottom: 12px; +} /** Remove the following once we move all tools to use Rating.tag. **/ .rating-stars-div {float:right; padding-right: 10px; margin-top: -8px; min-height: 45px;} Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml (.../RatingCriteria.hbm.xml) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml (.../RatingCriteria.hbm.xml) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -42,6 +42,14 @@ column="comments_enabled" /> + + @hibernate.class Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql =================================================================== diff -u -r81eee2b8465a62a56bdfbad4401dafd6554dd934 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql (.../patch02040041.sql) (revision 81eee2b8465a62a56bdfbad4401dafd6554dd934) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql (.../patch02040041.sql) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -15,6 +15,7 @@ , title VARCHAR(255) , rating_criteria_type_id INT(11) NOT NULL DEFAULT 0 , comments_enabled TINYINT(1) NOT NULL DEFAULT 0 + , comments_min_words_limit INT(11) DEFAULT 0 , order_id INT(11) NOT NULL , tool_content_id BIGINT(20) , item_id BIGINT(20) Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java (.../IRatingDAO.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java (.../IRatingDAO.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -31,27 +31,29 @@ public interface IRatingDAO { void saveOrUpdate(Object object); - + Rating getRating(Long ratingCriteriaId, Integer userId, Long itemId); - + /** * Returns rating statistics by particular item + * * @param itemId * @return */ RatingCriteriaDTO getRatingAverageDTOByItem(Long ratingCriteriaId, Long itemId); - + RatingCriteriaDTO getRatingAverageDTOByUser(Long ratingCriteriaId, Long itemId, Integer userId); - + Rating get(Long uid); - + /** - * Returns number of images rated by specified user in a current activity. Applicable only for RatingCriterias of LEARNER_ITEM_CRITERIA_TYPE type. + * Returns number of images rated by specified user in a current activity. It counts comments as ratings. This method + * is applicable only for RatingCriterias of LEARNER_ITEM_CRITERIA_TYPE type. * * @param toolContentId * @param userId * @return */ - int getCountItemsRatedByActivityAndUser(Long toolContentId, Integer userId); + int getCountItemsRatedByUser(final Long toolContentId, final Integer userId); } Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java (.../RatingCommentDAO.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java (.../RatingCommentDAO.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -28,7 +28,9 @@ import org.lamsfoundation.lams.dao.hibernate.BaseDAO; import org.lamsfoundation.lams.rating.dao.IRatingCommentDAO; import org.lamsfoundation.lams.rating.dto.RatingCriteriaDTO; +import org.lamsfoundation.lams.rating.model.Rating; import org.lamsfoundation.lams.rating.model.RatingComment; +import org.lamsfoundation.lams.rating.model.ToolActivityRatingCriteria; public class RatingCommentDAO extends BaseDAO implements IRatingCommentDAO { private static final String FIND_RATING_BY_CRITERIA_AND_USER_AND_ITEM = "FROM " + RatingComment.class.getName() @@ -37,6 +39,11 @@ private static final String FIND_COMMENTS_BY_CRITERIA_AND_ITEM = "FROM " + RatingComment.class.getName() + " AS r where r.ratingCriteria.ratingCriteriaId=? AND r.itemId=?"; +// private static final String COUNT_COMMENTS_BY_ITEM_AND_USER = "SELECT COUNT(r) FROM " +// + RatingComment.class.getName() +// + " AS r " +// + " WHERE r.ratingCriteria.toolContentId = ? AND r.ratingCriteria.commentsEnabled IS TRUE AND r.itemId =? AND r.learner.userId =?"; + private List getCommentsByCriteriaAndItem(Long ratingCriteriaId, Long itemId) { return (List) (getHibernateTemplate().find(FIND_COMMENTS_BY_CRITERIA_AND_ITEM, new Object[] { ratingCriteriaId, itemId })); @@ -63,4 +70,15 @@ criteriaDto.setRatingComments(ratingComments); return criteriaDto; } + +// @Override +// public boolean isUserCommentedItem(Long toolContentId, Long itemId, Integer userId) { +// List list = getHibernateTemplate().find(COUNT_COMMENTS_BY_ITEM_AND_USER, +// new Object[] { toolContentId, itemId, userId }); +// if (list == null || list.size() == 0) { +// return false; +// } else { +// return ((Number) list.get(0)).intValue() > 0; +// } +// } } Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java (.../RatingDAO.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java (.../RatingDAO.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -26,14 +26,21 @@ package org.lamsfoundation.lams.rating.dao.hibernate; import java.text.NumberFormat; +import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Set; +import org.hibernate.HibernateException; +import org.hibernate.Session; import org.lamsfoundation.lams.dao.hibernate.BaseDAO; import org.lamsfoundation.lams.rating.dao.IRatingDAO; import org.lamsfoundation.lams.rating.dto.RatingCriteriaDTO; import org.lamsfoundation.lams.rating.model.Rating; +import org.lamsfoundation.lams.rating.model.RatingComment; import org.lamsfoundation.lams.rating.model.ToolActivityRatingCriteria; +import org.springframework.orm.hibernate3.HibernateCallback; +import org.springframework.orm.hibernate3.HibernateTemplate; public class RatingDAO extends BaseDAO implements IRatingDAO { @@ -49,12 +56,13 @@ private static final String FIND_RATING_AVERAGE_BY_ITEM = "SELECT AVG(r.rating), COUNT(*) FROM " + Rating.class.getName() + " AS r where r.ratingCriteria.ratingCriteriaId=? AND r.itemId=?"; - private static final String COUNT_ITEMS_RATED_BY_ACTIVITY_AND_USER = "SELECT COUNT(DISTINCT r.itemId) FROM " - + Rating.class.getName() - + " AS r, " - + ToolActivityRatingCriteria.class.getName() - + " AS cr " - + " WHERE r.ratingCriteria.ratingCriteriaId = cr.ratingCriteriaId AND cr.toolContentId = ? AND r.learner.userId =?"; + private static final String COUNT_ITEMS_RATED_BY_ACTIVITY_AND_USER = "SELECT COUNT(DISTINCT r.itemId)+(SELECT COUNT(comment) FROM " + + RatingComment.class.getName() + + " AS comment " + + " WHERE comment.ratingCriteria.toolContentId = :toolContentId AND comment.learner.userId =:userId AND comment.itemId =:itemId AND cr.commentsEnabled IS TRUE ) FROM " + + Rating.class.getName() + + " AS r " + + " WHERE r.ratingCriteria.toolContentId = :toolContentId AND r.learner.userId =:userId"; @Override public void saveOrUpdate(Object object) { @@ -131,14 +139,26 @@ } @Override - public int getCountItemsRatedByActivityAndUser(Long toolContentId, Integer userId) { + public int getCountItemsRatedByUser(final Long toolContentId, final Integer userId) { + + //unions don't work in HQL so doing 2 separate DB queries (http://stackoverflow.com/a/3940445) + String FIND_ITEM_IDS_RATED_BY_USER = "SELECT DISTINCT r.itemId FROM " + Rating.class.getName() + " AS r " + + " WHERE r.ratingCriteria.toolContentId = :toolContentId AND r.learner.userId =:userId"; - List list = getHibernateTemplate().find(COUNT_ITEMS_RATED_BY_ACTIVITY_AND_USER, - new Object[] { toolContentId, userId }); - if (list == null || list.size() == 0) { - return 0; - } else { - return ((Number) list.get(0)).intValue(); - } + String FIND_ITEM_IDS_COMMENTED_BY_USER = "SELECT DISTINCT comment.itemId FROM " + + RatingComment.class.getName() + + " AS comment " + + " WHERE comment.ratingCriteria.toolContentId = :toolContentId AND comment.learner.userId =:userId AND comment.ratingCriteria.commentsEnabled IS TRUE"; + + List ratedItemIds = this.getSession().createQuery(FIND_ITEM_IDS_RATED_BY_USER) + .setLong("toolContentId", toolContentId).setInteger("userId", userId).list(); + + List commentedItemIds = this.getSession().createQuery(FIND_ITEM_IDS_COMMENTED_BY_USER) + .setLong("toolContentId", toolContentId).setInteger("userId", userId).list(); + + Set unionItemIds = new HashSet(ratedItemIds); + unionItemIds.addAll(commentedItemIds); + + return unionItemIds.size(); } } Index: lams_common/src/java/org/lamsfoundation/lams/rating/dto/RatingCriteriaDTO.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/rating/dto/RatingCriteriaDTO.java (.../RatingCriteriaDTO.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/src/java/org/lamsfoundation/lams/rating/dto/RatingCriteriaDTO.java (.../RatingCriteriaDTO.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -41,6 +41,7 @@ //comments rating properties private List ratingComments; + private int commentsMinWordsLimit; public RatingCriteriaDTO() { } @@ -97,5 +98,13 @@ public void setRatingComments(List ratingComments) { this.ratingComments = ratingComments; } + + public int getCommentsMinWordsLimit() { + return commentsMinWordsLimit; + } + + public void setCommentsMinWordsLimit(int commentsMinWordsLimit) { + this.commentsMinWordsLimit = commentsMinWordsLimit; + } } Index: lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java (.../RatingCriteria.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java (.../RatingCriteria.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -84,6 +84,8 @@ private Integer ratingCriteriaTypeId; private boolean commentsEnabled; + + private int commentsMinWordsLimit; // --------------------------------------------------------------------- // Object constructors @@ -179,7 +181,15 @@ public void setCommentsEnabled(boolean commentsEnabled) { this.commentsEnabled = commentsEnabled; } + + public int getCommentsMinWordsLimit() { + return commentsMinWordsLimit; + } + public void setCommentsMinWordsLimit(int commentsMinWordsLimit) { + this.commentsMinWordsLimit = commentsMinWordsLimit; + } + @Override public String toString() { return new ToStringBuilder(this).append("ratingCriteriaId", ratingCriteriaId).toString(); Index: lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java (.../IRatingService.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java (.../IRatingService.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -33,34 +33,18 @@ public interface IRatingService { -// Long createRating(Long id, Integer idType, String signature, Integer userID, String title, String entry); -// -// TreeMap> getEntryByLesson(Integer userID, Integer idType); -// -// List getEntry(Long id, Integer idType, String signature, Integer userID); -// -// List getEntry(Long id, Integer idType, String signature); -// -// List getEntry(Long id, Integer idType, Integer userID); -// -// List getEntry(Integer userID); -// -// List getEntry(Integer userID, Integer idType); -// -// List getEntry(Integer userID, Long lessonID); - void saveOrUpdateRating(Rating rating); - + void saveOrUpdateRatingCriteria(RatingCriteria criteria); - + void deleteRatingCriteria(Long ratingCriteriaId); - + List getCriteriasByToolContentId(Long toolContentId); - + RatingCriteria getCriteriaByCriteriaId(Long ratingCriteriaId); - + RatingCriteria getCriteriaByCriteriaId(Long ratingCriteriaId, Class clasz); - + /** * Return Rating by the given itemId and userId. * @@ -77,20 +61,21 @@ * @return */ List getRatingsByItem(Long itemId); - + RatingCriteriaDTO rateItem(RatingCriteria criteria, Integer userId, Long itemId, float ratingFloat); - + void commentItem(RatingCriteria ratingCriteria, Integer userId, Long itemId, String comment); - + RatingCriteriaDTO getCriteriaDTOByUser(RatingCriteria criteria, Long itemId, Integer userId); - + /** - * Returns number of images rated by specified user in a current activity. Applicable only for RatingCriterias of LEARNER_ITEM_CRITERIA_TYPE type. + * Returns number of images rated by specified user in a current activity. It counts comments as ratings. This + * method is applicable only for RatingCriterias of LEARNER_ITEM_CRITERIA_TYPE type. * * @param toolContentId * @param userId * @return */ - int getCountItemsRatedByActivityAndUser(Long toolContentId, Integer userId); + int getCountItemsRatedByUser(final Long toolContentId, final Integer userId); } Index: lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java (.../RatingService.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java (.../RatingService.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -64,8 +64,8 @@ } @Override - public int getCountItemsRatedByActivityAndUser(Long toolContentId, Integer userId) { - return ratingDAO.getCountItemsRatedByActivityAndUser(toolContentId, userId); + public int getCountItemsRatedByUser(final Long toolContentId, final Integer userId) { + return ratingDAO.getCountItemsRatedByUser(toolContentId, userId); } @Override @@ -123,6 +123,7 @@ RatingCriteriaDTO criteriaDto; if (criteria.isCommentsEnabled()) { criteriaDto = ratingCommentDAO.getCommentsRatingDTO(criteriaId, itemId, userId); + criteriaDto.setCommentsMinWordsLimit(criteria.getCommentsMinWordsLimit()); } else { criteriaDto = ratingDAO.getRatingAverageDTOByUser(criteriaId, itemId, userId); Index: lams_common/src/java/org/lamsfoundation/lams/tool/OutputFactory.java =================================================================== diff -u -r1a5446e3a1f962f1bb831c1bbaef14acf9d3635c -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_common/src/java/org/lamsfoundation/lams/tool/OutputFactory.java (.../OutputFactory.java) (revision 1a5446e3a1f962f1bb831c1bbaef14acf9d3635c) +++ lams_common/src/java/org/lamsfoundation/lams/tool/OutputFactory.java (.../OutputFactory.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -201,7 +201,7 @@ Object endValue, Object complexValue, Boolean showConditionNameOnly, Class valueClass) { ToolOutputDefinition definition = new ToolOutputDefinition(); definition.setName(definitionName); - definition.setDescription(getI18NText(definitionName, true)); + definition.setDescription(definitionName); definition.setType(type); definition.setStartValue(startValue); definition.setEndValue(endValue); Index: lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r0cf0678d1f9a5cda177b0521808cfe0dfa8e5307 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 0cf0678d1f9a5cda177b0521808cfe0dfa8e5307) +++ lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -172,7 +172,6 @@ label.add.criteria =Add Criteria label.your.rating =Your rating is {0}
Avg rating {1} out of {2} votes label.average.rating =Average rating {0}/{1} votes - label.rate.limits.reminder =Rating limitation: Minimum {0} and Maximum {1}. label.rate.limits.topic.reminder =You have rated {0} images already. label.rate.limits.reminder.min = You must rate at least {0} images. @@ -182,5 +181,7 @@ label.maximum =Maximum: label.no.minimum =No minimum label.no.maximum =No maximum +label.minimum.number.words =Minimum number of words in a comment {0} +warning.minimum.number.words =There is a minimum required number of words in a comment: {0}. So far you've entered {1} word(s). #======= End labels: Exported 161 labels for en AU ===== Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -45,7 +45,7 @@ /** * @author Dapeng.Ni * - * Interface that defines the contract that all ShareImageGallery service provider must follow. + * Interface that defines the contract that all ShareImageGallery service provider must follow. */ public interface IImageGalleryService { @@ -122,7 +122,7 @@ * @return */ Set getImagesForGroup(ImageGallery imageGallery, Long sessionId); - + /** * Calculates average rating and number of rating for the current group. * @@ -140,31 +140,31 @@ * @return */ void saveOrUpdateImageGalleryItem(ImageGalleryItem item); - + /** * Delete image with the given uid from imageGallery. * * @param toolSessionId * @param imageUid */ void deleteImage(Long toolSessionId, Long imageUid); - + List getRatingCriterias(Long toolContentId); - + void saveOrUpdateRatingCriteria(RatingCriteria criteria); - + void deleteRatingCriteria(Long ratingCriteriaId); - + List getRatingCriteriaDtos(Long contentId, Long imageUid, Long userId); - + /** - * Returns number of images rated by specified user in a current activity. + * Returns number of images rated by specified user in a current activity. It counts comments as ratings. * * @param toolContentId * @param userId * @return */ - int getCountImagesRatedByActivityAndUser(Long toolContentId, Integer userId); + int getCountImagesRatedByUser(Long toolContentId, Integer userId); /** * Save/update ImageVote. @@ -182,22 +182,22 @@ * @return */ ImageGallery getImageGalleryBySessionId(Long sessionId); - + /** * Get imageComment by the given uid. * * @param commentUid * @return */ ImageComment getImageCommentByUid(Long commentUid); - + /** * Updates imageComment by the given uid. * * @param comment */ void saveImageComment(ImageComment comment); - + /** * Delete imageComment by the given uid. * @@ -212,15 +212,15 @@ * @return */ ImageGallerySession getImageGallerySessionBySessionId(Long sessionId); - + /** * Get ImageGallery by toolContentID. * * @param contentId * @return */ ImageGallery getImageGalleryByContentId(Long contentId); - + /** * Returns imageVote by the given imageUid and userId * @@ -229,7 +229,7 @@ * @return */ ImageVote getImageVoteByImageAndUser(Long imageUid, Long userId); - + /** * Return number of imageVotes made by user. * @@ -282,7 +282,7 @@ * * @param itemUid * @param visible - * true, item is visible. False, item is invisible. + * true, item is visible. False, item is invisible. */ void setItemVisible(Long itemUid, boolean visible); @@ -291,8 +291,8 @@ * * @param sessionId * @param skipHide - * true, don't get imageGallery item if its isHide flag is true. Otherwise, get all - * imageGallery item + * true, don't get imageGallery item if its isHide flag is true. Otherwise, get all + * imageGallery item * @return */ List>> exportBySessionId(Long sessionId, ImageGalleryUser user, boolean skipHide); @@ -347,9 +347,9 @@ * Gets a message from imageGallery bundle. Same as in JSP pages. * * @param key - * key of the message + * key of the message * @param args - * arguments for the message + * arguments for the message * @return message content */ String getLocalisedMessage(String key, Object[] args); @@ -368,9 +368,9 @@ * @param item */ void saveOrUpdateImageGalleryConfigItem(ImageGalleryConfigItem item); - + void notifyTeachersOnImageSumbit(Long sessionId, ImageGalleryUser imageGalleryUser); - + /** * Returns whether activity is grouped and therefore it is expected more than one tool session. * Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -1184,8 +1184,8 @@ } @Override - public int getCountImagesRatedByActivityAndUser(Long toolContentId, Integer userId) { - return ratingService.getCountItemsRatedByActivityAndUser(toolContentId, userId); + public int getCountImagesRatedByUser(Long toolContentId, Integer userId) { + return ratingService.getCountItemsRatedByUser(toolContentId, userId); } // ***************************************************************************** Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -435,6 +435,10 @@ commentsResponsibleCriteria.setOrderId(0); commentsResponsibleCriteria.setCommentsEnabled(true); } + + int commentsMinWordsLimit = WebUtil.readIntParam(request, "commentsMinWordsLimit"); + commentsResponsibleCriteria.setCommentsMinWordsLimit(commentsMinWordsLimit); + service.saveOrUpdateRatingCriteria(commentsResponsibleCriteria); // delete commentsRatingCriteria if it's not required Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -223,7 +223,7 @@ // store how many items are rated if (imageGallery.isAllowRank()) { - int countRatedImages = service.getCountImagesRatedByActivityAndUser(imageGallery.getContentId(), userId); + int countRatedImages = service.getCountImagesRatedByUser(imageGallery.getContentId(), userId.intValue()); sessionMap.put(ImageGalleryConstants.ATTR_COUNT_RATED_IMAGES, countRatedImages); } @@ -503,13 +503,13 @@ sessionMap.put(ImageGalleryConstants.ATTR_RATING_DTOS, ratingDtos); // store how many items are rated - int countRatedImages = service.getCountImagesRatedByActivityAndUser(imageGallery.getContentId(), userId.intValue()); + int countRatedImages = service.getCountImagesRatedByUser(imageGallery.getContentId(), userId.intValue()); sessionMap.put(ImageGalleryConstants.ATTR_COUNT_RATED_IMAGES, countRatedImages); } if (!isTeacher && imageGallery.isAllowVote()) { boolean isVotedForThisImage = false; - ImageVote imageVote = service.getImageVoteByImageAndUser(image.getUid(), userId); + ImageVote imageVote = service.getImageVoteByImageAndUser(imageUid, userId); if (imageVote != null && imageVote.isVoted()) { isVotedForThisImage = true; } Index: lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -rec25cec0aae2211ee71688230aaa0dfd309018ad --- lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (.../AuthoringRatingCriteria.tag) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (.../AuthoringRatingCriteria.tag) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) @@ -28,6 +28,7 @@ <%@ attribute name="noMaximumLabel" required="false" rtexprvalue="true" %> <%@ attribute name="jsWarningLabel" required="false" rtexprvalue="true" %> <%@ attribute name="allowCommentsLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="minNumberWordsLabel" required="false" rtexprvalue="true" %> <%-- Default value for message key --%> @@ -66,7 +67,20 @@ + + + + + + + + + + + + + +