source: trunk/grails-app/controllers/dbnp/studycapturing/PersonAffiliationController.groovy @ 1921

Last change on this file since 1921 was 1921, checked in by t.w.abma@…, 11 years ago
  • added filter to BaseFilters?
  • added security annotation to all controllers where needed (except for Home, (Advanced) Search and Publications)
  • added tags to top navigation menus showing only menu(items) dependent on whether a user is logged in or not
  • Property svn:keywords set to Rev Author Date
File size: 7.6 KB
Line 
1package dbnp.studycapturing
2
3import grails.plugins.springsecurity.Secured
4/**
5 * 888       888 888    888 8888888888 8888888b.  8888888888
6 * 888   o   888 888    888 888        888   Y88b 888
7 * 888  d8b  888 888    888 888        888    888 888
8 * 888 d888b 888 8888888888 8888888    888   d88P 8888888
9 * 888d88888b888 888    888 888        8888888P"  888
10 * 88888P Y88888 888    888 888        888 T88b   888
11 * 8888P   Y8888 888    888 888        888  T88b  888
12 * 888P     Y888 888    888 8888888888 888   T88b 8888888888
13 *
14 * 8888888 .d8888b.     88888888888 888    888 8888888888
15 *   888  d88P  Y88b        888     888    888 888
16 *   888  Y88b.             888     888    888 888
17 *   888   "Y888b.          888     8888888888 8888888
18 *   888      "Y88b.        888     888    888 888
19 *   888        "888        888     888    888 888
20 *   888  Y88b  d88P        888     888    888 888
21 * 8888888 "Y8888P"         888     888    888 8888888888
22 *
23 *   888888        d8888 888     888     d8888 8888888b.   .d88888b.   .d8888b.
24 *     "88b       d88888 888     888    d88888 888  "Y88b d88P" "Y88b d88P  Y88b
25 *      888      d88P888 888     888   d88P888 888    888 888     888 888    888
26 *      888     d88P 888 Y88b   d88P  d88P 888 888    888 888     888 888
27 *      888    d88P  888  Y88b d88P  d88P  888 888    888 888     888 888
28 *      888   d88P   888   Y88o88P  d88P   888 888    888 888     888 888    888
29 *      88P  d8888888888    Y888P  d8888888888 888  .d88P Y88b. .d88P Y88b  d88P
30 *      888 d88P     888     Y8P  d88P     888 8888888P"   "Y88888P"   "Y8888P"
31 *    .d88P
32 *  .d88P"
33 * 888P"
34 *
35 *  .d8888b.  888  .d8888b.  888  .d8888b.  888
36 * d88P  Y88b 888 d88P  Y88b 888 d88P  Y88b 888
37 *      .d88P 888      .d88P 888      .d88P 888
38 *    .d88P"  888    .d88P"  888    .d88P"  888
39 *    888"    888    888"    888    888"    888
40 *    888     Y8P    888     Y8P    888     Y8P
41 *             "              "              "
42 *    888     888    888     888    888     888
43 *
44 *
45 * TODO: add PROPER class and method documentation, just like have
46 *       agreed upon hundreds of times!!!!
47 */
48
49@Secured(['IS_AUTHENTICATED_REMEMBERED'])
50class PersonAffiliationController {
51
52    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
53
54        /**
55     * Fires after every action and determines the layout of the page
56     */
57    def afterInterceptor = { model, modelAndView ->
58      if ( params['dialog'] ) {
59        model.layout = 'dialog';
60        model.extraparams = [ 'dialog': 'true' ] ;
61      } else {
62        model.layout = 'main';
63        model.extraparams = [] ;
64      }
65    }
66
67    def index = {
68        redirect(action: "list", params: params)
69    }
70
71    def list = {
72        params.max = Math.min(params.max ? params.int('max') : 10, 100)
73        [personAffiliationInstanceList: PersonAffiliation.list(params), personAffiliationInstanceTotal: PersonAffiliation.count()]
74    }
75
76    def create = {
77        def personAffiliationInstance = new PersonAffiliation()
78        personAffiliationInstance.properties = params
79        return [personAffiliationInstance: personAffiliationInstance]
80    }
81
82    def save = {
83        def personAffiliationInstance = new PersonAffiliation(params)
84        def extraparams = new LinkedHashMap();
85
86        if( params[ 'dialog' ] ) {
87          extraparams[ 'dialog' ] = params[ 'dialog' ]
88        }
89
90        if (personAffiliationInstance.save(flush: true)) {
91            flash.message = "${message(code: 'default.created.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), personAffiliationInstance])}"
92            redirect(action: "show", id: personAffiliationInstance.id, params: extraparams)
93        }
94        else {
95            render(view: "create", model: [personAffiliationInstance: personAffiliationInstance])
96        }
97    }
98
99    def show = {
100        def personAffiliationInstance = PersonAffiliation.get(params.id)
101        if (!personAffiliationInstance) {
102            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), params.id])}"
103            redirect(action: "list")
104        }
105        else {
106            [personAffiliationInstance: personAffiliationInstance]
107        }
108    }
109
110    def edit = {
111        def personAffiliationInstance = PersonAffiliation.get(params.id)
112        if (!personAffiliationInstance) {
113            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), params.id])}"
114            redirect(action: "list")
115        }
116        else {
117            return [personAffiliationInstance: personAffiliationInstance]
118        }
119    }
120
121    def update = {
122        def personAffiliationInstance = PersonAffiliation.get(params.id)
123
124        def extraparams = new LinkedHashMap();
125
126        if( params[ 'dialog' ] ) {
127          extraparams[ 'dialog' ] = params[ 'dialog' ]
128        }
129
130        if (personAffiliationInstance) {
131            if (params.version) {
132                def version = params.version.toLong()
133                if (personAffiliationInstance.version > version) {
134                   
135                    personAffiliationInstance.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'personAffiliation.label', default: 'Affiliation')] as Object[], "Another user has updated this PersonAffiliation while you were editing")
136                    render(view: "edit", model: [personAffiliationInstance: personAffiliationInstance])
137                    return
138                }
139            }
140            personAffiliationInstance.properties = params
141            if (!personAffiliationInstance.hasErrors() && personAffiliationInstance.save(flush: true)) {
142                flash.message = "${message(code: 'default.updated.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), personAffiliationInstance])}"
143                redirect(action: "show", id: personAffiliationInstance.id, params: extraparams)
144            }
145            else {
146                render(view: "edit", model: [personAffiliationInstance: personAffiliationInstance])
147            }
148        }
149        else {
150            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), params.id])}"
151            redirect(action: "list", params: extraparams)
152        }
153    }
154
155    def delete = {
156        def personAffiliationInstance = PersonAffiliation.get(params.id)
157
158        def extraparams = new LinkedHashMap();
159
160        if( params[ 'dialog' ] ) {
161          extraparams[ 'dialog' ] = params[ 'dialog' ]
162        }
163
164        if (personAffiliationInstance) {
165            def affiliationName = personAffiliationInstance.toString()
166            try {
167                personAffiliationInstance.delete(flush: true)
168                flash.message = "${message(code: 'default.deleted.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), affiliationName])}"
169                redirect(action: "list", params: extraparams)
170            }
171            catch (org.springframework.dao.DataIntegrityViolationException e) {
172                flash.message = "${message(code: 'default.not.deleted.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), affiliationName])}"
173                redirect(action: "show", id: params.id, params: extraparams)
174            }
175        }
176        else {
177            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'personAffiliation.label', default: 'Affiliation'), params.id])}"
178            redirect(action: "list", params: extraparams)
179        }
180    }
181}
Note: See TracBrowser for help on using the repository browser.