1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package net.sourceforge.mystique.application;
22
23 import java.util.List;
24
25 import net.sourceforge.mystique.domain.entity.Milestone;
26 import net.sourceforge.mystique.domain.entity.Project;
27 import net.sourceforge.mystique.domain.repository.MilestoneRepository;
28 import net.sourceforge.mystique.domain.repository.ProjectRepository;
29 import net.sourceforge.mystique.domain.repository.Repository;
30 import net.sourceforge.mystique.domain.repository.RepositoryException;
31
32 import org.springframework.beans.factory.annotation.Autowired;
33 import org.springframework.stereotype.Controller;
34 import org.springframework.ui.Model;
35 import org.springframework.web.bind.annotation.RequestMapping;
36 import org.springframework.web.bind.annotation.RequestParam;
37
38
39
40
41 @Controller
42 public class MilestoneController {
43
44 @Autowired
45 private ProjectRepository projectRepository;
46
47 @Autowired
48 private MilestoneRepository milestoneRepository;
49
50 @RequestMapping("/project/milestone/list.xhtml")
51 public String handleList(@RequestParam("projectId") Long projectId, Model model) throws RepositoryException {
52
53 Project project = projectRepository.findById(projectId);
54 List<Milestone> list = milestoneRepository.findByProject(project, 0, Repository.SMALL_RESULT);
55
56 model.addAttribute("project", project);
57 model.addAttribute("list", list);
58
59 return "project.milestone.list";
60
61 }
62
63 @RequestMapping("/project/milestone/remove.xhtml")
64
65 public String handleRemove(@RequestParam("milestoneId") Long milestoneId) throws RepositoryException {
66
67 Milestone milestone = milestoneRepository.findById(milestoneId);
68 Long projectId = milestone.getProject().getId();
69 milestoneRepository.remove(milestone);
70
71 return "redirect:list.xhtml?projectId=" + projectId;
72
73 }
74
75 }