source: trunk/grails-app/controllers/dbnp/studycapturing/PersonController.groovy @ 411

Last change on this file since 411 was 397, checked in by duh, 10 years ago
  • reformatted source code
  • added mega huge big ASCII comments to UNDOCUMMENTED of not properly DOCUMENTED classess... we have agreed many many MANY times that everyone should document their code according to JavaDoc? style... but why does nobody do it, or just keep SLACKING! /annoyed modus
File size: 6.5 KB
Line 
1package dbnp.studycapturing
2/**
3 * 888       888 888    888 8888888888 8888888b.  8888888888
4 * 888   o   888 888    888 888        888   Y88b 888
5 * 888  d8b  888 888    888 888        888    888 888
6 * 888 d888b 888 8888888888 8888888    888   d88P 8888888
7 * 888d88888b888 888    888 888        8888888P"  888
8 * 88888P Y88888 888    888 888        888 T88b   888
9 * 8888P   Y8888 888    888 888        888  T88b  888
10 * 888P     Y888 888    888 8888888888 888   T88b 8888888888
11 *
12 * 8888888 .d8888b.     88888888888 888    888 8888888888
13 *   888  d88P  Y88b        888     888    888 888
14 *   888  Y88b.             888     888    888 888
15 *   888   "Y888b.          888     8888888888 8888888
16 *   888      "Y88b.        888     888    888 888
17 *   888        "888        888     888    888 888
18 *   888  Y88b  d88P        888     888    888 888
19 * 8888888 "Y8888P"         888     888    888 8888888888
20 *
21 *   888888        d8888 888     888     d8888 8888888b.   .d88888b.   .d8888b.
22 *     "88b       d88888 888     888    d88888 888  "Y88b d88P" "Y88b d88P  Y88b
23 *      888      d88P888 888     888   d88P888 888    888 888     888 888    888
24 *      888     d88P 888 Y88b   d88P  d88P 888 888    888 888     888 888
25 *      888    d88P  888  Y88b d88P  d88P  888 888    888 888     888 888
26 *      888   d88P   888   Y88o88P  d88P   888 888    888 888     888 888    888
27 *      88P  d8888888888    Y888P  d8888888888 888  .d88P Y88b. .d88P Y88b  d88P
28 *      888 d88P     888     Y8P  d88P     888 8888888P"   "Y88888P"   "Y8888P"
29 *    .d88P
30 *  .d88P"
31 * 888P"
32 *
33 *  .d8888b.  888  .d8888b.  888  .d8888b.  888
34 * d88P  Y88b 888 d88P  Y88b 888 d88P  Y88b 888
35 *      .d88P 888      .d88P 888      .d88P 888
36 *    .d88P"  888    .d88P"  888    .d88P"  888
37 *    888"    888    888"    888    888"    888
38 *    888     Y8P    888     Y8P    888     Y8P
39 *             "              "              "
40 *    888     888    888     888    888     888
41 *
42 *
43 * TODO: add PROPER class and method documentation, just like have
44 *       agreed upon hundreds of times!!!!
45 */
46class PersonController {
47
48    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
49    def possibleGenders = [ 'Male', 'Female' ]
50
51    def index = {
52        redirect(action: "list", params: params)
53    }
54
55    def list = {
56        params.max = Math.min(params.max ? params.int('max') : 10, 100)
57        [personInstanceList: Person.list(params), personInstanceTotal: Person.count()]
58    }
59
60    def create = {
61        def personInstance = new Person()
62        personInstance.properties = params
63        return [personInstance: personInstance, possibleGenders:possibleGenders]
64    }
65
66    def save = {
67        def personInstance = new Person(params)
68        if (personInstance.save(flush: true)) {
69            flash.message = "${message(code: 'default.created.message', args: [message(code: 'person.label', default: 'Person'), ( personInstance.firstName ? personInstance.firstName : "" ) + " " + ( personInstance.prefix ? personInstance.prefix : "" ) + " " + ( personInstance.lastName ? personInstance.lastName : "" )])}"
70            redirect(action: "show", id: personInstance.id)
71        }
72        else {
73            render(view: "create", model: [personInstance: personInstance])
74        }
75    }
76
77    def show = {
78        def personInstance = Person.get(params.id)
79        if (!personInstance) {
80            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'person.label', default: 'Person'), params.id])}"
81            redirect(action: "list")
82        }
83        else {
84            [personInstance: personInstance]
85        }
86    }
87
88    def edit = {
89        def personInstance = Person.get(params.id)
90        if (!personInstance) {
91            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'person.label', default: 'Person'), params.id])}"
92            redirect(action: "list")
93        }
94        else {
95            return [personInstance: personInstance,possibleGenders:possibleGenders]
96        }
97    }
98
99    def update = {
100        def personInstance = Person.get(params.id)
101        if (personInstance) {
102            if (params.version) {
103                def version = params.version.toLong()
104                if (personInstance.version > version) {
105                   
106                    personInstance.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'person.label', default: 'Person')] as Object[], "Another user has updated this Person while you were editing")
107                    render(view: "edit", model: [personInstance: personInstance])
108                    return
109                }
110            }
111            personInstance.properties = params
112            if (!personInstance.hasErrors() && personInstance.save(flush: true)) {
113                flash.message = "${message(code: 'default.updated.message', args: [message(code: 'person.label', default: 'Person'), ( personInstance.firstName ? personInstance.firstName : "" ) + " " + ( personInstance.prefix ? personInstance.prefix : "" ) + " " + ( personInstance.lastName ? personInstance.lastName : "" )])}"
114                redirect(action: "show", id: personInstance.id)
115            }
116            else {
117                render(view: "edit", model: [personInstance: personInstance])
118            }
119        }
120        else {
121            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'person.label', default: 'Person'), params.id])}"
122            redirect(action: "list")
123        }
124    }
125
126    def delete = {
127        def personInstance = Person.get(params.id)
128
129        if (personInstance) {
130            def personName = ( personInstance.firstName ? personInstance.firstName : "" ) + " " + ( personInstance.prefix ? personInstance.prefix : "" ) + " " + ( personInstance.lastName ? personInstance.lastName : "" );
131            try {
132                personInstance.delete(flush: true)
133                flash.message = "${message(code: 'default.deleted.message', args: [message(code: 'person.label', default: 'Person'), personName])}"
134                redirect(action: "list")
135            }
136            catch (org.springframework.dao.DataIntegrityViolationException e) {
137                flash.message = "${message(code: 'default.not.deleted.message', args: [message(code: 'person.label', default: 'Person'), personName])}"
138                redirect(action: "show", id: params.id)
139            }
140        }
141        else {
142            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'person.label', default: 'Person'), params.id])}"
143            redirect(action: "list")
144        }
145    }
146}
Note: See TracBrowser for help on using the repository browser.