Changeset 606


Ignore:
Timestamp:
Jun 24, 2010, 4:29:54 PM (6 years ago)
Author:
duh
Message:
  • developmental commit of samples page
Location:
trunk/grails-app
Files:
3 edited

Legend:

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

    r603 r606  
    144144                                flow.remove('eventGroups')
    145145                                flow.remove('eventTemplates')
     146                                flow.remove('samples')
     147                                flow.remove('sampleTemplates')
    146148
    147149                                // set 'quicksave' variable to false
     
    608610                                flow.page = 6
    609611
    610                                 flow.samples = []
    611 
    612612                                // iterate through eventGroups
    613                                 flow.eventGroups.each() { eventGroup ->
    614                                         // iterate through events
    615                                         eventGroup.events.each() { event ->
    616                                                 if (event.isSamplingEvent()) {
    617                                                         def eventName = this.ucwords(event.template.name)
    618 
    619                                                         // iterate through subjects
    620                                                         eventGroup.subjects.each() { subject ->
    621                                                                 def sampleName = (this.ucwords(subject.name) + '_' + eventName + '_' + new RelTime( event.startTime ).toString()).replaceAll("([ ]{1,})", "")
    622 
    623                                                                 flow.samples[ flow.samples.size() ] = [
    624                                                                         sample          : new Sample(
    625                                                                                 parentSubject: subject,
    626                                                                                 parentEvent: event,
    627                                                                                 name: sampleName
    628                                                                         ),
    629                                                                     name                : sampleName,
    630                                                                         eventGroup      : eventGroup,
    631                                                                         event           : event,
    632                                                                         subject         : subject
    633                                                                 ]
     613                                if (!flow.samples) {
     614                                        flow.samples = []
     615                                        flow.sampleTemplates = [:]
     616                                        flow.eventGroups.each() { eventGroup ->
     617                                                // iterate through events
     618                                                eventGroup.events.each() { event ->
     619                                                        if (event.isSamplingEvent()) {
     620                                                                def eventName = this.ucwords(event.template.name)
     621
     622                                                                // iterate through subjects
     623                                                                eventGroup.subjects.each() { subject ->
     624                                                                        def sampleName = (this.ucwords(subject.name) + '_' + eventName + '_' + new RelTime(event.startTime).toString()).replaceAll("([ ]{1,})", "")
     625
     626                                                                        flow.samples[flow.samples.size()] = [
     627                                                                                sample: new Sample(
     628                                                                                        parentSubject: subject,
     629                                                                                        parentEvent: event,
     630                                                                                        name: sampleName
     631                                                                                ),
     632                                                                                name: sampleName,
     633                                                                                eventGroup: eventGroup,
     634                                                                                event: event,
     635                                                                                subject: subject
     636                                                                        ]
     637                                                                }
    634638                                                        }
    635639                                                }
     
    637641                                }
    638642
    639                                 println flow.samples
    640 
    641643                                success()
    642644                        }
    643645                        on("switchTemplate") {
    644                                 println "switch that template!"
    645646                                handleSamples(flow, flash, params)
    646647                                succes()
    647648                        }.to "samples"
    648649                        on("refresh") {
     650                                println ".refresh sample templates"
     651
     652                                // refresh templates
     653                                flow.sampleTemplates.each() {
     654                                        println ".refresh template ["+it.value.name+"]"
     655                                        it.value.template.refresh()
     656                                        println "  --> fields: "+it.value.template.fields
     657                                }
     658
     659                                // handle samples
     660                                handleSamples(flow, flash, params)
     661
     662                                success()
     663                        }.to "samples"
     664                        on("regenerate") {
     665                                println ".removing 'samples' and 'sampleTemplates' from the flowscope, triggering regeneration of the samples..."
     666                                flow.remove('samples')
     667                                flow.remove('sampleTemplates')
    649668                                success()
    650669                        }.to "samples"
    651670                        on("previous") {
     671                                // handle samples
     672                                handleSamples(flow, flash, params)
     673
    652674                                success()
    653675                        }.to "groups"
    654676                        on("next") {
    655                                 success()
     677                                // handle samples
     678                                if (handleSamples(flow, flash, params)) {
     679                                        success()
     680                                } else {
     681                                        error()
     682                                }
    656683                        }.to "confirm"
    657684                        on("quickSave") {
    658                                 success()
     685                                // handle samples
     686                                if (handleSamples(flow, flash, params)) {
     687                                        success()
     688                                } else {
     689                                        error()
     690                                }
    659691                        }.to "waitForSave"
    660692                }
     
    11821214         */
    11831215        def handleSamples(flow, flash, params) {
    1184                 println "handling samples"
    1185                 println "params:"
    1186                 println params
    1187                 println "samples:"
    11881216                def id = 0
    1189                 flow.samples.each() { sample ->
    1190                         println id + " : " + sample
    1191                         sample.template = Template.findByName( params.get('template_'+id) )
    1192 
    1193 println sample
     1217                flow.sampleTemplates = [:]
     1218                flow.samples.each() { sampleData ->
     1219                        def sample = sampleData.sample
     1220                        def sampleTemplateName = params.get('template_'+id)
     1221
     1222                        // set template for this sample?
     1223                        if (sampleTemplateName && sampleTemplateName.size() > 0) {
     1224                                // remember templatename
     1225                                if (!flow.sampleTemplates[ sampleTemplateName ]) {
     1226                                        flow.sampleTemplates[ sampleTemplateName ] = [
     1227                                                name            : sampleTemplateName,
     1228                                                template        : Template.findByName( sampleTemplateName )
     1229                                        ]
     1230                                }
     1231
     1232                                if (sample.template.toString() != sampleTemplateName ) {
     1233                                        sampleData.sample.template = flow.sampleTemplates[ sampleTemplateName ].template
     1234                                }
     1235                        }
    11941236                        id++
    11951237                }
  • trunk/grails-app/taglib/dbnp/studycapturing/WizardTagLib.groovy

    r603 r606  
    881881println "template: "
    882882println template
     883println entity
     884println entity.template
    883885
    884886                // got a template?
  • trunk/grails-app/views/wizard/pages/_samples.gsp

    r603 r606  
    1717<wizard:pageContent>
    1818
     19<g:if env="production">
     20
    1921        <span class="info">
    2022                <span class="title">Samples</span>
    21                 blah blah blaaa....
     23                The sample input page is still under development and is not yet
     24                production ready... We appologize for the inconvenience.
    2225        </span>
    2326
     27</g:if><g:else>
     28
     29        <span class="info">
     30                <span class="title">Samples</span>
     31                Below you see all samples generated based on the subject / sampling event relations
     32                you have specified in the previous screens.<br/>
     33        </span>
     34
     35        <wizard:ajaxButtonElement name="regenerate" value="debug: regenerate the samples below..." url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()">
     36                i need some new samples man!
     37        </wizard:ajaxButtonElement>
     38
    2439        <g:if test="${samples}">
     40                <g:set var="showHeader" value="${true}" />
     41                <h1>Templateless</h1>
    2542                <div class="table">
    2643                <g:each status="s" var="sampleData" in="${samples}">
    27                         <div class="row">
    28                                 <wizard:templateSelect name="template_${s}" entity="${dbnp.studycapturing.Sample}" addDummy="true" ajaxOnChange="switchTemplate" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" />
    29                                 <wizard:templateColumns class="column" id="1" entity="${sampleData['sample']}"/>
    30                                 <% /*
    31                                         ${sampleData}
    32                                         <!-- wizard:templateColumns class="column" id="1" entity="${sampleData['sample']}" //-->
    33                                         <!-- div class="column"><wizard:templateSelect entity="${sampleData.sample}" /></div //-->
    34                                         */ %>
     44                        <g:if test="${!sampleData.sample.template}">
     45                                <g:if test="${showHeader}">
     46                                <g:set var="showHeader" value="${false}" />
     47                                <div class="header">
     48                                        <div class="firstColumn">#</div>
     49                                        <div class="column">Template</div>
     50                                </div>
     51                                </g:if>
     52                                <div class="row">
     53                                        <div class="firstColumn">${s+1}</div>
     54                                        <div class="column">
     55                                                <wizard:templateSelect name="template_${s}" entity="${dbnp.studycapturing.Sample}" value="${sampleData['sample'].template}" addDummy="true" ajaxOnChange="switchTemplate" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" />
     56                                        </div>
     57                                </div>
     58                        </g:if>
     59                </g:each>
     60                </div>
     61                <div class="sliderContainer">
     62                        <div class="slider" ></div>
     63                </div>
     64
     65                <g:each status="n" var="sampleTemplateName" in="${sampleTemplates}">
     66                        <h1>${sampleTemplateName.value.name}</h1>
     67                        <g:set var="showHeader" value="${true}" />
     68                        <div class="table">
     69                        <g:each status="s" var="sampleData" in="${samples}">
     70                                <g:if test="${sampleData.sample.template.toString() == sampleTemplateName.value.name}">
     71                                        <g:if test="${showHeader}">
     72debug: fields for this template are: ${sampleData.sample.giveFields()}
     73                                                <g:set var="showHeader" value="${false}" />
     74                                                <div class="header">
     75                                                        <div class="firstColumn">#</div>
     76                                                        <div class="column">Template</div>
     77                                                        <wizard:templateColumnHeaders entity="${sampleData.sample}" class="column" />
     78                                                </div>
     79                                        </g:if>
     80                                        <div class="row">
     81                                                <div class="firstColumn">${s+1}</div>
     82                                                <div class="column">
     83                                                        <wizard:templateSelect name="template_${s}" entity="${dbnp.studycapturing.Sample}" value="${sampleData['sample'].template}" addDummy="true" ajaxOnChange="switchTemplate" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" />
     84                                                </div>
     85                                                <wizard:templateColumns name="sample_${s}" class="column" id="1" entity="${sampleData.sample}"/>
     86                                        </div>
     87                                </g:if>
     88                        </g:each>
    3589                        </div>
    3690                </g:each>
    37                 </div>
    3891        </g:if>
    3992
     93</g:else>
     94       
    4095</wizard:pageContent>
Note: See TracChangeset for help on using the changeset viewer.