Show
Ignore:
Timestamp:
07-06-10 09:20:00 (4 years ago)
Author:
roberth
Message:

Samples are now shown in the study overview page. Also some tests are added and the bootstrap is updated to show some sample fields with a template

Files:
1 modified

Legend:

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

    r497 r536  
    3131    } 
    3232 
    33     /*def create = { 
    34         def studyInstance = new Study() 
    35         studyInstance.properties = params 
    36         return [studyInstance: studyInstance] 
    37     } 
    38  
    39     def save = { 
    40         def studyInstance = new Study(params) 
    41         if (studyInstance.save(flush: true)) { 
    42             flash.message = "${message(code: 'default.created.message', args: [message(code: 'study.label', default: 'Study'), studyInstance.id])}" 
    43             redirect(action: "show", id: studyInstance.id) 
    44         } 
    45         else { 
    46             render(view: "create", model: [studyInstance: studyInstance]) 
    47         } 
    48     }*/ 
    49  
    5033    /** 
    5134     * Shows one or more studies 
     
    7255     */ 
    7356    def events = { 
    74         def eventGroup = EventGroup.get(params.id) 
     57        def eventGroupId = Integer.parseInt( params.id ); 
     58        def studyId      = Integer.parseInt( params.study ); 
     59        def eventGroup; 
     60 
     61        // eventGroupId == -1 means that the orphaned events should be given 
     62        if( eventGroupId == -1 ) { 
     63            def studyInstance = Study.get( studyId ) 
     64             
     65            if (studyInstance == null) { 
     66                flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'study.label', default: 'Study'), studyId])}" 
     67                redirect(action: "list"); 
     68                return; 
     69            } 
     70 
     71            events = studyInstance.getOrphanEvents(); 
     72        } else { 
     73            eventGroup = EventGroup.get(params.id) 
     74 
     75            if (eventGroup == null) { 
     76                flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventgroup.label', default: 'Eventgroup'), params.id])}" 
     77                redirect(action: "list"); 
     78                return; 
     79            } 
     80            events = eventGroup?.events; 
     81        } 
    7582 
    7683        // This parameter should give the startdate of the study in milliseconds 
    7784        // since 1-1-1970 
    7885        long startDate  = Long.parseLong( params.startDate ) 
    79          
    80         if (!eventGroup) { 
    81             flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventgroup.label', default: 'Eventgroup'), params.id])}" 
    82             redirect(action: "list") 
     86 
     87        // Create JSON object 
     88        def json = [ 'dateTimeFormat': 'iso8601', events: [] ]; 
     89 
     90        // Add all other events 
     91        for( event in events ) { 
     92            def parameters = [] 
     93            for( templateField in event.giveTemplateFields() ) { 
     94                def value = event.getFieldValue( templateField.name ); 
     95                if( value ) { 
     96                    parameters << templateField.name + " = " + value; 
     97                } 
     98            } 
     99 
     100             json.events << [ 
     101                'start':    new Date( startDate + event.startTime * 1000 ), 
     102                'end':      new Date( startDate + event.endTime * 1000 ), 
     103                'durationEvent': !event.isSamplingEvent(), 
     104                'title': event.template.name + " (" + parameters.join( ', ' ) + ")", 
     105                'description': parameters 
     106            ] 
    83107        } 
    84         else { 
    85  
    86             // Create JSON object 
    87             def json = [ 'dateTimeFormat': 'iso8601', events: [] ]; 
    88  
    89             // Add the start of the study as event 
    90             /* 
    91             json.events << [ 
    92                 'start':    startDate, 
    93                 'durationEvent': false, 
    94                 'title': "Start date study", 
    95                 'color': 'red' 
    96             ] 
    97             */ 
    98             
    99             // Add all other events 
    100             for( event in eventGroup.events ) { 
    101                 def parameters = [] 
    102                 for( templateField in event.giveTemplateFields() ) { 
    103                     def value = event.getFieldValue( templateField.name ); 
    104                     if( value ) { 
    105                         parameters << templateField.name + " = " + value; 
    106                     } 
    107                 } 
    108  
    109                  json.events << [ 
    110                     'start':    new Date( startDate + event.startTime * 1000 ), 
    111                     'end':      new Date( startDate + event.endTime * 1000 ), 
    112                     'durationEvent': !event.isSamplingEvent(), 
    113                     'title': event.template.name + " (" + parameters.join( ', ' ) + ")", 
    114                     'description': parameters 
    115                 ] 
    116             } 
    117             render json as JSON 
    118         } 
     108        render json as JSON 
    119109    } 
    120110