feat: add pagination to equipment and licence search screens
This commit is contained in:
@@ -76,19 +76,35 @@ public class DotationController {
|
||||
@RequestParam(required = false) Long equipementId,
|
||||
@RequestParam(required = false) Long categorieId,
|
||||
@RequestParam(required = false) Boolean fourni,
|
||||
@RequestParam(defaultValue = "0") int page,
|
||||
@RequestParam(defaultValue = "20") int size,
|
||||
Model model) {
|
||||
|
||||
Saison saisonActive = saisonRepository.findByEstActiveTrue().orElse(null);
|
||||
Specification<Dotation> spec = buildSpecification(equipementId, categorieId, fourni, saisonActive);
|
||||
List<Dotation> dotations = dotationRepository.findAll(spec);
|
||||
List<Dotation> allDotations = dotationRepository.findAll(spec);
|
||||
|
||||
model.addAttribute("dotations", dotations);
|
||||
int totalElements = allDotations.size();
|
||||
int totalPages = (int) Math.ceil((double) totalElements / size);
|
||||
if (page < 0) page = 0;
|
||||
if (page >= totalPages && totalPages > 0) page = totalPages - 1;
|
||||
|
||||
int start = page * size;
|
||||
int end = Math.min(start + size, totalElements);
|
||||
List<Dotation> pageContent = (start < totalElements) ? allDotations.subList(start, end) : List.of();
|
||||
|
||||
model.addAttribute("dotations", pageContent);
|
||||
model.addAttribute("equipements", equipementRepository.findAll());
|
||||
model.addAttribute("categories", categorieRepository.findAll());
|
||||
model.addAttribute("equipementId", equipementId);
|
||||
model.addAttribute("categorieId", categorieId);
|
||||
model.addAttribute("fourni", fourni);
|
||||
|
||||
model.addAttribute("currentPage", page);
|
||||
model.addAttribute("totalPages", totalPages);
|
||||
model.addAttribute("totalElements", totalElements);
|
||||
model.addAttribute("pageSize", size);
|
||||
|
||||
return "parametrage/equipements_recherche";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user