|
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