@@ -108,21 +108,47 @@ public final String addNewTopLevelProjectForm(
108108 Locale locale , Model model
109109 ){
110110 log .info ("/project/add/new/project (GET)" );
111- return addNewProject (rootProjectId , userSession , locale , model );
111+ addNewProject (rootProjectId , userSession , locale , model );
112+ return "project/addToplevel" ;
112113 }
113114
114115
115- @ RequestMapping (path = "/add/new/project" , method = RequestMethod .POST )
116+ @ RequestMapping (path = "/add/new/project" , method = { RequestMethod .POST , RequestMethod . PUT } )
116117 public final String addNewTopLevelProjectSave (
117118 @ Valid Project project ,
118119 @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
119120 BindingResult result ,
120121 Locale locale , Model model
121122 ){
122123 log .info ("/project/add/new/project (POST)" );
123- return addNewProjectPersist ( rootProjectId , userSession , project , result , locale , model );
124+ return addNewProjectPersist ( rootProjectId , userSession , project ,
125+ result , locale , model , "project/addToplevel" );
124126 }
125127
128+ @ RequestMapping (path = "/{projectId}/add/new/project" , method = RequestMethod .GET )
129+ public final String addNewSubProjectGet (
130+ @ PathVariable long projectId ,
131+ @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
132+ Locale locale , Model model
133+ ) {
134+ log .info ("private addNewProjectGet (GET) projectId=" +projectId );
135+ addNewProject (projectId , userSession , locale , model );
136+ return "project/add" ;
137+ }
138+
139+ @ RequestMapping (path = "/{projectId}/add/new/project" , method = {RequestMethod .POST , RequestMethod .PUT })
140+ public final String addNewSubProjectPost (
141+ @ PathVariable long projectId ,
142+ @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
143+ @ Valid Project project ,
144+ BindingResult result ,
145+ Locale locale , Model model ) {
146+ log .info ("private addNewProjectPost (POST) projectId=" +projectId +" " +project .toString ());
147+ return addNewProjectPersist ( projectId , userSession , project ,
148+ result , locale , model ,"project/add" );
149+ }
150+
151+
126152 @ RequestMapping (path = "/{thisProjectId}/move/to/{targetProjectId}" , method = RequestMethod .GET )
127153 public final String moveProject (
128154 @ PathVariable ("thisProjectId" ) Project thisProject ,
@@ -243,7 +269,7 @@ public final String deleteProject(
243269 }
244270
245271
246- private final String addNewProject (
272+ private final void addNewProject (
247273 long projectId ,
248274 UserSessionBean userSession ,
249275 Locale locale ,
@@ -274,15 +300,15 @@ private final String addNewProject(
274300 model .addAttribute ("breadcrumb" , breadcrumb );
275301 model .addAttribute ("thisProject" , thisProject );
276302 model .addAttribute ("project" , project );
277- return "project/add" ;
278303 }
279304
280305 private String addNewProjectPersist (
281306 long projectId ,
282307 UserSessionBean userSession ,
283308 Project project ,
284309 BindingResult result ,
285- Locale locale , Model model
310+ Locale locale , Model model ,
311+ String template
286312 ){
287313 log .info ("private addNewProjectPersist projectId=" +projectId +" " +project .toString ());
288314 Context context = super .getContext (userSession );
@@ -301,7 +327,7 @@ private String addNewProjectPersist(
301327 model .addAttribute ("breadcrumb" , breadcrumb );
302328 model .addAttribute ("thisProject" , thisProject );
303329 model .addAttribute ("project" , project );
304- return "project/add" ;
330+ return template ;
305331 } else {
306332 if (projectId == 0 ) {
307333 if (userSession .getContextId ()>0 ) {
@@ -324,28 +350,6 @@ private String addNewProjectPersist(
324350 }
325351 }
326352
327- @ RequestMapping (path = "/{projectId}/add/new/project" , method = RequestMethod .GET )
328- public final String addNewProjectGet (
329- @ PathVariable long projectId ,
330- @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
331- Locale locale , Model model
332- ) {
333- log .info ("private addNewProjectGet (GET) projectId=" +projectId );
334- return addNewProject (projectId , userSession , locale , model );
335- }
336-
337- @ RequestMapping (path = "/{projectId}/add/new/project" ,
338- method = RequestMethod .POST )
339- public final String addNewProjectPost (
340- @ PathVariable long projectId ,
341- @ ModelAttribute ("userSession" ) UserSessionBean userSession ,
342- @ Valid Project project ,
343- BindingResult result ,
344- Locale locale , Model model ) {
345- log .info ("private addNewProjectPost (POST) projectId=" +projectId +" " +project .toString ());
346- return addNewProjectPersist ( projectId , userSession , project , result , locale , model );
347- }
348-
349353 @ RequestMapping (path = "/task/{sourceTaskId}/changeorderto/{destinationTaskId}" , method = RequestMethod .GET )
350354 public String changeTaskOrderIdWithinAProject (
351355 @ PathVariable ("sourceTaskId" ) Task sourceTask ,
0 commit comments