diff --git a/as-talange-web/src/main/java/com/astalange/web/controller/DotationController.java b/as-talange-web/src/main/java/com/astalange/web/controller/DotationController.java index faf7068..f3e6b0f 100644 --- a/as-talange-web/src/main/java/com/astalange/web/controller/DotationController.java +++ b/as-talange-web/src/main/java/com/astalange/web/controller/DotationController.java @@ -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 spec = buildSpecification(equipementId, categorieId, fourni, saisonActive); - List dotations = dotationRepository.findAll(spec); + List 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 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"; } diff --git a/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java b/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java index 66e239b..314e496 100644 --- a/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java +++ b/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java @@ -139,14 +139,25 @@ public class LicenceController { @RequestParam(required = false) String numeroLicence, @RequestParam(required = false) String email, @RequestParam(required = false) String typeDemande, + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "20") int size, org.springframework.ui.Model model) { Saison saisonActive = saisonRepository.findByEstActiveTrue().orElse(null); org.springframework.data.jpa.domain.Specification spec = buildLicenceSpecification(nom, prenom, categorieId, numeroLicence, email, typeDemande, saisonActive); - List licences = licenceRepository.findAll(spec); + List allLicences = licenceRepository.findAll(spec); - model.addAttribute("licences", licences); + int totalElements = allLicences.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 pageContent = (start < totalElements) ? allLicences.subList(start, end) : List.of(); + + model.addAttribute("licences", pageContent); model.addAttribute("categories", categorieRepository.findAll()); model.addAttribute("nomFilter", nom); model.addAttribute("prenomFilter", prenom); @@ -155,6 +166,11 @@ public class LicenceController { model.addAttribute("emailFilter", email); model.addAttribute("typeDemandeFilter", typeDemande); + model.addAttribute("currentPage", page); + model.addAttribute("totalPages", totalPages); + model.addAttribute("totalElements", totalElements); + model.addAttribute("pageSize", size); + return "parametrage/licences_recherche"; } diff --git a/as-talange-web/src/main/resources/templates/parametrage/equipements_recherche.html b/as-talange-web/src/main/resources/templates/parametrage/equipements_recherche.html index 3a5a1a2..cf33574 100644 --- a/as-talange-web/src/main/resources/templates/parametrage/equipements_recherche.html +++ b/as-talange-web/src/main/resources/templates/parametrage/equipements_recherche.html @@ -52,7 +52,7 @@ -
+
@@ -67,7 +67,7 @@ - +
Aucun résultat trouvé pour cette recherche.Aucun résultat trouvé pour cette recherche.
@@ -92,6 +92,64 @@
+ + +
+
+ Affichage de 1 à + 20 sur + 100 équipements +
+
+ Aucun équipement à afficher +
+
+ + + Précédent + + + Précédent + + + + + + 1 + + + + + + Suivant + + + Suivant + +
+
diff --git a/as-talange-web/src/main/resources/templates/parametrage/licences_recherche.html b/as-talange-web/src/main/resources/templates/parametrage/licences_recherche.html index e9171dc..419f49c 100644 --- a/as-talange-web/src/main/resources/templates/parametrage/licences_recherche.html +++ b/as-talange-web/src/main/resources/templates/parametrage/licences_recherche.html @@ -62,7 +62,7 @@ -
+
@@ -96,6 +96,64 @@
+ + +
+
+ Affichage de 1 à + 20 sur + 100 licences +
+
+ Aucune licence à afficher +
+
+ + + Précédent + + + Précédent + + + + + + 1 + + + + + + Suivant + + + Suivant + +
+