source: trunk/grails-app/controllers/PeriodController.groovy @ 787

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

Change all controllers to use default.optimistic.locking.failure.

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