source: trunk/grails-app/controllers/TaskDetailedController.groovy @ 139

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

Install Navigation plugin, work on navigation and hopefully fixed a few more IE vs Firefox CSS issues.
New skin for class-diagram plugin.
Adjust security config to suite.
Replace home.gsp with start.gsp, remove options.gsp and acknowledgements.gsp as they are now on start.gsp tabs.
Create search pages for Tasks, Assets and Inventory.
Change suggested login to manager.
Change all date formats to format="EEE, dd-MMM-yyyy".

File size: 7.7 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3class TaskDetailedController extends BaseController {
4
5    def index = { 
6        println "index called"
7        redirect(action:search,params:params) 
8    }
9
10    // the delete, save and update actions only accept POST requests
11    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
12
13    def list = {
14        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
15        [ taskInstanceList: Task.list( params ), taskInstanceTotal: Task.count() ]
16    }
17
18    def search = {
19        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
20       
21        if(!params.order) {
22            params.sort = "id"
23            params.order = "desc"
24        }
25       
26        if(params.search == "ShowAll")
27        {
28            def taskInstanceActivesList = Task.findAllByIsActive(true, params)
29            def taskInstanceActivesTotal = Task.countByIsActive(true)
30            return [taskInstanceList: taskInstanceActivesList, taskInstanceTotal: taskInstanceActivesTotal]
31        }
32        if(params.search == "ShowDeleted")
33        {
34            def taskInstanceActivesList = Task.findAllByIsActive(false, params)
35            def taskInstanceActivesTotal = Task.countByIsActive(false)
36            return [taskInstanceList: taskInstanceActivesList, taskInstanceTotal: taskInstanceActivesTotal]
37        }
38        // Default:
39        def taskInstanceActivesList = Task.findAllByIsActive(true, params)
40        def taskInstanceActivesTotal = Task.countByIsActive(true)
41        [taskInstanceList: taskInstanceActivesList, taskInstanceTotal: taskInstanceActivesTotal]
42    }
43   
44    def searchShowAll = {
45        redirect(action:'search', params:[search:"ShowAll"])
46    }
47   
48    def searchShowDeleted = {
49        redirect(action:'search', params:[search:"ShowDeleted"])
50    }
51
52    def show = {
53       
54        // In the case of an actionSubmit button, rewrite action name from 'index'.
55        if(params._action_Show)
56        { params.action='show' }
57
58        def taskInstance = Task.get( params.id )
59
60        if(!taskInstance) {
61            flash.message = "Task not found with id ${params.id}"
62            redirect(action:search)
63        }
64        else {
65                        params.max = 10
66                        params.order = "desc"
67                        params.sort = "id"
68                       
69                        def entryWorkDoneList = Entry.withCriteria {
70                                                                                                                                def entryType = EntryType.findByName("WorkDone")
71                                                                                                                                eq("entryType", entryType)
72                                                                                                                                eq("task", taskInstance)
73                                                                                                                }
74                       
75                        def entryFaultList = Entry.withCriteria {
76                                                                                                                                def entryType = EntryType.findByName("Fault")
77                                                                                                                                eq("entryType", entryType)
78                                                                                                                                eq("task", taskInstance)
79                                                                                                                }
80
81                        def subTaskInstanceList = Task.findAllByParentTask(taskInstance, params)
82                        def subTaskInstanceTotal = Task.countByParentTask(taskInstance)                                 
83            def showTaskTab = new String("true")
84
85            def taskProcedureInstance = TaskProcedure.get(taskInstance.taskProcedure?.id)
86            def taskProcedureExits = new Boolean("true")
87            if(!taskProcedureInstance) {
88                taskProcedureExits = false
89            }
90//                      else {
91                                params.order = "asc"
92                                params.sort = "procedureStepNumber"
93                                def maintenanceActionList = MaintenanceAction.findAllByTaskProcedure(taskProcedureInstance, params)
94//                      }
95                                               
96            def taskRecurringScheduleInstance = TaskRecurringSchedule.get(taskInstance.taskRecurringSchedule?.id)
97            def taskRecurringScheduleExits= new Boolean("true")
98                        if(!taskRecurringScheduleInstance) {
99                taskRecurringScheduleExits = false
100            }
101                       
102            return [ taskInstance: taskInstance,
103                                                        entryWorkDoneList: entryWorkDoneList,
104                                                        entryFaultList: entryFaultList,
105                            taskProcedureInstance: taskProcedureInstance,
106                            taskProcedureExits: taskProcedureExits,
107                            showTaskTab: showTaskTab,
108                                                        subTaskInstanceList: subTaskInstanceList,
109                                                        subTaskInstanceTotal: subTaskInstanceTotal,
110                                                        subTaskInstanceMax: params.max,
111                                                        maintenanceActionList: maintenanceActionList,
112                                                        taskRecurringScheduleInstance: taskRecurringScheduleInstance,
113                                                        taskRecurringScheduleExits: taskRecurringScheduleExits] 
114        }
115    }
116
117    def delete = {
118        def taskInstance = Task.get( params.id )
119        if(taskInstance) {
120            try {
121                taskInstance.isActive = false
122                flash.message = "Task ${params.id} has been set to inactive."
123                redirect(action:search)
124            }
125            catch(org.springframework.dao.DataIntegrityViolationException e) {
126                flash.message = "Task ${params.id} could not be deleted"
127                redirect(action:show,id:params.id)
128            }
129        }
130        else {
131            flash.message = "Task not found with id ${params.id}"
132            redirect(action:search)
133        }
134    }
135
136    def edit = {
137       
138        // In the case of an actionSubmit button, rewrite action name from 'index'.
139        if(params._action_Edit)
140        { params.action='edit' }
141       
142        def taskInstance = Task.get( params.id )
143
144        if(!taskInstance) {
145            flash.message = "Task not found with id ${params.id}"
146            redirect(action:search)
147        }
148        else {
149            def criteria = taskInstance.createCriteria()
150            def results = criteria {
151                and {
152                    notEqual('id', taskInstance.id)
153                    }
154            }
155            return [ taskInstance : taskInstance, possibleParentList: results ]
156        }
157    }
158
159    def update = {
160        def taskInstance = Task.get( params.id )
161        if(taskInstance) {
162            if(params.version) {
163                def version = params.version.toLong()
164                if(taskInstance.version > version) {
165                   
166                    taskInstance.errors.rejectValue("version", "task.optimistic.locking.failure", "Another user has updated this Task while you were editing.")
167                    render(view:'edit',model:[taskInstance:taskInstance])
168                    return
169                }
170            }
171            taskInstance.properties = params
172            if(!taskInstance.hasErrors() && taskInstance.save()) {
173                flash.message = "Task ${params.id} updated"
174                redirect(action:show,id:taskInstance.id)
175            }
176            else {
177                render(view:'edit',model:[taskInstance:taskInstance])
178            }
179        }
180        else {
181            flash.message = "Task not found with id ${params.id}"
182            redirect(action:edit,id:params.id)
183        }
184    }
185
186    def create = {
187        def taskInstance = new Task()
188        taskInstance.properties = params
189        return ['taskInstance':taskInstance]
190    }
191
192    def save = {
193        def taskInstance = new Task(params)
194        if(!taskInstance.hasErrors() && taskInstance.save()) {
195            flash.message = "Task ${taskInstance.id} created"
196            redirect(action:show,id:taskInstance.id)
197        }
198        else {
199            render(view:'create',model:[taskInstance:taskInstance])
200        }
201    }
202       
203        def listSubTasks = {
204                def parentTaskInstance = Task.get(params.id)
205                               
206        if(!parentTaskInstance) {
207            flash.message = "Task not found with id ${params.id}"
208            redirect(action:search)
209        }
210        else {
211                params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
212                def subTaskInstanceList = Task.findAllByParentTask(parentTaskInstance, params)
213                def subTaskInstanceTotal = Task.countByParentTask(parentTaskInstance)
214                               
215        [ taskInstanceList: subTaskInstanceList,
216                        taskInstanceTotal:  subTaskInstanceTotal,
217                        parentTaskInstance: parentTaskInstance]
218                }
219        }
220       
221}
Note: See TracBrowser for help on using the repository browser.