source: trunk/grails-app/controllers/dbnp/studycapturing/AssayController.groovy @ 959

Last change on this file since 959 was 959, checked in by j.a.m.wesbeek@…, 13 years ago
  • set keyword expansion
  • Property svn:keywords set to Author Date Rev
File size: 4.4 KB
Line 
1package dbnp.studycapturing
2
3class AssayController {
4
5    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
6
7    def index = {
8        redirect(action: "list", params: params)
9    }
10
11    def list = {
12        params.max = Math.min(params.max ? params.int('max') : 10, 100)
13        [assayInstanceList: Assay.list(params), assayInstanceTotal: Assay.count()]
14    }
15
16    def create = {
17        def assayInstance = new Assay()
18        assayInstance.properties = params
19        return [assayInstance: assayInstance]
20    }
21
22    def save = {
23        def assayInstance = new Assay(params)
24
25        // The following lines deviate from the generate-all generated code.
26        // See http://jira.codehaus.org/browse/GRAILS-3783 for why we have this shameful workaround...
27        def study = assayInstance.parent
28        study.addToAssays(assayInstance)
29
30        if (assayInstance.save(flush: true)) {
31            flash.message = "${message(code: 'default.created.message', args: [message(code: 'assay.label', default: 'Assay'), assayInstance.id])}"
32            redirect(action: "show", id: assayInstance.id)
33        }
34        else {
35            render(view: "create", model: [assayInstance: assayInstance])
36        }
37    }
38
39    def show = {
40        def assayInstance = Assay.get(params.id)
41        if (!assayInstance) {
42            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'assay.label', default: 'Assay'), params.id])}"
43            redirect(action: "list")
44        }
45        else {
46            [assayInstance: assayInstance]
47        }
48    }
49
50        def showByToken = {
51            def assayInstance = Assay.findByExternalAssayID(params.id)
52            if (!assayInstance) {
53                flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'assay.label', default: 'Assay'), params.id])}"
54                redirect(action: "list")
55            }
56            else {
57                    redirect(action: "show", id: assayInstance.id)
58            }
59        }
60
61    def edit = {
62        def assayInstance = Assay.get(params.id)
63        if (!assayInstance) {
64            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'assay.label', default: 'Assay'), params.id])}"
65            redirect(action: "list")
66        }
67        else {
68            return [assayInstance: assayInstance]
69        }
70    }
71
72    def update = {
73        def assayInstance = Assay.get(params.id)
74        if (assayInstance) {
75            if (params.version) {
76                def version = params.version.toLong()
77                if (assayInstance.version > version) {
78                   
79                    assayInstance.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'assay.label', default: 'Assay')] as Object[], "Another user has updated this Assay while you were editing")
80                    render(view: "edit", model: [assayInstance: assayInstance])
81                    return
82                }
83            }
84            assayInstance.properties = params
85            if (!assayInstance.hasErrors() && assayInstance.save(flush: true)) {
86                flash.message = "${message(code: 'default.updated.message', args: [message(code: 'assay.label', default: 'Assay'), assayInstance.id])}"
87                redirect(action: "show", id: assayInstance.id)
88            }
89            else {
90                render(view: "edit", model: [assayInstance: assayInstance])
91            }
92        }
93        else {
94            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'assay.label', default: 'Assay'), params.id])}"
95            redirect(action: "list")
96        }
97    }
98
99    def delete = {
100        def assayInstance = Assay.get(params.id)
101        if (assayInstance) {
102            try {
103                assayInstance.delete(flush: true)
104                flash.message = "${message(code: 'default.deleted.message', args: [message(code: 'assay.label', default: 'Assay'), params.id])}"
105                redirect(action: "list")
106            }
107            catch (org.springframework.dao.DataIntegrityViolationException e) {
108                flash.message = "${message(code: 'default.not.deleted.message', args: [message(code: 'assay.label', default: 'Assay'), params.id])}"
109                redirect(action: "show", id: params.id)
110            }
111        }
112        else {
113            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'assay.label', default: 'Assay'), params.id])}"
114            redirect(action: "list")
115        }
116    }
117}
Note: See TracBrowser for help on using the repository browser.