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
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2import org.codehaus.groovy.runtime.TimeCategory
3import java.text.SimpleDateFormat
4
5class TaskRecurringScheduleDetailedController extends BaseController {
6
7    def dateUtilService
8    def taskRecurringScheduleService
9
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) {
24            flash.message = "Recurring Schedule not found with id ${params.id}"
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 {
34                taskRecurringScheduleInstance.delete(flush: true)
35                flash.message = "Recurring Schedule ${params.id} deleted"
36                redirect(action:list)
37            }
38            catch(org.springframework.dao.DataIntegrityViolationException e) {
39                flash.message = "Recurring Schedule ${params.id} could not be deleted"
40                redirect(action:show,id:params.id)
41            }
42        }
43        else {
44            flash.message = "Recurring Schedule not found with id ${params.id}"
45            redirect(action:list)
46        }
47    }
48
49    def edit = {
50        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
51
52        if(!taskRecurringScheduleInstance) {
53            flash.message = "Recurring Schedule not found with id ${params.id}"
54            redirect(action:list)
55        }
56        else {
57            return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance]
58        }
59    }
60
61    def update = {
62
63        if(!TaskRecurringSchedule.exists(params.id)) {
64            flash.message = "Recurring Schedule not found with id ${params.id}"
65            redirect(action: 'list')
66        }
67
68        def result = taskRecurringScheduleService.update(params)
69
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        }
77
78    }
79
80    def create = {
81        if(!params.task?.id || !Task.exists(params.task?.id)) {
82            flash.message = "Please select a task, then Create a Recurring Schedule for it."
83            redirect(controller:"taskDetailed", action:"search")
84            return
85        }
86        def taskRecurringScheduleInstance = new TaskRecurringSchedule()
87        taskRecurringScheduleInstance.properties = params
88        return [taskRecurringScheduleInstance: taskRecurringScheduleInstance]
89    } // end create()
90
91    def save = {
92        def result = taskRecurringScheduleService.create(params)
93
94        if(!result.error) {
95            flash.message = "Recurring Schedule ${result.taskRecurringScheduleInstance.id} created."
96            redirect(action:show, id: result.taskRecurringScheduleInstance.id)
97        }
98        else {
99            render(view:'create',model:[taskRecurringScheduleInstance: result.taskRecurringScheduleInstance])
100        }
101    } // end save()
102
103}
Note: See TracBrowser for help on using the repository browser.