@@ -128,10 +128,13 @@ class MovieHtmxController(
128128 logger.info(" Loading more ratings for user {} at offset {}" , movieBuff.email, offset)
129129 val ratings = movieService.getUserRatings(movieBuff, offset, limit)
130130
131+ val newOffset = offset + ratings.size
132+ val totalRatings = movieBuff.movieRatings.size
133+
131134 model.addAttribute(" ratings" , ratings)
132- model.addAttribute(" offset" , offset + ratings.size )
135+ model.addAttribute(" offset" , newOffset )
133136 model.addAttribute(" limit" , limit)
134- model.addAttribute(" hasMore" , offset + ratings.size < movieBuff.movieRatings.size )
137+ model.addAttribute(" hasMore" , newOffset < totalRatings )
135138
136139 return " fragments/rating-items"
137140 }
@@ -147,7 +150,7 @@ class MovieHtmxController(
147150 /* *
148151 * Process a new rating submission
149152 */
150- @PostMapping(" /ratings/add" )
153+ @PostMapping(" /ratings/add" , produces = [ MediaType . TEXT_HTML_VALUE ] )
151154 fun addRating (
152155 @RequestParam title : String ,
153156 @RequestParam rating : Int ,
@@ -169,9 +172,13 @@ class MovieHtmxController(
169172 val updatedMovieBuff = movieService.findMovieBuffByEmail(movieBuff.email)
170173 ? : error(" Could not find movie buff after adding rating" )
171174
172- val latestRating = updatedMovieBuff.movieRatings.minByOrNull { it.movie.title }
175+ val latestRating = updatedMovieBuff.movieRatings.maxByOrNull { it.timestamp }
173176
174177 model.addAttribute(" ratings" , listOfNotNull(latestRating))
178+ model.addAttribute(" offset" , 1 ) // Since we're only showing one rating
179+ model.addAttribute(" limit" , 10 )
180+ model.addAttribute(" hasMore" , false ) // Don't show load more for the single new rating
181+
175182 return " fragments/rating-items"
176183 }
177184
0 commit comments