Changeset 503
- Timestamp:
- May 31, 2010, 4:45:10 PM (14 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy
r502 r503 58 58 [title: 'Events'], // events and event grouping 59 59 [title: 'Groups'], // groups 60 [title: 'Samples'], // samples 60 61 [title: 'Confirmation'], // confirmation page 61 62 [title: 'Done'] // finish page … … 402 403 flow.page = 5 403 404 } 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" 406 423 } 407 424 … … 410 427 render(view: "_confirmation") 411 428 onRender { 412 flow.page = 6429 flow.page = 7 413 430 } 414 431 on("toStudy").to "study" … … 517 534 render(view: "_error") 518 535 onRender { 519 flow.page = 6536 flow.page = 7 520 537 } 521 538 on("next").to "save" … … 527 544 render(view: "_done") 528 545 onRender { 529 flow.page = 7546 flow.page = 8 530 547 } 531 548 on("previous") { … … 689 706 // walk through eventGroups 690 707 def g = 0 691 692 708 flow.eventGroups.each() { eventGroup -> 693 709 def e = 0 … … 703 719 e++ 704 720 } 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 705 751 g++ 706 752 } … … 774 820 } 775 821 776 777 778 779 780 781 782 if( params.reltime == null) {783 784 render( 'reltime parameter is expected');785 786 787 788 def reltime = RelTime.parseRelTime( params.reltime);789 790 } catch( IllegalArgumentException e) {791 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 } 795 841 } -
trunk/grails-app/views/wizard/pages/_groups.gsp
r484 r503 17 17 <wizard:pageContent> 18 18 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> 36 44 </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> 38 78 </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>66 79 67 80 </wizard:pageContent> -
trunk/grails-app/views/wizard/pages/_samples.gsp
r359 r503 16 16 %> 17 17 <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... 19 25 </wizard:pageContent>
Note: See TracChangeset
for help on using the changeset viewer.