@@ -43,6 +43,133 @@ public ProjectController(ProjectControllerService projectControllerService, Task
4343 this .taskMoveService = taskMoveService ;
4444 }
4545
46+ @ RequestMapping (path ="/root" , method = RequestMethod .GET )
47+ public final String showRootProject (
48+ @ PageableDefault (sort = "orderIdProject" , direction = Sort .Direction .DESC ) Pageable pageable ,
49+ @ RequestParam (required = false ) String message ,
50+ @ RequestParam (required = false ) boolean isDeleted ,
51+ @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
52+ Locale locale , Model model
53+ ) {
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/show" ;
68+ }
69+
70+ @ RequestMapping (path = "/root/add/project" , method = RequestMethod .GET )
71+ public final String addNewTopLevelProjectForm (
72+ @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
73+ Locale locale , Model model
74+ ){
75+ log .info ("/project/root/add/project (GET)" );
76+ Context context = super .getContext (userSession );
77+ projectControllerService .addNewProjectToRoot (userSession , context , locale , model );
78+ return "project/root/add/project" ;
79+ }
80+
81+ @ RequestMapping (path = "/root/add/project" , method = RequestMethod .POST )
82+ public final String addNewTopLevelProjectSave (
83+ @ Valid Project project ,
84+ @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
85+ BindingResult result ,
86+ Locale locale , Model model
87+ ){
88+ log .info ("/project/root/add/project (POST)" );
89+ Context context = super .getContext (userSession );
90+ return projectControllerService .addNewProjectToRootPersist (
91+ userSession ,
92+ project ,
93+ context ,
94+ result ,
95+ locale ,
96+ model ,
97+ "project/root"
98+ );
99+ }
100+
101+ @ RequestMapping (path = "/root/add/task" , method = RequestMethod .GET )
102+ public final String addNewTaskToRootProjectGet (
103+ @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
104+ Locale locale , Model model
105+ ) {
106+ log .info ("/project/root/add/task (GET)" );
107+ Context context = super .getContext (userSession );
108+ UserAccount userAccount = context .getUserAccount ();
109+ Task task = new Task ();
110+ task .setTaskState (TaskState .INBOX );
111+ task .setTaskEnergy (TaskEnergy .NONE );
112+ task .setTaskTime (TaskTime .NONE );
113+ Project thisProject ;
114+ Boolean mustChooseArea = false ;
115+ thisProject = new Project ();
116+ thisProject .setId (0L );
117+ if (userSession .getContextId () == 0L ){
118+ mustChooseArea = true ;
119+ task .setContext (userAccount .getDefaultContext ());
120+ thisProject .setContext (userAccount .getDefaultContext ());
121+ } else {
122+ task .setContext (context );
123+ thisProject .setContext (context );
124+ }
125+ Breadcrumb breadcrumb = breadcrumbService .getBreadcrumbForShowOneProject (thisProject ,locale );
126+ model .addAttribute ("breadcrumb" , breadcrumb );
127+ model .addAttribute ("mustChooseArea" , mustChooseArea );
128+ model .addAttribute ("thisProject" , thisProject );
129+ model .addAttribute ("thisProjectId" , thisProject .getId ());
130+ model .addAttribute ("breadcrumb" , breadcrumb );
131+ model .addAttribute ("task" , task );
132+ return "project/root/add/task" ;
133+ }
134+
135+ @ RequestMapping (path = "/root/add/task" , method = RequestMethod .POST )
136+ public final String addNewTaskToRootProjectPost (
137+ @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
138+ @ Valid Task task ,
139+ BindingResult result , Locale locale , Model model
140+ ) {
141+ log .info ("/project/root/add/task (POST)" );
142+ Context context = super .getContext (userSession );
143+ if (result .hasErrors ()) {
144+ for (ObjectError e : result .getAllErrors ()) {
145+ log .info (e .toString ());
146+ }
147+ Boolean mustChooseArea = false ;
148+ task .setContext (context );
149+ Breadcrumb breadcrumb = breadcrumbService .getBreadcrumbForTaskstate (TaskState .INBOX ,locale );
150+ model .addAttribute ("mustChooseArea" , mustChooseArea );
151+ model .addAttribute ("breadcrumb" , breadcrumb );
152+ model .addAttribute ("task" , task );
153+ return "project/root/add/task" ;
154+ } else {
155+ task .setProject (null );
156+ if (task .getDueDate ()==null ){
157+ task .setTaskState (TaskState .INBOX );
158+ } else {
159+ task .setTaskState (TaskState .SCHEDULED );
160+ }
161+ task .setFocus (false );
162+ task .setContext (context );
163+ long maxOrderIdProject = taskMoveService .getMaxOrderIdProject (task .getProject (),context );
164+ task .setOrderIdProject (++maxOrderIdProject );
165+ long maxOrderIdTaskState = taskMoveService .getMaxOrderIdTaskState (task .getTaskState (),task .getContext ());
166+ task .setOrderIdTaskState (++maxOrderIdTaskState );
167+ task = taskService .saveAndFlush (task );
168+ log .info (task .toString ());
169+ return "redirect:/project/root" ;
170+ }
171+ }
172+
46173 @ RequestMapping (path = "/{projectId}" , method = RequestMethod .GET )
47174 public final String showProject (
48175 @ PathVariable long projectId ,
0 commit comments