|
3 | 3 | import org.slf4j.Logger;
|
4 | 4 | import org.slf4j.LoggerFactory;
|
5 | 5 | import org.springframework.data.domain.Page;
|
| 6 | +import org.springframework.data.domain.PageRequest; |
6 | 7 | import org.springframework.data.domain.Pageable;
|
7 | 8 | import org.springframework.data.domain.Sort;
|
8 | 9 | import org.springframework.data.web.PageableDefaults;
|
@@ -34,9 +35,10 @@ public class VinylController {
|
34 | 35 | private VinylService vinylService;
|
35 | 36 |
|
36 | 37 | @RequestMapping(value = "/", method = RequestMethod.GET)
|
37 |
| - public String getAll(@PageableDefaults(pageNumber = 0, value = 30,sort={"interpret"}) Pageable pageable, Model model){ |
| 38 | + public String getAll(@PageableDefaults(pageNumber = 0, value = 30, sort={"interpret"}) Pageable pageable, Model model){ |
38 | 39 | Page<Vinyl> page;
|
39 | 40 | SessionBean searchItem;
|
| 41 | + pageable = addSort(pageable); |
40 | 42 | if(model.containsAttribute("searchItem")) {
|
41 | 43 | searchItem = (SessionBean) model.asMap().get("searchItem");
|
42 | 44 | } else {
|
@@ -67,10 +69,26 @@ public String getAll(@PageableDefaults(pageNumber = 0, value = 30,sort={"interpr
|
67 | 69 | return "all";
|
68 | 70 | }
|
69 | 71 |
|
| 72 | + private Pageable addSort(Pageable pageable){ |
| 73 | + Sort sort = pageable.getSort(); |
| 74 | + Sort.Order order = sort.iterator().next(); |
| 75 | + String property = order.getProperty(); |
| 76 | + Sort.Direction direction = order.getDirection(); |
| 77 | + if(property.equals("song")){ |
| 78 | + pageable = new PageRequest(pageable.getPageNumber(),pageable.getPageSize(), direction,"song","interpret"); |
| 79 | + } else if (property.equals("interpret")) { |
| 80 | + pageable = new PageRequest(pageable.getPageNumber(),pageable.getPageSize(), direction,"interpret","song"); |
| 81 | + } else { |
| 82 | + pageable = new PageRequest(pageable.getPageNumber(),pageable.getPageSize(), direction ,property, "interpret","song"); |
| 83 | + } |
| 84 | + return pageable; |
| 85 | + } |
| 86 | + |
70 | 87 | @RequestMapping(value = "/", method = RequestMethod.POST)
|
71 | 88 | public String search(@Valid SessionBean searchItem, BindingResult result,
|
72 |
| - @PageableDefaults(pageNumber = 0, value = 30,sort={"interpret"}) Pageable pageable, Model model){ |
| 89 | + @PageableDefaults(pageNumber = 0, value = 30, sort={"interpret"}) Pageable pageable, Model model){ |
73 | 90 | Page<Vinyl> page;
|
| 91 | + pageable = addSort(pageable); |
74 | 92 | if (result.hasErrors() || searchItem.isEmpty()){
|
75 | 93 | page = vinylService.findAll(pageable);
|
76 | 94 | } else {
|
|
0 commit comments