FEAT : Pagination des commentaires / photos
This commit is contained in:
@@ -51,7 +51,7 @@ public class PhotoController {
|
||||
|
||||
@PostMapping("/upload")
|
||||
public String doUpload(@RequestParam("file") MultipartFile file,
|
||||
@RequestParam(value="visibilite", defaultValue = "PRIVATE") String visibilite,
|
||||
@RequestParam(value = "visibilite", defaultValue = "PRIVATE") String visibilite,
|
||||
Authentication authentication,
|
||||
Model model) {
|
||||
try {
|
||||
@@ -82,7 +82,8 @@ public class PhotoController {
|
||||
String contentType = "application/octet-stream";
|
||||
try {
|
||||
contentType = Files.probeContentType(p);
|
||||
} catch (Exception ignored) {}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
|
||||
return ResponseEntity.ok()
|
||||
.contentType(MediaType.parseMediaType(contentType))
|
||||
@@ -92,14 +93,27 @@ public class PhotoController {
|
||||
}
|
||||
|
||||
@GetMapping("/mes-photos")
|
||||
public String mesPhotos(Model model, Authentication auth) {
|
||||
public String mesPhotos(
|
||||
@RequestParam(name = "pagePrivees", defaultValue = "0") int pagePrivees,
|
||||
@RequestParam(name = "pagePubliques", defaultValue = "0") int pagePubliques,
|
||||
@RequestParam(name = "pagePartagees", defaultValue = "0") int pagePartagees,
|
||||
Model model,
|
||||
Authentication auth
|
||||
) {
|
||||
String email = auth.getName();
|
||||
model.addAttribute("photosPrivees", photoService.listPrivatePhotos(email));
|
||||
model.addAttribute("photosPubliques", photoService.listPublicPhotos(email));
|
||||
model.addAttribute("photosPartagees", photoService.listSharedWith(email));
|
||||
// Chaque liste utilise sa propre pagination
|
||||
model.addAttribute("photosPrivees", photoService.listPrivatePhotos(email, pagePrivees, 12));
|
||||
model.addAttribute("photosPubliques", photoService.listPublicPhotos(email, pagePubliques, 12));
|
||||
model.addAttribute("photosPartagees", photoService.listSharedWith(email, pagePartagees, 12));
|
||||
|
||||
// Ajouter les 3 index séparés
|
||||
model.addAttribute("pagePrivees", pagePrivees);
|
||||
model.addAttribute("pagePubliques", pagePubliques);
|
||||
model.addAttribute("pagePartagees", pagePartagees);
|
||||
return "mes-photos";
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/galerie")
|
||||
public String galerie(@RequestParam(defaultValue = "0") int page, Model model) {
|
||||
Page<Photo> photosPage = photoService.listPublic(page, 12);
|
||||
@@ -112,28 +126,28 @@ public class PhotoController {
|
||||
@GetMapping("/photo/{id}")
|
||||
@PreAuthorize("@securityService.canAccessPhoto(authentication, #id)")
|
||||
public String viewPhoto(@PathVariable Long id,
|
||||
@RequestParam(defaultValue = "0") int page,
|
||||
Model model,
|
||||
Authentication auth) {
|
||||
|
||||
Photo photo = photoRepository.findById(id).orElse(null);
|
||||
if (photo == null) {
|
||||
return "redirect:/galerie";
|
||||
}
|
||||
|
||||
model.addAttribute("photo", photo);
|
||||
model.addAttribute("commentaires", commentaireService.listByPhoto(id));
|
||||
|
||||
// utilisateur connecté (peut être null si visiteur)
|
||||
// Pagination des commentaires
|
||||
model.addAttribute("commentairesPage",
|
||||
commentaireService.listByPhoto(id, page, 10));
|
||||
model.addAttribute("currentPage", page);
|
||||
// utilisateur connecté (peut être null)
|
||||
String currentUser = (auth != null ? auth.getName() : null);
|
||||
model.addAttribute("currentUser", currentUser);
|
||||
|
||||
// Liste des partages
|
||||
List<Partage> partages = partageRepository.findByPhoto_Id(id);
|
||||
model.addAttribute("partages", partages);
|
||||
|
||||
return "photo-detail";
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/photo/{id}/comment")
|
||||
public String addComment(@PathVariable Long id,
|
||||
@RequestParam String contenu,
|
||||
|
||||
Reference in New Issue
Block a user