1010import org .woehlke .simpleworklist .context .Context ;
1111import org .woehlke .simpleworklist .context .ContextService ;
1212import org .woehlke .simpleworklist .task .Task ;
13+ import org .woehlke .simpleworklist .task .TaskService ;
1314import org .woehlke .simpleworklist .user .UserSessionBean ;
1415import org .woehlke .simpleworklist .user .account .UserAccount ;
1516
1617import java .util .List ;
1718import java .util .Locale ;
1819
20+ import static org .woehlke .simpleworklist .project .Project .rootProjectId ;
21+
1922@ Slf4j
2023@ Service
2124public class ProjectControllerServiceImpl implements ProjectControllerService {
2225
2326 private final ProjectService projectService ;
27+ private final TaskService taskService ;
2428 private final ContextService contextService ;
2529 private final BreadcrumbService breadcrumbService ;
2630
2731 @ Autowired
28- public ProjectControllerServiceImpl (ProjectService projectService , ContextService contextService , BreadcrumbService breadcrumbService ) {
32+ public ProjectControllerServiceImpl (ProjectService projectService , TaskService taskService , ContextService contextService , BreadcrumbService breadcrumbService ) {
2933 this .projectService = projectService ;
34+ this .taskService = taskService ;
3035 this .contextService = contextService ;
3136 this .breadcrumbService = breadcrumbService ;
3237 }
@@ -48,7 +53,7 @@ public void addNewProject(
4853 thisProject = new Project ();
4954 thisProject .setId (0L );
5055 project = Project .newRootProjectFactory (userAccount );
51- if (userSession .getContextId () == 0L ){
56+ if (userSession .getLastContextId () == 0L ){
5257 model .addAttribute ("mustChooseArea" , true );
5358 project .setContext (userAccount .getDefaultContext ());
5459 } else {
@@ -92,7 +97,7 @@ public String addNewProjectPersist(
9297 return template ;
9398 } else {
9499 if (projectId == 0 ) {
95- if (userSession .getContextId ()>0 ) {
100+ if (userSession .getLastContextId ()>0 ) {
96101 project .setContext (context );
97102 }
98103 project = projectService .saveAndFlush (project );
@@ -118,10 +123,10 @@ public Project getProject(long projectId, UserAccount userAccount, UserSessionBe
118123 if (projectId == 0 ) {
119124 thisProject = new Project ();
120125 thisProject .setId (0L );
121- if (userSession .getContextId () == 0L ){
126+ if (userSession .getLastContextId () == 0L ){
122127 thisProject .setContext (userAccount .getDefaultContext ());
123128 } else {
124- Context context = contextService .findByIdAndUserAccount (userSession .getContextId (), userAccount );
129+ Context context = contextService .findByIdAndUserAccount (userSession .getLastContextId (), userAccount );
125130 thisProject .setContext (context );
126131 }
127132 } else {
@@ -140,12 +145,13 @@ public void addNewProjectToRoot(
140145 log .info ("addNewProjectToRoot" );
141146 Project project ;
142147 project = new Project ();
143- project .setId (0L );
148+ project .setId (rootProjectId );
144149 Breadcrumb breadcrumb = breadcrumbService .getBreadcrumbForShowRootProject (locale );
145150 model .addAttribute ("breadcrumb" , breadcrumb );
146151 model .addAttribute ("project" , project );
147152 model .addAttribute ("thisProjectId" , project .getId ());
148153 model .addAttribute ("breadcrumb" , breadcrumb );
154+ userSession .setLastProjectId (rootProjectId );
149155 }
150156
151157 @ Override
@@ -155,35 +161,31 @@ public String addNewProjectToRootPersist(
155161 Context context ,
156162 BindingResult result ,
157163 Locale locale ,
158- Model model ,
159- String s
164+ Model model
160165 ) {
161166 log .info ("addNewProjectToRootPersist" );
162167 project = projectService .saveAndFlush (project );
163- return s + project .getId ();
168+ userSession .setLastProjectId (project .getId ());
169+ return project .getUrl ();
164170 }
165171
166172 @ Override
167173 public String transformTaskIntoProjectGet (Task task ) {
168- if (task != null ) {
169- long projectId = 0 ;
170- if (task .getProject () != null ) {
171- projectId = task .getProject ().getId ();
172- }
174+ Project thisProject = new Project ();
175+ thisProject .setName (task .getTitle ());
176+ thisProject .setDescription (task .getText ());
177+ thisProject .setUuid (task .getUuid ());
178+ thisProject .setContext (task .getContext ());
179+ if (task .getProject () != null ) {
180+ long projectId = task .getProject ().getId ();
173181 Project parentProject = projectService .findByProjectId (projectId );
174- Project thisProject = new Project ();
175182 thisProject .setParent (parentProject );
176- thisProject .setName (task .getTitle ());
177- thisProject .setDescription (task .getText ());
178- thisProject .setUuid (task .getUuid ());
179- thisProject .setContext (task .getContext ());
180- thisProject = projectService .saveAndFlush (thisProject );
181- task .emptyTrash ();
182- //taskService.updatedViaTaskstate(task);
183- projectId = thisProject .getId ();
184- log .info ("tried to transform Task " + task .getId () + " to new Project " + projectId );
185- return thisProject .getUrl ();
186183 }
187- return "redirect:/project/root" ;
184+ thisProject = projectService .saveAndFlush (thisProject );
185+ task .moveToTrash ();
186+ task .emptyTrash ();
187+ taskService .updatedViaTaskstate (task );
188+ log .info ("tried to transform Task " + task .getId () + " to new Project " + thisProject .getId ());
189+ return thisProject .getUrl ();
188190 }
189191}
0 commit comments