Changeset 157 for trunk/grails-app/controllers
- Timestamp:
- Oct 21, 2009, 5:07:30 PM (15 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 8 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 62 63 64 65 66 67 68 69 taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this TaskRecurringSchedule while you were editing.")70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 flash.message = "TaskRecurringSchedule ${params.id} updated"98 99 100 101 102 103 104 105 106 107 flash.message = "TaskRecurringSchedule not found with id ${params.id}"108 109 110 111 } // end withTransaction 112 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 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 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 flash.message = "TaskRecurringSchedule ${taskRecurringScheduleInstance.id} created"147 148 149 150 flash.message = "Task could not be saved and therefore the Recurring Schedule has been disgarded, cause unknown."151 152 153 154 155 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.