Changeset 606

Show
Ignore:
Timestamp:
24-06-10 16:29:54 (4 years ago)
Author:
duh
Message:

- developmental commit of samples page

Location:
trunk/grails-app
Files:
3 modified

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>