Changeset 219

Show
Ignore:
Timestamp:
01-03-10 17:47:26 (4 years ago)
Author:
jahn
Message:

EventDescription? in progress. This is still ugly, because it uses a lot of JS to avoid to much loading from the server; however, the JS lines are just dumped into the page. Instead of this dumping, the JS should go into a tag library or something similar.

Still missing are: (1) a popup box for adding parameter string lists, (2) parsing the parameters form the view into the database in the model upon completion of the action.

Files:
1 modified

Legend:

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

    r162 r219  
    4747 
    4848    def showMyProtocol = { 
    49  
    50         def protocol = ( params.protocolid) ?  Protocol.get(params.protocolid) : Protocol.find("for Protocol id") 
    51         def event = Event.get(params.id) 
    52         def protocolInstance = event.eventDescription.protocol 
    53  
    54         if( protocolInstance && protocolInstance && protocol.id==protocolInstance.id ) { 
    55             def parameterStringValues = event.parameterStringValues 
    56             render( view:"showMyProtocolFilled", model:["protocolInstance":protocolInstance,"event":event,"parameterStringValues":parameterStringValues] ) 
     49        def description = EventDescription.get(params.id) 
     50        if( description.protocol==null ) { 
     51            protocol = new Protocol() 
     52            render( view:"showMyProtocolEmpty", model:[protocol:protocol,description:description] ) 
    5753        } 
    5854        else { 
    59             if(protocol!=null) render( view: "showMyProtocolEmpty", model:["protocolInstance":protocol] ) 
    60             else               render( "NULL" ) 
     55            render( view: "showMyProtocolFilled", model:[protocol:description.protocol,description:description] ) 
    6156        } 
    62 } 
     57    } 
     58 
     59 
     60    def showMyProtocolEmpty = { 
     61       println "in showMyProtocolEmpty" 
     62    } 
     63 
     64 
     65    def showMyProtocolFilled = { 
     66       println "in showMyProtocolFilled" 
     67    } 
     68 
     69 
     70 
    6371 
    6472 
     
    121129 
    122130 
    123     def test = { println "test" 
    124             render("test") } 
     131    def test = { render(params) } 
     132 
     133    def test2 = { 
     134        def eventDescriptionInstance = EventDescription.get(params.id) 
     135        if (!eventDescriptionInstance) { 
     136            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventDescription.label', default: 'EventDescription'), params.id])}" 
     137            redirect(action: "list") 
     138        } 
     139        else { 
     140            return [eventDescriptionInstance: eventDescriptionInstance] 
     141        } 
     142    } 
     143 
     144 
     145    def addProtocolParameter = { 
     146        render( action:"showProtocolParameters", model:['addNew':true] ) 
     147    } 
     148 
     149 
     150    def showProtocolParameters = { 
     151        println params 
     152 
     153        def description = EventDescription.get(params.id) 
     154        def protocol =  description.protocol==null ? new Protocol() : description.protocol 
     155 
     156        if( params['addOneParameter']=='true') {    // add a new parameter 
     157            println "adding" 
     158            def parameter = new ProtocolParameter() 
     159            protocol.addToParameters(parameter) 
     160        } 
     161 
     162        def list = [] 
     163        protocol.parameters.each { 
     164            list.add(it) 
     165            list.sort{ a,b -> a.name <=> b.name } 
     166        } 
     167 
     168        render( view:"showProtocolParameters", model:[protocol:protocol,description:description,list:list] ) 
     169    } 
     170 
    125171}