basic registration feature
This commit is contained in:
@ -0,0 +1,74 @@
|
||||
package de.jottyfan.bico.modules.camp;
|
||||
|
||||
import java.security.Principal;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
||||
import de.jottyfan.bico.db.camp.enums.EnumSex;
|
||||
import de.jottyfan.bico.modules.CommonController;
|
||||
import de.jottyfan.bico.modules.camp.model.RegistrationBean;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
public class RegistrationController extends CommonController {
|
||||
|
||||
@Autowired
|
||||
private RegistrationService service;
|
||||
|
||||
@GetMapping("/camp/registration")
|
||||
public String loadForm(Model model, Principal principal) {
|
||||
model.addAttribute("registrations", service.getRegistrations(principal));
|
||||
model.addAttribute("bean", new RegistrationBean());
|
||||
model.addAttribute("sexes", EnumSex.values());
|
||||
return "/camp/registration";
|
||||
}
|
||||
|
||||
@PostMapping("/camp/registration/submit")
|
||||
public String submitAddForm(@Valid @ModelAttribute("bean") RegistrationBean bean, BindingResult bindingResult,
|
||||
Model model, Principal principal) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
model.addAttribute("registrations", new ArrayList<RegistrationBean>()); // hack to make "Neue Anmeldung" appear
|
||||
model.addAttribute("sexes", EnumSex.values());
|
||||
return "/camp/registration";
|
||||
}
|
||||
service.save(bean, principal);
|
||||
return "redirect:/camp/registration";
|
||||
}
|
||||
|
||||
@GetMapping("/camp/registration/edit/{id}")
|
||||
public String loadEditForm(@PathVariable("id") Integer id, Model model, Principal principal) {
|
||||
model.addAttribute("bean", service.getBeanOfPrincipal(id, principal));
|
||||
model.addAttribute("sexes", EnumSex.values());
|
||||
return "/camp/edit";
|
||||
}
|
||||
|
||||
@GetMapping("/camp/registration/delete/{id}")
|
||||
public String delete(@PathVariable("id") Integer id, Model model, Principal principal) {
|
||||
service.delete(id, principal);
|
||||
return "redirect:/camp/registration";
|
||||
}
|
||||
|
||||
@PostMapping("/camp/registration/correct")
|
||||
public String submitEditForm(@Valid @ModelAttribute("bean") RegistrationBean bean, BindingResult bindingResult,
|
||||
Model model, Principal principal) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
model.addAttribute("sexes", EnumSex.values());
|
||||
return "/camp/registration";
|
||||
}
|
||||
service.save(bean, principal);
|
||||
return "redirect:/camp/registration";
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user