Index: lams_build/lib/lams/lams.jar =================================================================== RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams.jar,v diff -u -r1.443 -r1.444 Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java,v diff -u -r1.4 -r1.5 --- lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java 24 Apr 2015 21:23:08 -0000 1.4 +++ lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java 29 Apr 2015 18:19:28 -0000 1.5 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/css/defaultHTML.css,v diff -u -r1.64 -r1.65 --- lams_central/web/css/defaultHTML.css 18 Apr 2015 01:24:19 -0000 1.64 +++ lams_central/web/css/defaultHTML.css 29 Apr 2015 18:19:28 -0000 1.65 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/css/jquery.jRating.css,v diff -u -r1.5 -r1.6 --- lams_central/web/css/jquery.jRating.css 24 Apr 2015 21:23:08 -0000 1.5 +++ lams_central/web/css/jquery.jRating.css 29 Apr 2015 18:19:28 -0000 1.6 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml,v diff -u -r1.2 -r1.3 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml 23 Apr 2015 22:42:39 -0000 1.2 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml 29 Apr 2015 18:18:54 -0000 1.3 @@ -42,6 +42,14 @@ column="comments_enabled" /> + + @hibernate.class Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql 24 Apr 2015 00:10:47 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql 29 Apr 2015 18:18:54 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java 23 Apr 2015 22:42:39 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java 29 Apr 2015 18:18:54 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java,v diff -u -r1.1 -r1.2 --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java 23 Apr 2015 22:42:39 -0000 1.1 +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java 29 Apr 2015 18:18:54 -0000 1.2 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java 23 Apr 2015 22:42:39 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java 29 Apr 2015 18:18:54 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/rating/dto/Attic/RatingCriteriaDTO.java,v diff -u -r1.1 -r1.2 --- lams_common/src/java/org/lamsfoundation/lams/rating/dto/RatingCriteriaDTO.java 23 Apr 2015 22:42:39 -0000 1.1 +++ lams_common/src/java/org/lamsfoundation/lams/rating/dto/RatingCriteriaDTO.java 29 Apr 2015 18:18:54 -0000 1.2 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java,v diff -u -r1.2 -r1.3 --- lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java 23 Apr 2015 22:42:39 -0000 1.2 +++ lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java 29 Apr 2015 18:18:54 -0000 1.3 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java 23 Apr 2015 22:42:39 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java 29 Apr 2015 18:18:54 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java 23 Apr 2015 22:42:39 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java 29 Apr 2015 18:18:54 -0000 1.4 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/OutputFactory.java,v diff -u -r1.10 -r1.11 --- lams_common/src/java/org/lamsfoundation/lams/tool/OutputFactory.java 26 Jul 2009 22:18:59 -0000 1.10 +++ lams_common/src/java/org/lamsfoundation/lams/tool/OutputFactory.java 29 Apr 2015 18:18:54 -0000 1.11 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties,v diff -u -r1.37 -r1.38 --- lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties 24 Apr 2015 21:23:06 -0000 1.37 +++ lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties 29 Apr 2015 18:18:49 -0000 1.38 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java,v diff -u -r1.23 -r1.24 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java 23 Apr 2015 22:42:42 -0000 1.23 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java 29 Apr 2015 18:18:49 -0000 1.24 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java,v diff -u -r1.36 -r1.37 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java 23 Apr 2015 22:42:42 -0000 1.36 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java 29 Apr 2015 18:18:49 -0000 1.37 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java,v diff -u -r1.13 -r1.14 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java 23 Apr 2015 22:42:43 -0000 1.13 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java 29 Apr 2015 18:18:49 -0000 1.14 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java,v diff -u -r1.33 -r1.34 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java 23 Apr 2015 22:42:43 -0000 1.33 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java 29 Apr 2015 18:18:49 -0000 1.34 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag,v diff -u -r1.4 -r1.5 --- lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag 23 Apr 2015 22:42:42 -0000 1.4 +++ lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag 29 Apr 2015 18:18:49 -0000 1.5 @@ -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 @@ + + + + + + + + + + + + + +