10
10
import org .springframework .validation .ObjectError ;
11
11
import org .springframework .web .bind .annotation .*;
12
12
import org .woehlke .simpleworklist .common .AbstractController ;
13
- import org .woehlke .simpleworklist .taskstate .TaskMoveService ;
14
13
import org .woehlke .simpleworklist .context .Context ;
15
14
import org .woehlke .simpleworklist .task .Task ;
16
15
import org .woehlke .simpleworklist .user .account .UserAccount ;
17
16
import org .woehlke .simpleworklist .breadcrumb .Breadcrumb ;
18
17
import org .woehlke .simpleworklist .user .UserSessionBean ;
19
- import org .woehlke .simpleworklist .task .TaskService ;
20
18
21
19
import org .springframework .beans .factory .annotation .Autowired ;
22
20
import javax .validation .Valid ;
31
29
@ RequestMapping (path = "/project" )
32
30
public class ProjectController extends AbstractController {
33
31
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 ;
39
33
40
34
@ 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 ;
68
37
}
69
38
70
39
@ RequestMapping (path = "/{projectId}" , method = RequestMethod .GET )
@@ -102,37 +71,15 @@ public final String showProject(
102
71
return "project/show" ;
103
72
}
104
73
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
-
128
74
@ RequestMapping (path = "/{projectId}/add/new/project" , method = RequestMethod .GET )
129
75
public final String addNewSubProjectGet (
130
76
@ PathVariable long projectId ,
131
77
@ ModelAttribute ("userSession" ) UserSessionBean userSession ,
132
78
Locale locale , Model model
133
79
) {
134
80
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 );
136
83
return "project/add" ;
137
84
}
138
85
@@ -144,7 +91,8 @@ public final String addNewSubProjectPost(
144
91
BindingResult result ,
145
92
Locale locale , Model model ) {
146
93
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 ,
148
96
result , locale , model ,"project/add" );
149
97
}
150
98
@@ -268,118 +216,4 @@ public final String deleteProject(
268
216
return "redirect:/project/" + newProjectId ;
269
217
}
270
218
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
- }
385
219
}
0 commit comments