Index: lams_tool_laqa/web/learning/RevisitedLearnerRep.jsp =================================================================== diff -u -rd038b7b5b6879abc60637c74af2110bb4d453275 -r185407e8ce549d060dcd00c47c86007145eee47e --- lams_tool_laqa/web/learning/RevisitedLearnerRep.jsp (.../RevisitedLearnerRep.jsp) (revision d038b7b5b6879abc60637c74af2110bb4d453275) +++ lams_tool_laqa/web/learning/RevisitedLearnerRep.jsp (.../RevisitedLearnerRep.jsp) (revision 185407e8ce549d060dcd00c47c86007145eee47e) @@ -115,12 +115,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; @@ -129,7 +143,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; @@ -185,7 +199,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 += '';