Skip to content
Snippets Groups Projects
Commit 2e1ad2b2 authored by Paul-Christian Volkmer's avatar Paul-Christian Volkmer
Browse files

Added comperator for short names and add request param for sorting

parent 2a2eeb5f
No related merge requests found
...@@ -29,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -29,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import de.thm.arsnova.connector.client.ConnectorClient; import de.thm.arsnova.connector.client.ConnectorClient;
...@@ -55,7 +56,9 @@ public class CourseController extends AbstractController { ...@@ -55,7 +56,9 @@ public class CourseController extends AbstractController {
@RequestMapping(value = "/mycourses", method = RequestMethod.GET) @RequestMapping(value = "/mycourses", method = RequestMethod.GET)
@ResponseBody @ResponseBody
public final List<Course> myCourses() { public final List<Course> myCourses(
@RequestParam(value="sortby", defaultValue="name") String sortby
) {
String username = userService.getCurrentUser().getUsername(); String username = userService.getCurrentUser().getUsername();
if (username == null) { if (username == null) {
...@@ -67,7 +70,12 @@ public class CourseController extends AbstractController { ...@@ -67,7 +70,12 @@ public class CourseController extends AbstractController {
} }
List<Course> result = connectorClient.getCourses(username).getCourse(); List<Course> result = connectorClient.getCourses(username).getCourse();
Collections.sort(result, new CourseNameComperator());
if (sortby != null && sortby.equals("shortname")) {
Collections.sort(result, new CourseShortNameComperator());
} else {
Collections.sort(result, new CourseNameComperator());
}
return result; return result;
} }
...@@ -80,4 +88,13 @@ public class CourseController extends AbstractController { ...@@ -80,4 +88,13 @@ public class CourseController extends AbstractController {
return course1.getFullname().compareToIgnoreCase(course2.getFullname()); return course1.getFullname().compareToIgnoreCase(course2.getFullname());
} }
} }
private static class CourseShortNameComperator implements Comparator<Course>, Serializable {
private static final long serialVersionUID = 1L;
@Override
public int compare(Course course1, Course course2) {
return course1.getShortname().compareToIgnoreCase(course2.getShortname());
}
}
} }
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
*/ */
package de.thm.arsnova.controller; package de.thm.arsnova.controller;
import java.util.Collections;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -40,6 +41,8 @@ import de.thm.arsnova.entities.Session; ...@@ -40,6 +41,8 @@ import de.thm.arsnova.entities.Session;
import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.User;
import de.thm.arsnova.services.ISessionService; import de.thm.arsnova.services.ISessionService;
import de.thm.arsnova.services.IUserService; import de.thm.arsnova.services.IUserService;
import de.thm.arsnova.services.SessionService.SessionNameComperator;
import de.thm.arsnova.services.SessionService.SessionShortNameComperator;
@Controller @Controller
@RequestMapping("/session") @RequestMapping("/session")
...@@ -102,6 +105,7 @@ public class SessionController extends AbstractController { ...@@ -102,6 +105,7 @@ public class SessionController extends AbstractController {
public final List<Session> getSessions( public final List<Session> getSessions(
@RequestParam(value = "ownedonly", defaultValue = "false") final boolean ownedOnly, @RequestParam(value = "ownedonly", defaultValue = "false") final boolean ownedOnly,
@RequestParam(value = "visitedonly", defaultValue = "false") final boolean visitedOnly, @RequestParam(value = "visitedonly", defaultValue = "false") final boolean visitedOnly,
@RequestParam(value="sortby", defaultValue="name") final String sortby,
final HttpServletResponse response final HttpServletResponse response
) { ) {
User user = userService.getCurrentUser(); User user = userService.getCurrentUser();
...@@ -129,6 +133,12 @@ public class SessionController extends AbstractController { ...@@ -129,6 +133,12 @@ public class SessionController extends AbstractController {
response.setStatus(HttpServletResponse.SC_NO_CONTENT); response.setStatus(HttpServletResponse.SC_NO_CONTENT);
} }
if (sortby != null && sortby.equals("shortname")) {
Collections.sort(sessions, new SessionShortNameComperator());
} else {
Collections.sort(sessions, new SessionNameComperator());
}
return sessions; return sessions;
} }
......
...@@ -93,7 +93,6 @@ public class SessionService implements ISessionService { ...@@ -93,7 +93,6 @@ public class SessionService implements ISessionService {
} }
List<Session> result = new ArrayList<Session>(allAvailableSessions.values()); List<Session> result = new ArrayList<Session>(allAvailableSessions.values());
Collections.sort(result, new SessionNameComperator());
return result; return result;
} }
...@@ -164,4 +163,13 @@ public class SessionService implements ISessionService { ...@@ -164,4 +163,13 @@ public class SessionService implements ISessionService {
return session1.getName().compareToIgnoreCase(session2.getName()); return session1.getName().compareToIgnoreCase(session2.getName());
} }
} }
public static class SessionShortNameComperator implements Comparator<Session>, Serializable{
private static final long serialVersionUID = 1L;
@Override
public int compare(Session session1, Session session2) {
return session1.getShortName().compareToIgnoreCase(session2.getShortName());
}
}
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment