Skip to content
Snippets Groups Projects

Resolve "Split job offers page into two separate pages"

13 files
+ 295
251
Compare changes
  • Side-by-side
  • Inline

Files

@@ -19,14 +19,13 @@ package nl.tudelft.tam.controller;
@@ -19,14 +19,13 @@ package nl.tudelft.tam.controller;
import java.io.IOException;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Collectors;
import nl.tudelft.labracore.api.dto.ProgramDetailsDTO;
import nl.tudelft.labracore.api.dto.ProgramDetailsDTO;
import nl.tudelft.labracore.lib.security.user.AuthenticatedPerson;
import nl.tudelft.labracore.lib.security.user.AuthenticatedPerson;
import nl.tudelft.labracore.lib.security.user.Person;
import nl.tudelft.labracore.lib.security.user.Person;
 
import nl.tudelft.tam.dto.view.details.ApplicationDetailsJobOfferDTO;
import nl.tudelft.tam.enums.Status;
import nl.tudelft.tam.enums.Status;
import nl.tudelft.tam.model.Application;
import nl.tudelft.tam.model.Application;
import nl.tudelft.tam.service.*;
import nl.tudelft.tam.service.*;
@@ -102,17 +101,23 @@ public class ApplicationController {
@@ -102,17 +101,23 @@ public class ApplicationController {
}
}
/**
/**
* Redirects the user from application/my to job-offer/open?tab=applications where the user can see their
* Gets all applications for a user.
* own applications.
*
*
* @param q A query/search string if present.
* @param person The currently logged in person
* @return The redirect to the job-offer page.
* @param q The search query
 
* @param model The model to add the data to
 
* @return The applications page
*/
*/
@GetMapping("my")
@GetMapping("my")
@PreAuthorize("!@authorisationService.isStaff()")
public String getApplications(@AuthenticatedPerson Person person,
public String getApplications(@RequestParam(required = false) String q) {
@RequestParam(required = false) String q, Model model) {
return "redirect:/job-offer/open?tab=applications" + (q == null ? "" : "&q=" + q);
List<ApplicationDetailsJobOfferDTO> applications = applicationService
 
.getFilteredApplicationsForPerson(person.getId(), q);
 
 
model.addAttribute("applications", applications);
 
return "application/view_many";
}
}
 
// endregion
// endregion
// region manipulate data
// region manipulate data
@@ -129,8 +134,9 @@ public class ApplicationController {
@@ -129,8 +134,9 @@ public class ApplicationController {
public String submitApplication(@AuthenticatedPerson Person person, @PathVariable Long id,
public String submitApplication(@AuthenticatedPerson Person person, @PathVariable Long id,
@RequestParam(required = false) String page, @RequestParam(required = false) Long program) {
@RequestParam(required = false) String page, @RequestParam(required = false) Long program) {
applicationService.submit(person.getId(), id);
applicationService.submit(person.getId(), id);
 
String url = "applications".equals(page) ? "application/my" : "job-offer/open";
return "redirect:/"
return "redirect:/"
+ (page != null ? page : "job-offer/open" + (program == null ? "" : "?program=" + program));
+ (url + (program == null ? "" : "?program=" + program));
}
}
/**
/**
@@ -149,7 +155,7 @@ public class ApplicationController {
@@ -149,7 +155,7 @@ public class ApplicationController {
@RequestParam(required = false) String program) {
@RequestParam(required = false) String program) {
applicationService.retract(person.getId(), id);
applicationService.retract(person.getId(), id);
String url = page == null ? "job-offer/open" : page;
String url = "applications".equals(page) ? "application/my" : "job-offer/open";
Map<String, String> params = new HashMap<>();
Map<String, String> params = new HashMap<>();
if (q != null)
if (q != null)
@@ -231,11 +237,14 @@ public class ApplicationController {
@@ -231,11 +237,14 @@ public class ApplicationController {
@PostMapping("accept/{id}")
@PostMapping("accept/{id}")
@PreAuthorize("@authorisationService.offerExistsFor(#id)")
@PreAuthorize("@authorisationService.offerExistsFor(#id)")
public String acceptApplication(@AuthenticatedPerson Person person, @PathVariable Long id,
public String acceptApplication(@AuthenticatedPerson Person person, @PathVariable Long id,
 
@RequestParam(required = false) String page,
@RequestParam(required = false) String q,
@RequestParam(required = false) String q,
@RequestParam(required = false) String tab,
@RequestParam(required = false) String tab,
@RequestParam(required = false) String program) {
@RequestParam(required = false) String program) {
applicationService.accept(person.getId(), id);
applicationService.accept(person.getId(), id);
 
String url = "applications".equals(page) ? "application/my" : "job-offer/open";
 
Map<String, String> params = new HashMap<>();
Map<String, String> params = new HashMap<>();
if (q != null)
if (q != null)
params.put("q", q);
params.put("q", q);
@@ -244,7 +253,7 @@ public class ApplicationController {
@@ -244,7 +253,7 @@ public class ApplicationController {
if (program != null)
if (program != null)
params.put("program", program);
params.put("program", program);
return "redirect:/job-offer/open" + getURLParamsString(params);
return "redirect:/" + url + getURLParamsString(params);
}
}
private static String getURLParamsString(Map<String, String> params) {
private static String getURLParamsString(Map<String, String> params) {
Loading