source: trunk/grails-app/controllers/TaskRecurringScheduleDetailedController.groovy @ 207

Last change on this file since 207 was 207, checked in by gav, 14 years ago

Refactor taskRecurringSchedule update() to a service method.

File size: 3.7 KB
RevLine 
[131]1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
[136]2import org.codehaus.groovy.runtime.TimeCategory
[137]3import java.text.SimpleDateFormat
[131]4
5class TaskRecurringScheduleDetailedController extends BaseController {
[157]6
7    def dateUtilService
[203]8    def taskRecurringScheduleService
[157]9
[131]10    def index = { redirect(action:list,params:params) }
11
12    // the delete, save and update actions only accept POST requests
13    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
14
15    def list = {
16        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
17        [ taskRecurringScheduleInstanceList: TaskRecurringSchedule.list( params ), taskRecurringScheduleInstanceTotal: TaskRecurringSchedule.count() ]
18    }
19
20    def show = {
21        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
22
23        if(!taskRecurringScheduleInstance) {
[157]24            flash.message = "Recurring Schedule not found with id ${params.id}"
[131]25            redirect(action:list)
26        }
27        else { return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ] }
28    }
29
30    def delete = {
31        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
32        if(taskRecurringScheduleInstance) {
33            try {
[199]34                taskRecurringScheduleInstance.delete(flush: true)
[157]35                flash.message = "Recurring Schedule ${params.id} deleted"
[131]36                redirect(action:list)
37            }
38            catch(org.springframework.dao.DataIntegrityViolationException e) {
[157]39                flash.message = "Recurring Schedule ${params.id} could not be deleted"
[131]40                redirect(action:show,id:params.id)
41            }
42        }
43        else {
[157]44            flash.message = "Recurring Schedule not found with id ${params.id}"
[131]45            redirect(action:list)
46        }
47    }
48
49    def edit = {
50        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
51
52        if(!taskRecurringScheduleInstance) {
[157]53            flash.message = "Recurring Schedule not found with id ${params.id}"
[131]54            redirect(action:list)
55        }
56        else {
[137]57            return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance]
[131]58        }
59    }
60
61    def update = {
[157]62
[207]63        if(!TaskRecurringSchedule.exists(params.id)) {
64            flash.message = "Recurring Schedule not found with id ${params.id}"
65            redirect(action: 'list')
66        }
[157]67
[207]68        def result = taskRecurringScheduleService.update(params)
[157]69
[207]70        if(!result.error) {
71                flash.message = "Recurring Schedule ${params.id} updated"
72                redirect(action: 'show', id: result.taskRecurringScheduleInstance.id)
73        }
74        else {
75            render(view:'edit',model:[taskRecurringScheduleInstance: result.taskRecurringScheduleInstance.attach()])
76        }
[157]77
[207]78    }
[157]79
[131]80    def create = {
[203]81        if(!params.task?.id || !Task.exists(params.task?.id)) {
82            flash.message = "Please select a task, then Create a Recurring Schedule for it."
[199]83            redirect(controller:"taskDetailed", action:"search")
[203]84            return
[134]85        }
[203]86        def taskRecurringScheduleInstance = new TaskRecurringSchedule()
87        taskRecurringScheduleInstance.properties = params
88        return [taskRecurringScheduleInstance: taskRecurringScheduleInstance]
[137]89    } // end create()
[131]90
91    def save = {
[203]92        def result = taskRecurringScheduleService.create(params)
[134]93
[203]94        if(!result.error) {
95            flash.message = "Recurring Schedule ${result.taskRecurringScheduleInstance.id} created."
96            redirect(action:show, id: result.taskRecurringScheduleInstance.id)
[157]97        }
98        else {
[203]99            render(view:'create',model:[taskRecurringScheduleInstance: result.taskRecurringScheduleInstance])
[157]100        }
[137]101    } // end save()
[136]102
[131]103}
Note: See TracBrowser for help on using the repository browser.