Index: lams_tool_laqa/web/learning/mobile/LearnerRep.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/mobile/LearnerRep.jsp,v diff -u -r1.10.2.6 -r1.10.2.7 --- lams_tool_laqa/web/learning/mobile/LearnerRep.jsp 15 Oct 2015 11:26:01 -0000 1.10.2.6 +++ lams_tool_laqa/web/learning/mobile/LearnerRep.jsp 21 Oct 2015 01:47:34 -0000 1.10.2.7 @@ -118,12 +118,26 @@ rows += ''; + var usesRatings = false; + var hasStartedRating = false; + + if (${generalLearnerFlowDTO.allowRateAnswers == 'true'}) { rows += ''; if (userData["visible"] == 'true') { rows += '
'; + // if the user has left a comment or done a rating in a batch of ratings, we need to keep all related ratings open. + usesRatings = true; + for (j = 0; !hasStartedRating && j < userData.criteriaDtos.length; j++){ + hasStartedRating = userData.criteriaDtos[j].userRating != ""; + if ( hasStartedRating) { + idsBeingRated.push(itemId); // idsBeingRated defined in rating.js + } + } + hasStartedRating = hasStartedRating || ${isCommentsEnabled} && userData["commentPostedByUser"] != ""; + for (j = 0; j < userData.criteriaDtos.length; j++){ var criteriaDto = userData.criteriaDtos[j]; var objectId = criteriaDto["ratingCriteriaId"] + "-" + itemId; @@ -132,7 +146,7 @@ var userRating = criteriaDto.userRating; var isCriteriaNotRatedByUser = userRating == ""; var averageRatingDisplayed = (isItemAuthoredByUser || !isCriteriaNotRatedByUser) ? averageRating : 0; - var ratingStarsClass = (IS_DISABLED ||isItemAuthoredByUser || (MAX_RATES > 0) && (countRatedItems >= MAX_RATES) || !isCriteriaNotRatedByUser) ? "rating-stars-disabled" : "rating-stars"; + var ratingStarsClass = (IS_DISABLED ||isItemAuthoredByUser || (MAX_RATES > 0) && (countRatedItems >= MAX_RATES) && ! hasStartedRating || !isCriteriaNotRatedByUser) ? "rating-stars-disabled" : "rating-stars"; rows += '

'; rows += criteriaDto.title; @@ -188,7 +202,7 @@ rows += '

'; //show comments textarea and a submit button - } else if (!IS_DISABLED) { + } else if (! (IS_DISABLED || usesRatings && MAX_RATES>0 && countRatedItems >= MAX_RATES && !hasStartedRating)) { rows += '
'; rows += '';