Skip to content

Commit 4807683

Browse files
committed
bugfixing
1 parent 1d21af9 commit 4807683

10 files changed

+516
-354
lines changed

src/main/java/org/woehlke/simpleworklist/common/AbstractController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.woehlke.simpleworklist.config.ApplicationProperties;
99
import org.woehlke.simpleworklist.context.Context;
1010
import org.woehlke.simpleworklist.project.Project;
11+
import org.woehlke.simpleworklist.task.TaskService;
1112
import org.woehlke.simpleworklist.user.account.UserAccount;
1213
import org.woehlke.simpleworklist.task.TaskEnergy;
1314
import org.woehlke.simpleworklist.task.TaskTime;
@@ -36,6 +37,9 @@ public abstract class AbstractController {
3637
@Autowired
3738
protected ProjectService projectService;
3839

40+
@Autowired
41+
protected TaskService taskService;
42+
3943
@Autowired
4044
protected UserAccountService userAccountService;
4145

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

Lines changed: 7 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,11 @@
1010
import org.springframework.validation.ObjectError;
1111
import org.springframework.web.bind.annotation.*;
1212
import org.woehlke.simpleworklist.common.AbstractController;
13-
import org.woehlke.simpleworklist.taskstate.TaskMoveService;
1413
import org.woehlke.simpleworklist.context.Context;
1514
import org.woehlke.simpleworklist.task.Task;
1615
import org.woehlke.simpleworklist.user.account.UserAccount;
1716
import org.woehlke.simpleworklist.breadcrumb.Breadcrumb;
1817
import org.woehlke.simpleworklist.user.UserSessionBean;
19-
import org.woehlke.simpleworklist.task.TaskService;
2018

2119
import org.springframework.beans.factory.annotation.Autowired;
2220
import javax.validation.Valid;
@@ -31,40 +29,11 @@
3129
@RequestMapping(path = "/project")
3230
public class ProjectController extends AbstractController {
3331

34-
private final TaskService taskService;
35-
private final TaskMoveService taskMoveService;
36-
private final ProjectService projectService;
37-
38-
private static final long rootProjectId = 0L;
32+
private final ProjectControllerService projectControllerService;
3933

4034
@Autowired
41-
public ProjectController(TaskService taskService, TaskMoveService taskMoveService, ProjectService projectService) {
42-
this.taskService = taskService;
43-
this.taskMoveService = taskMoveService;
44-
this.projectService = projectService;
45-
}
46-
47-
@RequestMapping(path = "/root", method = RequestMethod.GET)
48-
public final String showRootProject(
49-
@PageableDefault(sort = "orderIdProject") Pageable pageable,
50-
@RequestParam(required = false) String message,
51-
@RequestParam(required = false) boolean isDeleted,
52-
@ModelAttribute("userSession") UserSessionBean userSession,
53-
Locale locale, Model model) {
54-
log.info("/project/root");
55-
Context context = super.getContext(userSession);
56-
userSession.setLastProjectId(0L);
57-
model.addAttribute("userSession",userSession);
58-
Page<Task> taskPage = taskService.findByRootProject(context,pageable);
59-
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForShowRootProject(locale);
60-
model.addAttribute("breadcrumb", breadcrumb);
61-
model.addAttribute("taskPage", taskPage);
62-
if(message != null){
63-
model.addAttribute("message",message);
64-
model.addAttribute("isDeleted",isDeleted);
65-
model.addAttribute("myTaskState","PROJECT");
66-
}
67-
return "project/root";
35+
public ProjectController(ProjectControllerService projectControllerService) {
36+
this.projectControllerService = projectControllerService;
6837
}
6938

7039
@RequestMapping(path = "/{projectId}", method = RequestMethod.GET)
@@ -102,37 +71,15 @@ public final String showProject(
10271
return "project/show";
10372
}
10473

105-
@RequestMapping(path = "/add/new/project", method = RequestMethod.GET)
106-
public final String addNewTopLevelProjectForm(
107-
@ModelAttribute("userSession") UserSessionBean userSession,
108-
Locale locale, Model model
109-
){
110-
log.info("/project/add/new/project (GET)");
111-
addNewProject(rootProjectId, userSession, locale, model);
112-
return "project/addToplevel";
113-
}
114-
115-
116-
@RequestMapping(path = "/add/new/project", method = {RequestMethod.POST, RequestMethod.PUT})
117-
public final String addNewTopLevelProjectSave(
118-
@Valid Project project,
119-
@ModelAttribute("userSession") UserSessionBean userSession,
120-
BindingResult result,
121-
Locale locale, Model model
122-
){
123-
log.info("/project/add/new/project (POST)");
124-
return addNewProjectPersist( rootProjectId, userSession, project,
125-
result, locale, model, "project/addToplevel");
126-
}
127-
12874
@RequestMapping(path = "/{projectId}/add/new/project", method = RequestMethod.GET)
12975
public final String addNewSubProjectGet(
13076
@PathVariable long projectId,
13177
@ModelAttribute("userSession") UserSessionBean userSession,
13278
Locale locale, Model model
13379
) {
13480
log.info("private addNewProjectGet (GET) projectId="+projectId);
135-
addNewProject(projectId, userSession, locale, model);
81+
Context context = super.getContext(userSession);
82+
projectControllerService.addNewProject(projectId, userSession, context, locale, model);
13683
return "project/add";
13784
}
13885

@@ -144,7 +91,8 @@ public final String addNewSubProjectPost(
14491
BindingResult result,
14592
Locale locale, Model model) {
14693
log.info("private addNewProjectPost (POST) projectId="+projectId+" "+project.toString());
147-
return addNewProjectPersist( projectId, userSession, project,
94+
Context context = super.getContext(userSession);
95+
return projectControllerService.addNewProjectPersist( projectId, userSession, project, context,
14896
result, locale, model ,"project/add");
14997
}
15098

@@ -268,118 +216,4 @@ public final String deleteProject(
268216
return "redirect:/project/" + newProjectId;
269217
}
270218

271-
272-
private final void addNewProject(
273-
long projectId,
274-
UserSessionBean userSession,
275-
Locale locale,
276-
Model model
277-
) {
278-
log.info("private addNewProject projectId="+projectId);
279-
Context context = super.getContext(userSession);
280-
UserAccount userAccount = context.getUserAccount();
281-
userSession.setLastProjectId(projectId);
282-
model.addAttribute("userSession",userSession);
283-
Project thisProject = null;
284-
Project project = null;
285-
if (projectId == 0) {
286-
thisProject = new Project();
287-
thisProject.setId(0L);
288-
project = Project.newRootProjectFactory(userAccount);
289-
if(userSession.getContextId() == 0L){
290-
model.addAttribute("mustChooseArea", true);
291-
project.setContext(userAccount.getDefaultContext());
292-
} else {
293-
project.setContext(context);
294-
}
295-
} else {
296-
thisProject = projectService.findByProjectId(projectId);
297-
project = Project.newProjectFactory(thisProject);
298-
}
299-
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForShowOneProject(thisProject,locale);
300-
model.addAttribute("breadcrumb", breadcrumb);
301-
model.addAttribute("thisProject", thisProject);
302-
model.addAttribute("project", project);
303-
}
304-
305-
private String addNewProjectPersist(
306-
long projectId,
307-
UserSessionBean userSession,
308-
Project project,
309-
BindingResult result,
310-
Locale locale, Model model,
311-
String template
312-
){
313-
log.info("private addNewProjectPersist projectId="+projectId+" "+project.toString());
314-
Context context = super.getContext(userSession);
315-
UserAccount userAccount = context.getUserAccount();
316-
userSession.setLastProjectId(projectId);
317-
model.addAttribute("userSession",userSession);
318-
if(result.hasErrors()){
319-
Project thisProject = null;
320-
if (projectId == 0) {
321-
thisProject = new Project();
322-
thisProject.setId(0L);
323-
} else {
324-
thisProject = projectService.findByProjectId(projectId);
325-
}
326-
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForShowOneProject(thisProject,locale);
327-
model.addAttribute("breadcrumb", breadcrumb);
328-
model.addAttribute("thisProject", thisProject);
329-
model.addAttribute("project", project);
330-
return template;
331-
} else {
332-
if (projectId == 0) {
333-
if(userSession.getContextId()>0) {
334-
project.setContext(context);
335-
}
336-
project = projectService.saveAndFlush(project);
337-
projectId = project.getId();
338-
} else {
339-
Project thisProject = projectService.findByProjectId(projectId);
340-
List<Project> children = thisProject.getChildren();
341-
children.add(project);
342-
thisProject.setChildren(children);
343-
project.setParent(thisProject);
344-
project = projectService.saveAndFlush(project);
345-
projectId = project.getId();
346-
log.info("project: "+ project.toString());
347-
log.info("thisProject: "+ thisProject.toString());
348-
}
349-
return "redirect:/project/" + projectId;
350-
}
351-
}
352-
353-
@RequestMapping(path = "/task/{sourceTaskId}/changeorderto/{destinationTaskId}", method = RequestMethod.GET)
354-
public String changeTaskOrderIdWithinAProject(
355-
@PathVariable("sourceTaskId") Task sourceTask,
356-
@PathVariable("destinationTaskId") Task destinationTask,
357-
@ModelAttribute("userSession") UserSessionBean userSession,
358-
Locale locale, Model model
359-
){
360-
Context context = super.getContext(userSession);
361-
if(!sourceTask.isInRootProject()){
362-
userSession.setLastProjectId(sourceTask.getProject().getId());
363-
}
364-
model.addAttribute("userSession",userSession);
365-
log.info("-------------------------------------------------");
366-
log.info(" changeTaskOrderIdWithinAProject");
367-
log.info("-------------------------------------------------");
368-
log.info(" source Task: "+sourceTask.toString());
369-
log.info("-------------------------------------------------");
370-
log.info(" destination Task: "+destinationTask.toString());
371-
log.info("-------------------------------------------------");
372-
String returnUrl = "redirect:/taskstate/inbox";
373-
boolean rootProject = sourceTask.isInRootProject();
374-
returnUrl = "redirect:/project/0";
375-
if(rootProject){
376-
taskMoveService.moveOrderIdRootProject(sourceTask, destinationTask);
377-
} else {
378-
taskMoveService.moveOrderIdProject(sourceTask, destinationTask);
379-
log.info(" DONE: taskMoveService.moveOrderIdProject (2)");
380-
returnUrl = "redirect:/project/" + sourceTask.getProject().getId();
381-
}
382-
log.info("-------------------------------------------------");
383-
return returnUrl;
384-
}
385219
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.woehlke.simpleworklist.project;
2+
3+
import org.springframework.ui.Model;
4+
import org.springframework.validation.BindingResult;
5+
import org.woehlke.simpleworklist.context.Context;
6+
import org.woehlke.simpleworklist.user.UserSessionBean;
7+
import org.woehlke.simpleworklist.user.account.UserAccount;
8+
9+
import java.util.Locale;
10+
11+
public interface ProjectControllerService {
12+
13+
void addNewProject(
14+
long projectId,
15+
UserSessionBean userSession,
16+
Context context,
17+
Locale locale,
18+
Model model
19+
);
20+
21+
String addNewProjectPersist(
22+
long projectId,
23+
UserSessionBean userSession,
24+
Project project,
25+
Context context,
26+
BindingResult result,
27+
Locale locale,
28+
Model model,
29+
String template
30+
);
31+
32+
Project getProject(
33+
long projectId,
34+
UserAccount userAccount,
35+
UserSessionBean userSession
36+
);
37+
}

0 commit comments

Comments
 (0)