diff --git a/src/main/java/ru/ulstu/fc/project/controller/ProjecRulesController.java b/src/main/java/ru/ulstu/fc/project/controller/ProjecRulesController.java deleted file mode 100644 index be60f8b..0000000 --- a/src/main/java/ru/ulstu/fc/project/controller/ProjecRulesController.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.ulstu.fc.project.controller; - -import io.swagger.v3.oas.annotations.Hidden; -import org.springframework.security.access.annotation.Secured; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import ru.ulstu.fc.project.model.Project; -import ru.ulstu.fc.project.model.ProjectForm; -import ru.ulstu.fc.project.service.ProjectRulesService; -import ru.ulstu.fc.project.service.ProjectService; -import ru.ulstu.fc.user.model.UserRoleConstants; - -@Controller -@Hidden -@RequestMapping("projectRules") -@Secured({UserRoleConstants.ADMIN}) -public class ProjecRulesController { - -} diff --git a/src/main/java/ru/ulstu/fc/rule/controller/RuleController.java b/src/main/java/ru/ulstu/fc/rule/controller/RuleController.java new file mode 100644 index 0000000..12906db --- /dev/null +++ b/src/main/java/ru/ulstu/fc/rule/controller/RuleController.java @@ -0,0 +1,47 @@ +package ru.ulstu.fc.rule.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import ru.ulstu.fc.project.model.Project; +import ru.ulstu.fc.project.model.ProjectForm; +import ru.ulstu.fc.rule.model.Rule; +import ru.ulstu.fc.rule.model.RuleForm; + +@Controller +@RequestMapping("rule") +public class RuleController { + private final RuleService ruleService; + + public RuleController(RuleService ruleService) { + this.ruleService = ruleService; + } + + @GetMapping("/edit/{ruleId}") + public String edit(@PathVariable(value = "ruleId") Integer id, Model model) { + model.addAttribute("rule", + new RuleForm((id != null && id != 0) + ? ruleService.getById(id) + : new Rule())); + + return "rule/edit"; + } + + @PostMapping(value = "save", params = "save") + public String save(RuleForm ruleForm, Model model) { + model.addAttribute("rule", ruleService.save(ruleForm)); + return "redirect:/project/edit/"+ruleForm.getProjectId(); + } + + @PostMapping(value = "save", params = "delete") + public String delete(RuleForm ruleForm) { + if (ruleForm != null && ruleForm.getId() != null) { + ruleService.delete(ruleForm); + } + return "redirect:/project/edit/"+ruleForm.getProjectId(); + } +} diff --git a/src/main/java/ru/ulstu/fc/rule/controller/RuleService.java b/src/main/java/ru/ulstu/fc/rule/controller/RuleService.java new file mode 100644 index 0000000..a4df3c9 --- /dev/null +++ b/src/main/java/ru/ulstu/fc/rule/controller/RuleService.java @@ -0,0 +1,5 @@ +package ru.ulstu.fc.rule.controller; + +public class RuleService { + +} diff --git a/src/main/java/ru/ulstu/fc/rule/model/RuleForm.java b/src/main/java/ru/ulstu/fc/rule/model/RuleForm.java new file mode 100644 index 0000000..0f774a9 --- /dev/null +++ b/src/main/java/ru/ulstu/fc/rule/model/RuleForm.java @@ -0,0 +1,10 @@ +package ru.ulstu.fc.rule.model; + +public class RuleForm { + private final Integer projectId; + + public Integer getProjectId() { + return projectId; + } + +}