Changeset 503


Ignore:
Timestamp:
May 31, 2010, 4:45:10 PM (10 years ago)
Author:
duh
Message:
  • finished off grouping page
Location:
trunk/grails-app
Files:
3 edited

Legend:

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

    r502 r503  
    5858                                [title: 'Events'],                              // events and event grouping
    5959                                [title: 'Groups'],                              // groups
     60                                [title: 'Samples'],                             // samples
    6061                                [title: 'Confirmation'],                // confirmation page
    6162                                [title: 'Done']                                 // finish page
     
    402403                                flow.page = 5
    403404                        }
    404                         on("previous").to "events"
    405                         on("next").to "groups"
     405                        on("previous") {
     406                                this.handleSubjectGrouping(flow, flash, params)
     407                        }.to "events"
     408                        on("next") {
     409                                this.handleSubjectGrouping(flow, flash, params)
     410                        }.to "samples"
     411                }
     412
     413                // samples page
     414                samples {
     415                        render(view: "_samples")
     416                        onRender {
     417                                flow.page = 6
     418                        }
     419                        on("previous") {
     420                        }.to "groups"
     421                        on("next") {
     422                        }.to "samples"
    406423                }
    407424
     
    410427                        render(view: "_confirmation")
    411428                        onRender {
    412                                 flow.page = 6
     429                                flow.page = 7
    413430                        }
    414431                        on("toStudy").to "study"
     
    517534                        render(view: "_error")
    518535                        onRender {
    519                                 flow.page = 6
     536                                flow.page = 7
    520537                        }
    521538                        on("next").to "save"
     
    527544                        render(view: "_done")
    528545                        onRender {
    529                                 flow.page = 7
     546                                flow.page = 8
    530547                        }
    531548                        on("previous") {
     
    689706                // walk through eventGroups
    690707                def g = 0
    691 
    692708                flow.eventGroups.each() { eventGroup ->
    693709                        def e = 0
     
    703719                                e++
    704720                        }
     721                        g++
     722                }
     723        }
     724
     725        /**
     726         * re-usable code for handling subject grouping in a web flow
     727         * @param Map LocalAttributeMap (the flow scope)
     728         * @param Map localAttributeMap (the flash scope)
     729         * @param Map GrailsParameterMap (the flow parameters = form data)
     730         * @returns boolean
     731         */
     732        def handleSubjectGrouping(flow, flash, params) {
     733                println params
     734
     735                // iterate through event groups
     736                def g = 0
     737                flow.eventGroups.each() { eventGroup ->
     738                        // reset subjects
     739                        eventGroup.subjects = new HashSet()
     740
     741                        // iterate through subjects
     742                        flow.subjects.each() { subjectId, subject ->
     743                                // is this combination set?
     744                                if (params.get('subject_' + subjectId + '_group_' + g) != null) {
     745                                        eventGroup.addToSubjects(subject)
     746                                }
     747                        }
     748
     749                        println g+" : "+eventGroup.subjects
     750
    705751                        g++
    706752                }
     
    774820        }
    775821
    776         /**
    777         * Parses a RelTime string and returns a nice human readable string
    778         *
    779         * @returns Human Readable string or a HTTP response code 400 on error
    780         */
    781         def ajaxParseRelTime = {
    782             if( params.reltime == null ) {
    783                 response.status = 400;
    784                 render( 'reltime parameter is expected' );
    785             }
    786 
    787             try {
    788                 def reltime = RelTime.parseRelTime( params.reltime );
    789                 render reltime.toPrettyString();
    790             } catch( IllegalArgumentException e ) {
    791                 response.status = 400;
    792                 render( e.getMessage() );
    793             }
    794         }
     822        /**
     823        * Parses a RelTime string and returns a nice human readable string
     824        *
     825        * @returns Human Readable string or a HTTP response code 400 on error
     826        */
     827        def ajaxParseRelTime = {
     828                if (params.reltime == null) {
     829                        response.status = 400;
     830                        render('reltime parameter is expected');
     831                }
     832
     833                try {
     834                        def reltime = RelTime.parseRelTime(params.reltime);
     835                        render reltime.toPrettyString();
     836                } catch (IllegalArgumentException e) {
     837                        response.status = 400;
     838                        render(e.getMessage());
     839                }
     840        }
    795841}
  • trunk/grails-app/views/wizard/pages/_groups.gsp

    r484 r503  
    1717<wizard:pageContent>
    1818
    19 <div class="table">
    20         <div class="header">
    21                 <div class="column">Template</div>
    22                 <div class="column">Subjects</div>
    23                 <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}">
    24                 <div class="column">
    25                         ${eventGroup.name}
    26                         <div class="helpIcon"></div>
    27                         <div class="helpContent">
    28                                 <h1>${eventGroup.name}</h1>
    29                                 <g:each var="event" status="e" in="${eventGroup.events}">
    30                                         <h2>${event.template}</h2>
    31                                         <g:each var="field" status="f" in="${event.giveFields()}">
    32                                                 ${field.name}: ${event.getFieldValue(field.name)}<br/>
    33                                         </g:each>
    34                                 </g:each>
    35                         </div>
     19        <span class="info">
     20                <span class="title">Assign subjects to eventgroups</span>
     21                In the previous page you defined events and grouped them together into eventgroups. Here you need to define
     22                which subjects belong to which eventgroup (hence: what events <i>act upon</i> a particular subject)
     23        </span>
     24
     25        <div class="table">
     26                <div class="header">
     27                        <div class="column">Template</div>
     28                        <div class="column">Subjects</div>
     29                        <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}">
     30                                <div class="column">
     31                                        ${eventGroup.name}
     32                                        <div class="helpIcon"></div>
     33                                        <div class="helpContent">
     34                                                <h1>${eventGroup.name}</h1>
     35                                                <g:each var="event" status="e" in="${eventGroup.events}">
     36                                                        <h2>${event.template}</h2>
     37                                                        <g:each var="field" status="f" in="${event.giveFields()}">
     38                                                                ${field.name}: ${event.getFieldValue(field.name)}<br/>
     39                                                        </g:each>
     40                                                </g:each>
     41                                        </div>
     42                                </div>
     43                        </g:each></g:if>
    3644                </div>
    37                 </g:each></g:if>
     45                <g:each var="sTemplate" in="${subjectTemplates}">
     46                        <g:set var="subjectTemplate" value="${sTemplate.getValue()}"/>
     47                        <g:set var="showHeader" value="${true}"/>
     48                        <g:each var="sId" in="${subjectTemplate.subjects}">
     49                                <g:set var="subjectId" value="${sId.getValue()}"/>
     50                                <div class="row">
     51                                        <div class="column">
     52                                                <g:if test="${showHeader}">
     53                                                        <g:set var="showHeader" value="${false}"/>
     54                                                        ${subjectTemplate.name}
     55                                                        <div class="helpIcon"></div>
     56                                                        <div class="helpContent">
     57                                                                <h1>${subjectTemplate.name}</h1>
     58                                                                <h2>Template Fields:</h2>
     59                                                                <g:each var="field" status="f" in="${subjects[ subjectId ].giveFields()}">
     60                                                                        ${field.name[0].toUpperCase() + field.name.substring(1)}<br/>
     61                                                                </g:each>
     62                                                        </div>
     63                                                </g:if>
     64                                        </div>
     65                                        <div class="column">${subjects[subjectId].name}</div>
     66                                        <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}">
     67                                                <div class="column">
     68                                                        <g:if test="${eventGroup.subjects.find{ it == subjects[ subjectId ] } }">
     69                                                                <input type="checkbox" name="subject_${subjectId}_group_${g}" checked="checked"/>
     70                                                        </g:if><g:else>
     71                                                        <input type="checkbox" name="subject_${subjectId}_group_${g}"/>
     72                                                </g:else>
     73                                                </div>
     74                                        </g:each></g:if>
     75                                </div>
     76                        </g:each>
     77                </g:each>
    3878        </div>
    39 <g:each var="sTemplate" in="${subjectTemplates}">
    40   <g:set var="subjectTemplate" value="${sTemplate.getValue()}" />
    41   <g:set var="showHeader" value="${true}" />
    42   <g:each var="sId" in="${subjectTemplate.subjects}">
    43         <g:set var="subjectId" value="${sId.getValue()}" />
    44         <div class="row">
    45                 <div class="column">
    46                         <g:if test="${showHeader}">
    47                                 <g:set var="showHeader" value="${false}" />
    48                                 ${subjectTemplate.name}
    49                                 <div class="helpIcon"></div>
    50                                 <div class="helpContent">
    51                                         <h2>Template Fields:</h2>
    52                                         <g:each var="field" status="f" in="${subjects[ subjectId ].giveFields()}">
    53                                                 ${field.name[0].toUpperCase() + field.name.substring(1)}<br/>
    54                                         </g:each>
    55                                 </div>
    56                         </g:if>
    57                 </div>
    58                 <div class="column">${subjects[ subjectId ].name}</div>
    59                 <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}">
    60                 <div class="column"><input type="checkbox" name="subject_${subjectId}_group_${g}" /></div>
    61                 </g:each></g:if>
    62         </div>
    63   </g:each>
    64 </g:each>
    65 </div>
    6679
    6780</wizard:pageContent>
  • trunk/grails-app/views/wizard/pages/_samples.gsp

    r359 r503  
    1616%>
    1717<wizard:pageContent>
    18 todo...
     18
     19        <span class="info">
     20                <span class="title">Samples bla bla</span>
     21                bla bla bla samples blah di bla blah...
     22        </span>
     23       
     24        todo...
    1925</wizard:pageContent>
Note: See TracChangeset for help on using the changeset viewer.