source: trunk/grails-app/controllers/DepartmentController.groovy @ 168

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

Add Department domain class, controller, views and demo data.
Add costCode and department attributes to SystemSection? and regen non-detailed controller and views, adjust detailed views to suite.

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