Index: lams_build/lib/lams/lams-central.jar =================================================================== RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams-central.jar,v diff -u -r1.84 -r1.85 Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams.jar,v diff -u -r1.445 -r1.446 Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/rest/RestTags.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/rest/RestTags.java,v diff -u -r1.1 -r1.2 --- lams_central/src/java/org/lamsfoundation/lams/rest/RestTags.java 2 May 2015 10:37:17 -0000 1.1 +++ lams_central/src/java/org/lamsfoundation/lams/rest/RestTags.java 21 May 2015 23:39:24 -0000 1.2 @@ -52,6 +52,8 @@ public static String SUBMISSION_DEADLINE = "submissionDeadline"; public static String ALLOW_RICH_TEXT_EDITOR = "allowRichEditor"; public static String USE_SELECT_LEADER_TOOL_OUTPUT = "useSelectLeaderToolOuput"; + public static String MINIMUM_RATES = "minimumRates"; + public static String MAXIMUM_RATES = "maximumRates"; public static String QUESTIONS = "questions"; public static String QUESTION_TEXT = "questionText"; 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.5 -r1.6 --- lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java 29 Apr 2015 18:19:28 -0000 1.5 +++ lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java 21 May 2015 23:39:24 -0000 1.6 @@ -36,7 +36,7 @@ import org.apache.log4j.Logger; import org.apache.tomcat.util.json.JSONException; import org.apache.tomcat.util.json.JSONObject; -import org.lamsfoundation.lams.rating.dto.RatingCriteriaDTO; +import org.lamsfoundation.lams.rating.dto.ItemRatingCriteriaDTO; import org.lamsfoundation.lams.rating.model.LearnerItemRatingCriteria; import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.rating.service.RatingService; @@ -84,7 +84,7 @@ float rating = Float.parseFloat((String) request.getParameter("rate")); - RatingCriteriaDTO averageRatingDTO = ratingService.rateItem(criteria, userId, itemId, rating); + ItemRatingCriteriaDTO averageRatingDTO = ratingService.rateItem(criteria, userId, itemId, rating); NumberFormat numberFormat = NumberFormat.getInstance(Locale.US); numberFormat.setMaximumFractionDigits(1); Index: lams_central/web/css/jquery.jRating.css =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/css/jquery.jRating.css,v diff -u -r1.6 -r1.7 --- lams_central/web/css/jquery.jRating.css 29 Apr 2015 18:19:28 -0000 1.6 +++ lams_central/web/css/jquery.jRating.css 21 May 2015 23:39:24 -0000 1.7 @@ -47,7 +47,13 @@ } /** Please, note this is a LAMS customization. In case of library upgrade copy these lines manually. **/ -.rating-stars-holder {width: 150px; text-align: center;} +.extra-controls-inner:after { + content: " "; + display: block; + height: 0; + clear: both; +} +.rating-stars-holder {width: 150px; text-align: center; float: right;} .rating-stars-caption {padding-top: 6px;} .rating-stars, .rating-stars-disabled {margin: 0px auto; min-height: 20px;} .add-comment { Index: lams_central/web/includes/javascript/common.js =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/includes/javascript/common.js,v diff -u -r1.8 -r1.9 --- lams_central/web/includes/javascript/common.js 30 Apr 2014 22:47:32 -0000 1.8 +++ lams_central/web/includes/javascript/common.js 21 May 2015 23:39:24 -0000 1.9 @@ -107,4 +107,16 @@ xmlhttp.open("POST", url, false); xmlhttp.send(); } + +function getNumberOfWords(value, isRemoveHtmlTags) { + + //HTML tags stripping + if (isRemoveHtmlTags) { + value = value.replace(/ /g, '').replace(/<\/?[a-z][^>]*>/gi, ''); + } + value = value.trim(); + + var wordCount = value ? (value.replace(/['";:,.?\-!]+/g, '').match(/\S+/g) || []).length : 0; + return wordCount; +} \ No newline at end of file Index: lams_central/web/includes/javascript/rating.js =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/includes/javascript/rating.js,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_central/web/includes/javascript/rating.js 21 May 2015 23:39:24 -0000 1.1 @@ -0,0 +1,142 @@ + +//Please, set up LAMS_URL, COUNT_RATED_ITEMS, COMMENTS_MIN_WORDS_LIMIT, MAX_RATES and MIN_RATES, +//COMMENT_TEXTAREA_TIP_LABEL, WARN_COMMENTS_IS_BLANK_LABEL, WARN_MIN_NUMBER_WORDS_LABEL constants in parent document + +//constant indicating there is rting limits set up +var HAS_RATING_LIMITS; + +$(document).ready(function(){ + HAS_RATING_LIMITS = MAX_RATES!=0 || MIN_RATES!=0; + + initializeJRating(); + + //check minimum rates limit initially + if (MIN_RATES != 0) { + checkMinimumRatesLimit(COUNT_RATED_ITEMS); + } +}); + +//initialize jRating and post comment button +function initializeJRating() { + + $(".rating-stars-new").filter($(".rating-stars")).jRating({ + phpPath : LAMS_URL + "servlet/rateItem?hasRatingLimits=" + HAS_RATING_LIMITS, + rateMax : 5, + decimalLength : 1, + onSuccess : function(data, itemId){ + + $("#user-rating-" + itemId).html(data.userRating); + $("#average-rating-" + itemId).html(data.averageRating); + $("#number-of-votes-" + itemId).html(data.numberOfVotes); + $("#rating-stars-caption-" + itemId).css("visibility", "visible"); + + //handle rating limits if available + handleRatingLimits(data.countRatedItems); + + }, + onError : function(){ + jError('Error. Please, retry'); + } + }); + + $(".rating-stars-new").filter($(".rating-stars-disabled")).jRating({ + rateMax : 5, + isDisabled : true + }); + + $(".rating-stars-new").removeClass("rating-stars-new"); + + //addNewComment button handler + $(".add-comment-new").click(function() { + var itemId = $(this).data("item-id"); + var commentsCriteriaId = $(this).data("comment-criteria-id"); + + //replace special characters with HTML tags + var tempTextarea = jQuery('