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

Last change on this file since 150 was 150, checked in by jahn, 10 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.