Ignore:
Timestamp:
May 26, 2010, 10:50:53 AM (12 years ago)
Author:
roberth
Message:

Updated study view to show the events on a timeline.

File:
1 edited

Legend:

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

    r454 r467  
    11package dbnp.studycapturing
     2
     3import grails.converters.*
     4
    25/**
    36 * Controller class for studies
     
    4548    }*/
    4649
     50    /**
     51     * Shows one or more studies
     52     */
    4753    def show = {
    4854        def startTime = System.currentTimeMillis()
    4955
    50         def studyInstance = Study.get(params.id)
     56        def studyInstance = Study.get( params.id )
    5157        if (!studyInstance) {
    5258            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'study.label', default: 'Study'), params.id])}"
     
    6167    }
    6268
     69    /**
     70     * Gives the events for one eventgroup in JSON format
     71     *
     72     */
     73    def events = {
     74        def eventGroup = EventGroup.get(params.id)
     75        def startDate  = params.startDate
     76
     77        if (!eventGroup) {
     78            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'eventgroup.label', default: 'Eventgroup'), params.id])}"
     79            redirect(action: "list")
     80        }
     81        else {
     82
     83            // Create JSON object
     84            def json = [ 'dateTimeFormat': 'iso8601', events: [] ];
     85
     86            // Add the start of the study as event
     87            /*
     88            json.events << [
     89                'start':    startDate,
     90                'durationEvent': false,
     91                'title': "Start date study",
     92                'color': 'red'
     93            ]
     94            */
     95           
     96            // Add all other events
     97            for( event in eventGroup.events ) {
     98                def parameters = []
     99                for( templateField in event.giveTemplateFields() ) {
     100                    def value = event.getFieldValue( templateField.name );
     101                    if( value ) {
     102                        parameters << templateField.name + " = " + value;
     103                    }
     104                }
     105
     106                json.events << [
     107                    'start':    event.startTime,
     108                    'end':      event.endTime,
     109                    'durationEvent': !event.isSamplingEvent(),
     110                    'title': event.template.name + " (" + parameters.join( ', ' ) + ")",
     111                    'description': parameters
     112                ]
     113            }
     114            render json as JSON
     115        }
     116    }
    63117
    64118    /*def edit = {
Note: See TracChangeset for help on using the changeset viewer.