pagination

This commit is contained in:
mepiphana2023
2024-05-02 11:35:29 +02:00
parent 1d755e024d
commit 4326cee3a0
3 changed files with 71 additions and 57 deletions

View File

@@ -8,6 +8,7 @@ import fr.eni.enchere.bo.Article;
import fr.eni.enchere.bo.SearchArticleCritere;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page;
@@ -17,6 +18,7 @@ import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@@ -27,7 +29,6 @@ import java.util.Locale;
@Controller
@SessionAttributes({"searchTitle", "searchCategory", "venteOptions", "achatOptions", "typeTransaction"})
public class AccueilController {
private static final Logger logger = LoggerFactory.getLogger(AccueilController.class);
@@ -35,7 +36,6 @@ public class AccueilController {
private CategorieService categorieService;
private UserService userService;
public AccueilController(ArticleService articleService, CategorieService categorieService, UserService userService) {
super();
this.categorieService = categorieService;
@@ -43,21 +43,27 @@ public class AccueilController {
this.userService = userService;
}
@GetMapping({"/", "/enchere"})
public String viewAccueil(HttpServletRequest request, @AuthenticationPrincipal UserDetails userDetails,
@RequestParam(required = false) String searchTitle, @RequestParam(required = false) Integer searchCategory,
@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "6") int size, Model model,
@RequestParam(value = "venteOption", required = false) String[] venteOptions,
@RequestParam(value = "achatOption", required = false) String[] achatOptions,
@RequestParam(required = false) String typeTransaction) {
HttpSession session) {
logger.error("test du logger");
model.addAttribute("categories", categorieService.findAllCategories());
model.addAttribute("requestURI", request.getRequestURI());
// Récupérer les critères de recherche de la session
String searchTitle = (String) session.getAttribute("searchTitle");
Integer searchCategory = (Integer) session.getAttribute("searchCategory");
String[] venteOptions = (String[]) session.getAttribute("venteOptions");
String[] achatOptions = (String[]) session.getAttribute("achatOptions");
String typeTransaction = (String) session.getAttribute("typeTransaction");
model.addAttribute("SessionTypeTransaction", typeTransaction);
model.addAttribute("sessionVenteOptions", venteOptions);
model.addAttribute("sessionAchatOptions", achatOptions);
// Utiliser les valeurs des critères de recherche dans votre logique métier
SearchArticleCritere critere = new SearchArticleCritere();
critere.setNoCategorie(searchCategory);
critere.setTitle(searchTitle);
if(userDetails != null) {
if (userDetails != null) {
critere.setNoVendeur(userService.utilisateurByName(userDetails.getUsername()).getId());
}
critere.setVenteOptions(venteOptions);
@@ -75,24 +81,28 @@ public class AccueilController {
model.addAttribute("currentPage", currentPage);
model.addAttribute("critere", critere);
model.addAttribute("totalPages", articlePage.getTotalPages());
model.addAttribute("categories", categorieService.findAllCategories());
model.addAttribute("requestURI", request.getRequestURI());
return "accueil";
}
@PostMapping("/enchere")
public String handleSearch(HttpServletRequest request, @AuthenticationPrincipal UserDetails userDetails, @RequestParam(required = false) String searchTitle, @RequestParam(required = false) Integer searchCategory, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "6") int size, Model model, @RequestParam(value = "venteOption", required = false) String[] venteOptions, @RequestParam(value = "achatOption", required = false) String[] achatOptions, @RequestParam(required = false) String typeTransaction) {
public String handleSearch(HttpServletRequest request, @AuthenticationPrincipal UserDetails userDetails,
@RequestParam(required = false) String searchTitle, @RequestParam(required = false) Integer searchCategory,
@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "6") int size, Model model,
@RequestParam(value = "venteOption", required = false) String[] venteOptions,
@RequestParam(value = "achatOption", required = false) String[] achatOptions,
@RequestParam(required = false) String typeTransaction, HttpSession session) {
// Mettre à jour la catégorie dans la session
model.addAttribute("searchCategory", searchCategory);
// Mettre à jour les critères de recherche dans la session
session.setAttribute("searchCategory", searchCategory);
session.setAttribute("searchTitle", searchTitle);
session.setAttribute("venteOptions", venteOptions);
session.setAttribute("achatOptions", achatOptions);
session.setAttribute("typeTransaction", typeTransaction);
model.addAttribute("searchTitle", searchTitle);
model.addAttribute("venteOptions", venteOptions);
model.addAttribute("achatOptions", achatOptions);
model.addAttribute("typeTransaction", typeTransaction);
return viewAccueil(request, userDetails, searchTitle, searchCategory, page, size, model, venteOptions, achatOptions, typeTransaction);
// Rediriger vers la page d'accueil
return "redirect:/enchere";
}
}