Changeset 857


Ignore:
Timestamp:
Aug 30, 2010, 12:12:21 PM (10 years ago)
Author:
duh
Message:
  • added Assay Page
Location:
trunk/grails-app
Files:
6 edited

Legend:

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

    r827 r857  
    606606                }
    607607
     608                // assays page
    608609                assays {
    609610                        render(view: "_assays")
     
    643644                                success()
    644645                        }.to "assays"
     646                        on("add") {
     647                                // handle form data
     648                                assayPage(flow, flash, params)
     649
     650                                // reset errors
     651                                flash.errors = [:]
     652
     653                                // add assay to study
     654                                flow.study.addToAssays( flow.assay )
     655
     656                                // validate assay
     657                                if (flow.assay.validate()) {
     658                                        // remove assay from the flowscope
     659                                        flow.remove('assay')
     660                                        success()
     661                                } else {
     662                                        // assay does not validate
     663                                        // remove from study
     664                                        flow.study.removeFromAssays( flow.assay )
     665
     666                                        // append errors
     667                                        this.appendErrors(flow.assay, flash.errors)
     668                                        error()
     669                                }
     670                        }.to "assays"
    645671                        on("previous") {
    646672                                // handle form data
     
    658684                }
    659685
     686                // assay grouping page
    660687                assayGroups {
    661688                        render(view: "_assay_groups")
     
    937964
    938965        }
    939 
     966                                                 
    940967        /**
    941968         * Handle the wizard subject page
     
    11261153                                event.setFieldValue(
    11271154                                        field.name,
    1128                                         params.get( 'event_' + event.getIdentifier() + '_' + field.escapedName())
     1155                                        params.get( 'event_' + event.getIdentifier() + '_' + field.escapedName() )
    11291156                                )
    11301157                        }
     
    12071234                        if (!sample.validate()) {
    12081235                                errors = true
    1209                                 this.appendErrors(sample, flash.errors)
     1236                                this.appendErrors(sample, flash.errors, 'sample_' + sample.getIdentifier() + '_' )
    12101237                                println 'error-> sample_'+sample.getIdentifier()
    12111238                        }
     
    12381265                                        params.get(field.escapedName())
    12391266                                )
     1267                        }
     1268                }
     1269
     1270                // handle the assay data
     1271                flow.study.assays.each() { assay ->
     1272                        // set data
     1273                        assay.giveFields().each() { field ->
     1274                                assay.setFieldValue(
     1275                                        field.name,
     1276                                        params.get( 'assay_' + assay.getIdentifier() + '_' + field.escapedName() )
     1277                                )
     1278                        }
     1279
     1280                        // validate assay
     1281                        if (!assay.validate()) {
     1282                                errors = true
     1283                                this.appendErrors(assay, flash.errors, 'assay_' + assay.getIdentifier() + '_')
    12401284                        }
    12411285                }
  • trunk/grails-app/domain/dbnp/studycapturing/EventGroup.groovy

    r813 r857  
    2323                name(unique:['parent'])
    2424        }
     25
     26        /**
     27         * Return all events and samplingEvents
     28         * @return ArrayList
     29         */
     30        def ArrayList getAllEvents() {
     31                return (
     32                        ((events) ? events : [])
     33                        +
     34                        ((samplingEvents) ? samplingEvents : [])
     35                )
     36        }
    2537}
  • trunk/grails-app/domain/dbnp/studycapturing/Study.groovy

    r819 r857  
    109109        def ArrayList<Subject> giveSubjectsForTemplate(Template template) {
    110110                subjects.findAll { it.template.equals(template) }
     111        }
     112
     113        /**
     114         * Return all unique assay templates
     115         * @return Set
     116         */
     117        Set<Template> giveAllAssayTemplates() {
     118                TemplateEntity.giveTemplates(( (assays) ? assays : [] ))
     119        }
     120
     121        /**
     122         * Return all assays for a particular template
     123         * @return ArrayList
     124         */
     125        def ArrayList giveAssaysForTemplate(Template template) {
     126                assays.findAll { it.template.equals(template) }
    111127        }
    112128
  • trunk/grails-app/views/wizard/pages/_assays.gsp

    r836 r857  
    2222        </span>
    2323
    24         <wizard:textFieldElement name="addNumber" description="Number of assays to add" error="addNumber" value="${values?.addNumber}" size="4" maxlength="4">
    25                 The number of subjects to add to your study
    26         </wizard:textFieldElement>
     24        <% /* wizard:textFieldElement name="addNumber" description="Number of assays to add" error="addNumber" value="${values?.addNumber}" size="4" maxlength="4">
     25                The number of assays to add to your study
     26        </wizard:textFieldElement */ %>
    2727        <wizard:templateElement name="template" description="Template" value="${assay?.template}" entity="${dbnp.studycapturing.Assay}" addDummy="true" ajaxOnChange="switchTemplate" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" >
    2828                Choose the type of assay you would like to add
    2929        </wizard:templateElement>
    30         <%
    31             // TODO: switch single flow.assay to multiple flow.assays and finish this page
    32         %>
    3330        <g:if test="${assay}">
    3431        <wizard:templateElements entity="${assay}" />
    35         </g:if>
    3632        <wizard:ajaxButtonElement name="add" value="Add" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()">
    3733        </wizard:ajaxButtonElement>
     34        </g:if>
    3835
     36        <g:if test="${study.assays}">
     37                <g:each var="template" in="${study.giveAllAssayTemplates()}">
     38                        <g:set var="showHeader" value="${true}" />
     39                        <h1>${template}</h1>
     40                        <div class="table">
     41                        <g:each var="assay" in="${study.giveAssaysForTemplate(template)}">
     42                                <g:if test="${showHeader}">
     43                                <g:set var="showHeader" value="${false}" />
     44                                <div class="header">
     45                                        <div class="firstColumn">#</div>
     46                                        <div class="firstColumn"></div>
     47                                        <wizard:templateColumnHeaders class="column" entity="${assay}" />
     48                                </div>
     49                                </g:if>
     50
     51                                <div class="row">
     52                                        <div class="firstColumn">${assay.getIdentifier()}</div>
     53                                        <div class="firstColumn">
     54                                                <wizard:ajaxButton name="deleteAssay" src="../images/icons/famfamfam/delete.png" alt="delete this assay" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${assay.getIdentifier()});" afterSuccess="onWizardPage()"/>
     55                                        </div>
     56                                        <wizard:templateColumns class="column" entity="${assay}" name="assay_${assay.getIdentifier()}" />
     57                                </div>
     58                        </g:each>
     59                        </div>
     60                        <div class="sliderContainer">
     61                                <div class="slider"></div>
     62                        </div>
     63                </g:each>
     64        </g:if>
    3965       
    4066</wizard:pageContent>
  • trunk/grails-app/views/wizard/pages/_events.gsp

    r804 r857  
    9797                                        <div class="firstColumn">${event.getIdentifier()}</div>
    9898                                        <div class="firstColumn">
    99                                                 <wizard:ajaxButton name="deleteEvent" src="../images/icons/famfamfam/delete.png" alt="delete this subject" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${event.getIdentifier()});" afterSuccess="onWizardPage()"/>
     99                                                <wizard:ajaxButton name="deleteEvent" src="../images/icons/famfamfam/delete.png" alt="delete this event" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${event.getIdentifier()});" afterSuccess="onWizardPage()"/>
    100100                                        </div>
    101101                                        <g:if test="${study.eventGroups}"><g:each var="eventGroup" in="${study.eventGroups}">
  • trunk/grails-app/views/wizard/pages/_groups.gsp

    r847 r857  
    3333                                        <div class="helpContent">
    3434                                                <h1>${eventGroup.name}</h1>
    35                                                 <g:each var="event" status="e" in="${(eventGroup.events + eventGroup.samplingEvents)}">
     35                                                <g:each var="event" status="e" in="${eventGroup.getAllEvents()}">
    3636                                                        <h2>${event.template}</h2>
    3737                                                        <g:each var="field" status="f" in="${event.giveFields()}">
Note: See TracChangeset for help on using the changeset viewer.