source: trunk/grails-app/controllers/dbnp/studycapturing/EventDescriptionController.groovy @ 150

Last change on this file since 150 was 150, checked in by jahn, 9 years ago

Updated editing of Events. RemoteFunction? calls work. Still needs cleaning up (but its Friday evening).

File size: 5.5 KB
Line 
1package dbnp.studycapturing
2import dbnp.data.Term
3
4class EventDescriptionController {
5
6    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
7
8    def index = {
9        redirect(action: "list", params: params)
10    }
11
12    def list = {
13        params.max = Math.min(params.max ? params.int('max') : 10, 100)
14        [eventDescriptionInstanceList: EventDescription.list(params), eventDescriptionInstanceTotal: EventDescription.count()]
15    }
16
17    def create = {
18        def eventDescriptionInstance = new EventDescription()
19        eventDescriptionInstance.properties = params
20        return [eventDescriptionInstance: eventDescriptionInstance]
21    }
22
23    def save = {
24        def eventDescriptionInstance = new EventDescription(params)
25        if (eventDescriptionInstance.save(flush: true)) {
26            flash.message = "${message(code: 'default.created.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), eventDescriptionInstance.id])}"
27            redirect(action: "show", id: eventDescriptionInstance.id)
28        }
29        else {
30            render(view: "create", model: [eventDescriptionInstance: eventDescriptionInstance])
31        }
32    }
33
34    def show = {
35
36        def eventDescriptionInstance = EventDescription.get(params.id)
37        if (!eventDescriptionInstance) {
38            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), params.id])}"
39            redirect(action: "list")
40        }
41
42        else {
43            [eventDescriptionInstance: eventDescriptionInstance, params:params]
44        }
45    }
46
47
48    def showMyProtocol = {
49        println params  // dbg, remove
50
51        def protocol = ( params.protocolid) ?  Protocol.get(params.protocolid) : Protocol.find("for Protocol id")
52        def event = Event.get(params.id)
53        def protocolInstance = event.eventDescription.protocol
54
55        println params
56        println event
57        println protocol
58        println protocolInstance
59
60        if( protocolInstance && protocolInstance && protocol.id==protocolInstance.id ) {
61            def parameterStringValues = event.parameterStringValues
62            println parameterStringValues
63            print "showFull"
64            render( view:"showMyProtocolFilled", model:["protocolInstance":protocolInstance,"event":event,"parameterStringValues":parameterStringValues] )
65        }
66        else {
67            print "showEmpty"
68            if(protocol!=null) render( view: "showMyProtocolEmpty", model:["protocolInstance":protocol] )
69            else               render( "NULL" )
70        }
71}
72
73
74
75    def edit = {
76        def eventDescriptionInstance = EventDescription.get(params.id)
77        if (!eventDescriptionInstance) {
78            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), params.id])}"
79            redirect(action: "list")
80        }
81        else {
82            return [eventDescriptionInstance: eventDescriptionInstance]
83        }
84    }
85
86    def update = {
87        def eventDescriptionInstance = EventDescription.get(params.id)
88        if (eventDescriptionInstance) {
89            if (params.version) {
90                def version = params.version.toLong()
91                if (eventDescriptionInstance.version > version) {
92                   
93                    eventDescriptionInstance.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'eventDescription.label', default: 'EventDescription')] as Object[], "Another user has updated this EventDescription while you were editing")
94                    render(view: "edit", model: [eventDescriptionInstance: eventDescriptionInstance])
95                    return
96                }
97            }
98            eventDescriptionInstance.properties = params
99            if (!eventDescriptionInstance.hasErrors() && eventDescriptionInstance.save(flush: true)) {
100                flash.message = "${message(code: 'default.updated.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), eventDescriptionInstance.id])}"
101                redirect(action: "show", id: eventDescriptionInstance.id)
102            }
103            else {
104                render(view: "edit", model: [eventDescriptionInstance: eventDescriptionInstance])
105            }
106        }
107        else {
108            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), params.id])}"
109            redirect(action: "list")
110        }
111    }
112
113    def delete = {
114        def eventDescriptionInstance = EventDescription.get(params.id)
115        if (eventDescriptionInstance) {
116            try {
117                eventDescriptionInstance.delete(flush: true)
118                flash.message = "${message(code: 'default.deleted.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), params.id])}"
119                redirect(action: "list")
120            }
121            catch (org.springframework.dao.DataIntegrityViolationException e) {
122                flash.message = "${message(code: 'default.not.deleted.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), params.id])}"
123                redirect(action: "show", id: params.id)
124            }
125        }
126        else {
127            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), params.id])}"
128            redirect(action: "list")
129        }
130    }
131
132
133    def test = { println "test"
134            render("test") }
135}
Note: See TracBrowser for help on using the repository browser.