source: trunk/grails-app/controllers/SectionDetailedController.groovy @ 274

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

Refactor classes for asset tree refinement.
Regenerate views and controllers to suite.

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