Skip to content

Commit a7af75b

Browse files
fixed #11
1 parent 77faa01 commit a7af75b

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/main/java/org/woehlke/beachbox/web/VinylController.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.slf4j.Logger;
44
import org.slf4j.LoggerFactory;
55
import org.springframework.data.domain.Page;
6+
import org.springframework.data.domain.PageRequest;
67
import org.springframework.data.domain.Pageable;
78
import org.springframework.data.domain.Sort;
89
import org.springframework.data.web.PageableDefaults;
@@ -34,9 +35,10 @@ public class VinylController {
3435
private VinylService vinylService;
3536

3637
@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){
3839
Page<Vinyl> page;
3940
SessionBean searchItem;
41+
pageable = addSort(pageable);
4042
if(model.containsAttribute("searchItem")) {
4143
searchItem = (SessionBean) model.asMap().get("searchItem");
4244
} else {
@@ -67,10 +69,26 @@ public String getAll(@PageableDefaults(pageNumber = 0, value = 30,sort={"interpr
6769
return "all";
6870
}
6971

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+
7087
@RequestMapping(value = "/", method = RequestMethod.POST)
7188
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){
7390
Page<Vinyl> page;
91+
pageable = addSort(pageable);
7492
if (result.hasErrors() || searchItem.isEmpty()){
7593
page = vinylService.findAll(pageable);
7694
} else {

0 commit comments

Comments
 (0)