source: trunk/grails-app/controllers/AssignedGroupDetailedController.groovy @ 242

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

Re-implement AssignedGroups along side AssignedPersons manually taking the good stuff from r240.
As per revised ticket #37.

File size: 4.0 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3class AssignedGroupDetailedController 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        [ assignedGroupInstanceList: AssignedGroup.list( params ), assignedGroupInstanceTotal: AssignedGroup.count() ]
13    }
14
15    def show = {
16        def assignedGroupInstance = AssignedGroup.get( params.id )
17
18        if(!assignedGroupInstance) {
19            flash.message = "AssignedGroup not found with id ${params.id}"
20            redirect(action:list)
21        }
22        else { return [ assignedGroupInstance : assignedGroupInstance ] }
23    }
24
25    def delete = {
26        def assignedGroupInstance = AssignedGroup.get( params.id )
27        if(assignedGroupInstance) {
28            try {
29                def taskId = assignedGroupInstance.task.id
30                assignedGroupInstance.delete()
31                flash.message = "AssignedGroup ${params.id} deleted"
32                redirect(controller:"taskDetailed", action:"show", id: taskId)
33            }
34            catch(org.springframework.dao.DataIntegrityViolationException e) {
35                flash.message = "AssignedGroup ${params.id} could not be deleted"
36                redirect(action:show,id:params.id)
37            }
38        }
39        else {
40            flash.message = "AssignedGroup not found with id ${params.id}"
41            redirect(action:list)
42        }
43    }
44
45    def edit = {
46        def assignedGroupInstance = AssignedGroup.get( params.id )
47
48        if(!assignedGroupInstance) {
49            flash.message = "AssignedGroup not found with id ${params.id}"
50            redirect(action:list)
51        }
52        else {
53            return [ assignedGroupInstance : assignedGroupInstance ]
54        }
55    }
56
57    def update = {
58        def assignedGroupInstance = AssignedGroup.get( params.id )
59        if(assignedGroupInstance) {
60            if(params.version) {
61                def version = params.version.toLong()
62                if(assignedGroupInstance.version > version) {
63
64                    assignedGroupInstance.errors.rejectValue("version", "assignedGroup.optimistic.locking.failure", "Another user has updated this AssignedGroup while you were editing.")
65                    render(view:'edit',model:[assignedGroupInstance:assignedGroupInstance])
66                    return
67                }
68            }
69            assignedGroupInstance.properties = params
70            if(!assignedGroupInstance.hasErrors() && assignedGroupInstance.save(flush: true)) {
71                flash.message = "AssignedGroup ${params.id} updated"
72                redirect(action:show,id:assignedGroupInstance.id)
73            }
74            else {
75                render(view:'edit',model:[assignedGroupInstance:assignedGroupInstance])
76            }
77        }
78        else {
79            flash.message = "AssignedGroup not found with id ${params.id}"
80            redirect(action:edit,id:params.id)
81        }
82    }
83
84    def create = {
85        if(!params.task?.id) {
86            flash.message = "Please select a task and then 'Add Assigned Group'"
87            redirect(controller: "taskDetailed", action: "search")
88        }
89        else {
90            def assignedGroupInstance = new AssignedGroup()
91            assignedGroupInstance.properties = params
92            return ['assignedGroupInstance':assignedGroupInstance]
93        }
94    }
95
96    def save = {
97        def assignedGroupInstance = new AssignedGroup(params)
98
99        if(!assignedGroupInstance.hasErrors() && assignedGroupInstance.save(flush: true)) {
100            flash.message = "AssignedGroup ${assignedGroupInstance.id} created"
101            redirect(controller:"taskDetailed", action:"show", id: params.task.id)
102        }
103        else {
104            render(view:'create',model:[assignedGroupInstance:assignedGroupInstance])
105        }
106    }
107}
Note: See TracBrowser for help on using the repository browser.