Changeset 157 for trunk/grails-app/controllers
- Timestamp:
- Oct 21, 2009, 5:07:30 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/TaskRecurringScheduleDetailedController.groovy
r137 r157 4 4 5 5 class TaskRecurringScheduleDetailedController extends BaseController { 6 7 def dateUtilService8 6 7 def dateUtilService 8 9 9 def index = { redirect(action:list,params:params) } 10 10 … … 21 21 22 22 if(!taskRecurringScheduleInstance) { 23 flash.message = " TaskRecurringSchedule not found with id ${params.id}"23 flash.message = "Recurring Schedule not found with id ${params.id}" 24 24 redirect(action:list) 25 25 } … … 32 32 try { 33 33 taskRecurringScheduleInstance.delete() 34 flash.message = " TaskRecurringSchedule ${params.id} deleted"34 flash.message = "Recurring Schedule ${params.id} deleted" 35 35 redirect(action:list) 36 36 } 37 37 catch(org.springframework.dao.DataIntegrityViolationException e) { 38 flash.message = " TaskRecurringSchedule ${params.id} could not be deleted"38 flash.message = "Recurring Schedule ${params.id} could not be deleted" 39 39 redirect(action:show,id:params.id) 40 40 } 41 41 } 42 42 else { 43 flash.message = " TaskRecurringSchedule not found with id ${params.id}"43 flash.message = "Recurring Schedule not found with id ${params.id}" 44 44 redirect(action:list) 45 45 } … … 50 50 51 51 if(!taskRecurringScheduleInstance) { 52 flash.message = " TaskRecurringSchedule not found with id ${params.id}"52 flash.message = "Recurring Schedule not found with id ${params.id}" 53 53 redirect(action:list) 54 54 } … … 59 59 60 60 def update = { 61 TaskRecurringSchedule.withTransaction { status ->62 63 def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )64 if(taskRecurringScheduleInstance) {65 66 if(params.version) {67 def version = params.version.toLong()68 if(taskRecurringScheduleInstance.version > version) {69 taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this TaskRecurringSchedule while you were editing.")70 render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])71 return72 }73 }74 75 Date originalDate = taskRecurringScheduleInstance.startDate76 taskRecurringScheduleInstance.properties = params // Domain object is now 'dirty'.77 Date newDate = taskRecurringScheduleInstance.startDate78 79 // If user changes startDate then ensure it is in the future, otherwise it's ok to keep the original date.80 if(originalDate.getTime() != newDate.getTime())81 {82 if(newDate < dateUtilService.getToday())83 {84 status.setRollbackOnly() // Only allow the transaction to Rollback, preventing flush due to 'dirty'.85 taskRecurringScheduleInstance.errors.rejectValue("startDate", "taskRecurring.startDate.NotInTheFuture")86 render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])87 return88 }89 }90 91 taskRecurringScheduleInstance.nextTargetStartDate = taskRecurringScheduleInstance.startDate92 taskRecurringScheduleInstance.setNextGenerationDate()93 taskRecurringScheduleInstance.setNextTargetCompletionDate()94 95 if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save())96 {97 flash.message = "TaskRecurringSchedule ${params.id} updated"98 redirect(action:show,id:taskRecurringScheduleInstance.id)99 }100 else101 {102 render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])103 }104 }105 else106 {107 flash.message = "TaskRecurringSchedule not found with id ${params.id}"108 redirect(action:edit,id:params.id)109 }110 111 } // end withTransaction 112 } // end update()113 61 TaskRecurringSchedule.withTransaction { status -> 62 63 def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id ) 64 if(taskRecurringScheduleInstance) { 65 66 if(params.version) { 67 def version = params.version.toLong() 68 if(taskRecurringScheduleInstance.version > version) { 69 taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this Recurring Schedule while you were editing.") 70 render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance]) 71 return 72 } 73 } 74 75 Date originalDate = taskRecurringScheduleInstance.startDate 76 taskRecurringScheduleInstance.properties = params // Domain object is now 'dirty'. 77 Date newDate = taskRecurringScheduleInstance.startDate 78 79 // If user changes startDate then ensure it is in the future, otherwise it's ok to keep the original date. 80 if(originalDate.getTime() != newDate.getTime()) 81 { 82 if(newDate < dateUtilService.getToday()) 83 { 84 status.setRollbackOnly() // Only allow the transaction to Rollback, preventing flush due to 'dirty'. 85 taskRecurringScheduleInstance.errors.rejectValue("startDate", "taskRecurring.startDate.NotInTheFuture") 86 render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance]) 87 return 88 } 89 } 90 91 taskRecurringScheduleInstance.nextTargetStartDate = taskRecurringScheduleInstance.startDate 92 taskRecurringScheduleInstance.setNextGenerationDate() 93 taskRecurringScheduleInstance.setNextTargetCompletionDate() 94 95 if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) 96 { 97 flash.message = "Recurring Schedule ${params.id} updated" 98 redirect(action:show,id:taskRecurringScheduleInstance.id) 99 } 100 else 101 { 102 render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance]) 103 } 104 } 105 else 106 { 107 flash.message = "Recurring Schedule not found with id ${params.id}" 108 redirect(action:edit,id:params.id) 109 } 110 111 } // end withTransaction 112 } // end update() 113 114 114 def create = { 115 115 try { 116 116 def taskInstance = Task.get(params.taskInstance.id) 117 def taskRecurringScheduleInstance = new TaskRecurringSchedule()117 def taskRecurringScheduleInstance = new TaskRecurringSchedule() 118 118 taskRecurringScheduleInstance.task = taskInstance 119 119 return [taskRecurringScheduleInstance: taskRecurringScheduleInstance] … … 127 127 def save = { 128 128 def taskRecurringScheduleInstance = new TaskRecurringSchedule(params) 129 def taskInstance = Task.get(params.task.id)130 131 if(taskInstance.taskRecurringSchedule) {132 flash.message = "This task already has a recurring schedule"133 redirect(controller:"taskDetailed", action:"show", id: params.task.id)134 }135 else {136 137 if(taskRecurringScheduleInstance.startDate < dateUtilService.getToday()) {138 taskRecurringScheduleInstance.errors.rejectValue("startDate", "taskRecurring.startDate.NotInTheFuture")139 }140 141 if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {142 143 taskInstance.taskRecurringSchedule = taskRecurringScheduleInstance144 145 if(taskInstance.save()) {146 flash.message = "TaskRecurringSchedule ${taskRecurringScheduleInstance.id} created"147 redirect(action:show,id:taskRecurringScheduleInstance.id)148 }149 else {150 flash.message = "Task could not be saved and therefore the Recurring Schedule has been disgarded, cause unknown."151 render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])152 }153 }154 else {155 render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])156 }157 }129 def taskInstance = Task.get(params.task.id) 130 131 if(taskInstance.taskRecurringSchedule) { 132 flash.message = "This task already has a recurring schedule" 133 redirect(controller:"taskDetailed", action:"show", id: params.task.id) 134 } 135 else { 136 137 if(taskRecurringScheduleInstance.startDate < dateUtilService.getToday()) { 138 taskRecurringScheduleInstance.errors.rejectValue("startDate", "taskRecurring.startDate.NotInTheFuture") 139 } 140 141 if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) { 142 143 taskInstance.taskRecurringSchedule = taskRecurringScheduleInstance 144 145 if(taskInstance.save()) { 146 flash.message = "Recurring Schedule ${taskRecurringScheduleInstance.id} created" 147 redirect(action:show,id:taskRecurringScheduleInstance.id) 148 } 149 else { 150 flash.message = "Task could not be saved and therefore the Recurring Schedule has been disgarded, cause unknown." 151 render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance]) 152 } 153 } 154 else { 155 render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance]) 156 } 157 } 158 158 159 159 } // end save()
Note: See TracChangeset
for help on using the changeset viewer.
