Skip to content

Commit 8f9b077

Browse files
committed
URL PATH of Actions - Controller Methods Refactoring
1 parent f7269ad commit 8f9b077

File tree

2 files changed

+111
-103
lines changed

2 files changed

+111
-103
lines changed

src/main/java/org/woehlke/simpleworklist/project/ProjectController.java

Lines changed: 111 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
import org.woehlke.simpleworklist.common.AbstractController;
1313
import org.woehlke.simpleworklist.context.Context;
1414
import org.woehlke.simpleworklist.task.Task;
15+
import org.woehlke.simpleworklist.task.TaskEnergy;
16+
import org.woehlke.simpleworklist.task.TaskTime;
17+
import org.woehlke.simpleworklist.taskstate.TaskMoveService;
18+
import org.woehlke.simpleworklist.taskstate.TaskState;
1519
import org.woehlke.simpleworklist.user.account.UserAccount;
1620
import org.woehlke.simpleworklist.breadcrumb.Breadcrumb;
1721
import org.woehlke.simpleworklist.user.UserSessionBean;
@@ -30,10 +34,12 @@
3034
public class ProjectController extends AbstractController {
3135

3236
private final ProjectControllerService projectControllerService;
37+
private final TaskMoveService taskMoveService;
3338

3439
@Autowired
35-
public ProjectController(ProjectControllerService projectControllerService) {
40+
public ProjectController(ProjectControllerService projectControllerService, TaskMoveService taskMoveService) {
3641
this.projectControllerService = projectControllerService;
42+
this.taskMoveService = taskMoveService;
3743
}
3844

3945
@RequestMapping(path = "/{projectId}", method = RequestMethod.GET)
@@ -230,4 +236,108 @@ public final String deleteProject(
230236
}
231237
}
232238

239+
@RequestMapping(path = "/{projectId}/task/{sourceTaskId}/changeorderto/{destinationTaskId}", method = RequestMethod.GET)
240+
public String changeTaskOrderIdWithinAProject(
241+
@PathVariable("projectId") Project thisProject,
242+
@PathVariable("sourceTaskId") Task sourceTask,
243+
@PathVariable("destinationTaskId") Task destinationTask,
244+
@ModelAttribute("userSession") UserSessionBean userSession,
245+
Model model
246+
){
247+
if(!sourceTask.isInRootProject()){
248+
userSession.setLastProjectId(sourceTask.getProject().getId());
249+
}
250+
model.addAttribute("userSession",userSession);
251+
log.info("-------------------------------------------------");
252+
log.info(" changeTaskOrderIdWithinAProject");
253+
log.info("-------------------------------------------------");
254+
log.info(" source Task: "+sourceTask.toString());
255+
log.info("-------------------------------------------------");
256+
log.info(" destination Task: "+destinationTask.toString());
257+
log.info("-------------------------------------------------");
258+
String returnUrl = "redirect:/taskstate/inbox";
259+
boolean rootProject = sourceTask.isInRootProject();
260+
returnUrl = "redirect:/project/0";
261+
if(rootProject){
262+
taskMoveService.moveOrderIdRootProject(sourceTask, destinationTask);
263+
} else {
264+
taskMoveService.moveOrderIdProject(sourceTask, destinationTask);
265+
log.info(" DONE: taskMoveService.moveOrderIdProject (2)");
266+
returnUrl = "redirect:/project/" + sourceTask.getProject().getId();
267+
}
268+
log.info("-------------------------------------------------");
269+
return returnUrl;
270+
}
271+
272+
@RequestMapping(path = "/{projectId}/task/add/", method = RequestMethod.GET)
273+
public final String addNewTaskToProjectGet(
274+
@ModelAttribute("userSession") UserSessionBean userSession,
275+
Locale locale, Model model
276+
) {
277+
UserAccount userAccount = userAccountLoginSuccessService.retrieveCurrentUser();
278+
Task task = new Task();
279+
task.setTaskState(TaskState.INBOX);
280+
task.setTaskEnergy(TaskEnergy.NONE);
281+
task.setTaskTime(TaskTime.NONE);
282+
Boolean mustChooseArea = false;
283+
if(userSession.getContextId() == 0L){
284+
mustChooseArea = true;
285+
task.setContext(userAccount.getDefaultContext());
286+
} else {
287+
Context context = contextService.findByIdAndUserAccount(userSession.getContextId(), userAccount);
288+
task.setContext(context);
289+
}
290+
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForShowRootProject(locale);
291+
model.addAttribute("breadcrumb", breadcrumb);
292+
model.addAttribute("mustChooseArea", mustChooseArea);
293+
model.addAttribute("thisProjectId", 0L);
294+
model.addAttribute("breadcrumb", breadcrumb);
295+
model.addAttribute("task", task);
296+
return "id/task/add";
297+
}
298+
299+
@RequestMapping(path = "/{projectId}/task/add/", method = RequestMethod.POST)
300+
public final String addNewTaskToProjectPost(
301+
@PathVariable long projectId,
302+
@ModelAttribute("userSession") UserSessionBean userSession,
303+
@Valid Task task,
304+
BindingResult result, Locale locale, Model model) {
305+
Context context = super.getContext(userSession);
306+
UserAccount userAccount = context.getUserAccount();
307+
if (result.hasErrors()) {
308+
for (ObjectError e : result.getAllErrors()) {
309+
log.info(e.toString());
310+
}
311+
Project thisProject = projectControllerService.getProject(projectId, userAccount, userSession);
312+
Boolean mustChooseArea = false;
313+
task.setProject(thisProject);
314+
task.setContext(thisProject.getContext());
315+
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForShowOneProject(thisProject,locale);
316+
model.addAttribute("mustChooseArea", mustChooseArea);
317+
model.addAttribute("thisProject", thisProject);
318+
model.addAttribute("breadcrumb", breadcrumb);
319+
model.addAttribute("task", task);
320+
//return "task/addToProject";
321+
return "id/task/add";
322+
} else {
323+
Project thisProject = projectService.findByProjectId(projectId);
324+
task.setProject(thisProject);
325+
task.setContext(thisProject.getContext());
326+
if(task.getDueDate()==null){
327+
task.setTaskState(TaskState.INBOX);
328+
} else {
329+
task.setTaskState(TaskState.SCHEDULED);
330+
}
331+
task.setFocus(false);
332+
task.setContext(context);
333+
long maxOrderIdProject = taskMoveService.getMaxOrderIdProject(task.getProject(),context);
334+
task.setOrderIdProject(++maxOrderIdProject);
335+
long maxOrderIdTaskState = taskMoveService.getMaxOrderIdTaskState(task.getTaskState(),task.getContext());
336+
task.setOrderIdTaskState(++maxOrderIdTaskState);
337+
task = taskService.saveAndFlush(task);
338+
log.info(task.toString());
339+
return "redirect:/project/" + projectId + "/";
340+
}
341+
}
342+
233343
}

src/main/java/org/woehlke/simpleworklist/project/ProjectTaskController.java

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -39,108 +39,6 @@ public ProjectTaskController(TaskMoveService taskMoveService, ProjectControllerS
3939
this.projectControllerService = projectControllerService;
4040
}
4141

42-
@RequestMapping(path = "/{projectId}/task/{sourceTaskId}/changeorderto/{destinationTaskId}", method = RequestMethod.GET)
43-
public String changeTaskOrderIdWithinAProject(
44-
@PathVariable("projectId") Project thisProject,
45-
@PathVariable("sourceTaskId") Task sourceTask,
46-
@PathVariable("destinationTaskId") Task destinationTask,
47-
@ModelAttribute("userSession") UserSessionBean userSession,
48-
Model model
49-
){
50-
if(!sourceTask.isInRootProject()){
51-
userSession.setLastProjectId(sourceTask.getProject().getId());
52-
}
53-
model.addAttribute("userSession",userSession);
54-
log.info("-------------------------------------------------");
55-
log.info(" changeTaskOrderIdWithinAProject");
56-
log.info("-------------------------------------------------");
57-
log.info(" source Task: "+sourceTask.toString());
58-
log.info("-------------------------------------------------");
59-
log.info(" destination Task: "+destinationTask.toString());
60-
log.info("-------------------------------------------------");
61-
String returnUrl = "redirect:/taskstate/inbox";
62-
boolean rootProject = sourceTask.isInRootProject();
63-
returnUrl = "redirect:/project/0";
64-
if(rootProject){
65-
taskMoveService.moveOrderIdRootProject(sourceTask, destinationTask);
66-
} else {
67-
taskMoveService.moveOrderIdProject(sourceTask, destinationTask);
68-
log.info(" DONE: taskMoveService.moveOrderIdProject (2)");
69-
returnUrl = "redirect:/project/" + sourceTask.getProject().getId();
70-
}
71-
log.info("-------------------------------------------------");
72-
return returnUrl;
73-
}
74-
75-
@RequestMapping(path = "/{projectId}/task/add/", method = RequestMethod.GET)
76-
public final String addNewTaskToProjectGet(
77-
@ModelAttribute("userSession") UserSessionBean userSession,
78-
Locale locale, Model model
79-
) {
80-
UserAccount userAccount = userAccountLoginSuccessService.retrieveCurrentUser();
81-
Task task = new Task();
82-
task.setTaskState(TaskState.INBOX);
83-
task.setTaskEnergy(TaskEnergy.NONE);
84-
task.setTaskTime(TaskTime.NONE);
85-
Boolean mustChooseArea = false;
86-
if(userSession.getContextId() == 0L){
87-
mustChooseArea = true;
88-
task.setContext(userAccount.getDefaultContext());
89-
} else {
90-
Context context = contextService.findByIdAndUserAccount(userSession.getContextId(), userAccount);
91-
task.setContext(context);
92-
}
93-
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForShowRootProject(locale);
94-
model.addAttribute("breadcrumb", breadcrumb);
95-
model.addAttribute("mustChooseArea", mustChooseArea);
96-
model.addAttribute("thisProjectId", 0L);
97-
model.addAttribute("breadcrumb", breadcrumb);
98-
model.addAttribute("task", task);
99-
return "id/task/add";
100-
}
10142

102-
@RequestMapping(path = "/{projectId}/task/add/", method = RequestMethod.POST)
103-
public final String addNewTaskToProjectPost(
104-
@PathVariable long projectId,
105-
@ModelAttribute("userSession") UserSessionBean userSession,
106-
@Valid Task task,
107-
BindingResult result, Locale locale, Model model) {
108-
Context context = super.getContext(userSession);
109-
UserAccount userAccount = context.getUserAccount();
110-
if (result.hasErrors()) {
111-
for (ObjectError e : result.getAllErrors()) {
112-
log.info(e.toString());
113-
}
114-
Project thisProject = projectControllerService.getProject(projectId, userAccount, userSession);
115-
Boolean mustChooseArea = false;
116-
task.setProject(thisProject);
117-
task.setContext(thisProject.getContext());
118-
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForShowOneProject(thisProject,locale);
119-
model.addAttribute("mustChooseArea", mustChooseArea);
120-
model.addAttribute("thisProject", thisProject);
121-
model.addAttribute("breadcrumb", breadcrumb);
122-
model.addAttribute("task", task);
123-
//return "task/addToProject";
124-
return "id/task/add";
125-
} else {
126-
Project thisProject = projectService.findByProjectId(projectId);
127-
task.setProject(thisProject);
128-
task.setContext(thisProject.getContext());
129-
if(task.getDueDate()==null){
130-
task.setTaskState(TaskState.INBOX);
131-
} else {
132-
task.setTaskState(TaskState.SCHEDULED);
133-
}
134-
task.setFocus(false);
135-
task.setContext(context);
136-
long maxOrderIdProject = taskMoveService.getMaxOrderIdProject(task.getProject(),context);
137-
task.setOrderIdProject(++maxOrderIdProject);
138-
long maxOrderIdTaskState = taskMoveService.getMaxOrderIdTaskState(task.getTaskState(),task.getContext());
139-
task.setOrderIdTaskState(++maxOrderIdTaskState);
140-
task = taskService.saveAndFlush(task);
141-
log.info(task.toString());
142-
return "redirect:/project/" + projectId + "/";
143-
}
144-
}
14543

14644
}

0 commit comments

Comments
 (0)