diff --git a/.gitignore b/.gitignore index 8db3dab472c3d4205ddf357456e5daa9a8e95f49..f92bb67ff9ab1c5d2f6a257504c9d2aece6b4ac5 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,6 @@ log4j.properties #h2 databases *.db + +#MacOS +*.DS_Store diff --git a/src/main/java/nl/tudelft/ewi/queue/controller/RequestController.java b/src/main/java/nl/tudelft/ewi/queue/controller/RequestController.java index 7127af8cf6df0aad4632ec0be748177305c87efa..9d26371a342894cac1da9cb9ceeb8e1805b38bb9 100644 --- a/src/main/java/nl/tudelft/ewi/queue/controller/RequestController.java +++ b/src/main/java/nl/tudelft/ewi/queue/controller/RequestController.java @@ -33,6 +33,8 @@ import nl.tudelft.ewi.queue.service.RequestService; import nl.tudelft.ewi.queue.service.RequestTableService; import nl.tudelft.ewi.queue.views.View; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -45,7 +47,9 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import org.thymeleaf.exceptions.TemplateOutputException; import com.fasterxml.jackson.annotation.JsonView; import com.google.common.collect.Lists; @@ -79,6 +83,10 @@ public class RequestController { @Autowired private RoomRepository roomRepository; + @Autowired + private ViewResolver viewResolver; + private Logger logger = LoggerFactory.getLogger(ErrorControllerAdvice.class); + @ModelAttribute("page") public static String page() { return "requests"; @@ -96,19 +104,27 @@ public class RequestController { @RequestMapping(value = "/requests", method = { RequestMethod.POST, RequestMethod.GET }) @PreAuthorize("@permissionService.canViewRequests(principal)") - public String list( HttpServletRequest httpRequest, + public void list( HttpServletRequest httpRequest, + HttpServletResponse httpServletResponse, @AuthenticatedUser User user, Model model, @RequestParam MultiValueMap<String, String> parameters, @QuerydslPredicate(root = Request.class) Predicate predicate, - @PageableDefault(sort = "id", direction = Sort.Direction.DESC, size = 25) Pageable pageable) { + @PageableDefault(sort = "id", direction = Sort.Direction.DESC, size = 25) Pageable pageable) + throws Exception { if (RequestMethod.POST.name().equals(httpRequest.getMethod())) { requestTableService.submitFilters(httpRequest, parameters, predicate); pageable = new PageRequest(0, pageable.getPageSize(), pageable.getSort()); } + org.springframework.web.servlet.View view = viewResolver.resolveViewName("request/list", Locale.US); requestTableService.fillCurrentTableModel(httpRequest, user, pageable, model); - return "request/list"; + try { + view.render(model.asMap(), httpRequest, httpServletResponse); + } catch (TemplateOutputException toe) { + logger.error("Filter exception occured.", model); + } + } @RequestMapping(value = "/requests/next/{id}", method = RequestMethod.POST)