Ignore:
Timestamp:
Apr 28, 2010, 4:28:39 PM (9 years ago)
Author:
duh
Message:
  • reverted changes of revisions 386, 387 and 388 as they completely broke the repository (you need to get cake now! ;)
  • committed development version of modified study capture wizard (works until events)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy

    r383 r389  
    242242                                flow.page = 4
    243243
    244                                 if (!flow.events) {
    245                                         flow.events = []
    246                                 }
    247 
     244                                if (!flow.event) flow.event = new Event()
     245                                if (!flow.events) flow.events = []
    248246                                if (!flow.eventGroups) {
    249247                                        flow.eventGroups = []
    250248                                        flow.eventGroups[0] = new EventGroup(name: 'Group 1')   // 1 group by default
    251249                                }
    252 println flow.events
    253                         }
     250                        }
     251                        on("switchTemplate") {
     252                                flash.values = params
     253
     254                                // handle study data
     255                                this.handleEvents(flow, flash, params)
     256
     257                                // remove errors as we don't want any warnings now
     258                                flash.errors = [:]
     259                        }.to "events"
    254260                        on("add") {
     261                                /*
    255262                                def startTime   = (params.get('startTime')) ? params.startTime = new Date().parse("d/M/yyyy HH:mm", params.get('startTime').toString()) : null
    256263                                def endTime             = (params.get('endTime')) ? new Date().parse("d/M/yyyy HH:mm", params.get('endTime').toString()) : null
     
    295302                                        error()
    296303                                }
     304                                */
     305                                flash.values = params
     306
     307                                // handle study data
     308                                this.handleEvents(flow, flash, params)
     309
     310                                // validate event object
     311                                if (flow.event.validate()) {
     312                                        //flow.events[ flow.events.size() ] = flow.event
     313                                        success()
     314                                } else {
     315                                        flash.errors = [:]
     316                                        this.appendErrors(flow.event, flash.errors)
     317                                        error()
     318                                }
    297319                        }.to "events"
    298320                        on("deleteEvent") {
     
    502524        }
    503525
     526
     527        /**
     528         * re-usable code for handling event form data in a web flow
     529         * @param Map LocalAttributeMap (the flow scope)
     530         * @param Map localAttributeMap (the flash scope)
     531         * @param Map GrailsParameterMap (the flow parameters = form data)
     532         * @returns boolean
     533         */
     534        def handleEvents(flow, flash, params) {
     535                // got an event in the flash scope?
     536                if (!flow.event) flow.event = new Event()
     537
     538                // if a template is selected, get template instance
     539                def template = params.remove('template')
     540                if (template instanceof String && template.size() > 0) {
     541                        params.template = Template.findByName(template)
     542                } else if (template instanceof Template) {
     543                        params.template = template
     544                } else {
     545                        params.template = null
     546                }
     547
     548                // set template
     549                if (params.template) flow.event.template = params.template
     550println flow.event.template
     551println params
     552               
     553                // update event instance with parameters
     554                params.each() { key, value ->
     555                        try {
     556                                flow.event.setFieldValue(key, value)
     557                                println "has "+key
     558                        } catch (Exception e) {
     559                                println "does NOT have "+key
     560                        }
     561                        /*
     562                        if (flow.event.hasProperty(key)) {
     563println "has property " +  key
     564                                flow.event.setProperty(key, value);
     565                        }
     566                        */
     567                }
     568        }
     569
    504570        /**
    505571         * re-usable code for handling study form data in a web flow
Note: See TracChangeset for help on using the changeset viewer.