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

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

Convert assignedPersons to assignedGroups as per ticket #37.

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