source: trunk/grails-app/controllers/AppConfigController.groovy @ 234

Last change on this file since 234 was 234, checked in by gav, 10 years ago

New AppConfig class for storing application configuration settings in the database.
Service class, unit tests, views and controller to suite.

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