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

Last change on this file since 134 was 134, checked in by gav, 15 years ago

Add icons from famfamfam silk icons, add acknowledgement page to suite.
Adjust AssignedPerson? controller so that a task.id is required to create.
Move Add AssignedPerson? link up to TaskDetailed? show page.
Further improvements to taskDetailed show tabs.
Adjust TaskProcedureDetailed? controller to allow linking a Procedure to a task during creation.
Adjust TaskRecurringSchedule? to a one-to-one cascading relationship.
Modify CSS class duration to time and added icons.
Regenerate some pages.

File size: 4.7 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3class TaskRecurringScheduleDetailedController extends BaseController {
4   
5    def index = { redirect(action:list,params:params) }
6
7    // the delete, save and update actions only accept POST requests
8    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
9
10    def list = {
11        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
12        [ taskRecurringScheduleInstanceList: TaskRecurringSchedule.list( params ), taskRecurringScheduleInstanceTotal: TaskRecurringSchedule.count() ]
13    }
14
15    def show = {
16        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
17
18        if(!taskRecurringScheduleInstance) {
19            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
20            redirect(action:list)
21        }
22        else { return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ] }
23    }
24
25    def delete = {
26        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
27        if(taskRecurringScheduleInstance) {
28            try {
29                taskRecurringScheduleInstance.delete()
30                flash.message = "TaskRecurringSchedule ${params.id} deleted"
31                redirect(action:list)
32            }
33            catch(org.springframework.dao.DataIntegrityViolationException e) {
34                flash.message = "TaskRecurringSchedule ${params.id} could not be deleted"
35                redirect(action:show,id:params.id)
36            }
37        }
38        else {
39            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
40            redirect(action:list)
41        }
42    }
43
44    def edit = {
45        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
46
47        if(!taskRecurringScheduleInstance) {
48            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
49            redirect(action:list)
50        }
51        else {
52            return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ]
53        }
54    }
55
56    def update = {
57        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
58        if(taskRecurringScheduleInstance) {
59            if(params.version) {
60                def version = params.version.toLong()
61                if(taskRecurringScheduleInstance.version > version) {
62                   
63                    taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this TaskRecurringSchedule while you were editing.")
64                    render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
65                    return
66                }
67            }
68            taskRecurringScheduleInstance.properties = params
69            if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
70                flash.message = "TaskRecurringSchedule ${params.id} updated"
71                redirect(action:show,id:taskRecurringScheduleInstance.id)
72            }
73            else {
74                render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
75            }
76        }
77        else {
78            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
79            redirect(action:edit,id:params.id)
80        }
81    }
82       
83    def create = {
84        try {
85            def taskInstance = Task.get(params.taskInstance.id)
86                        def taskRecurringScheduleInstance = new TaskRecurringSchedule()
87            taskRecurringScheduleInstance.task = taskInstance
88            return [taskRecurringScheduleInstance: taskRecurringScheduleInstance]
89        }
90        catch(Exception e) {
91            flash.message = "Please select a task, then Create a Recurring Schedule for it.'"
92            redirect(controller:"taskDetailed", action:"list")
93        }
94    }
95
96    def save = {
97        def taskRecurringScheduleInstance = new TaskRecurringSchedule(params)
98                def taskInstance = Task.get(params.task.id)
99               
100                if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
101                       
102                        taskInstance.taskRecurringSchedule = taskRecurringScheduleInstance
103                                       
104                        if(taskInstance.save()) {
105                                flash.message = "TaskRecurringSchedule ${taskRecurringScheduleInstance.id} created"
106                                redirect(action:show,id:taskRecurringScheduleInstance.id)
107                        }
108                        else {
109                                flash.message = "Task could not be saved and therefore the Recurring Schedule has been disgarded, cause unknown."                               
110                                render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
111                        }
112                }
113                else {
114                        render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
115                }
116
117    }
118       
119}
Note: See TracBrowser for help on using the repository browser.