Changeset 432 for trunk/grails-app
- Timestamp:
- May 18, 2010, 4:42:11 PM (12 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy
r430 r432 53 53 [title: 'Subjects'], // subjects 54 54 [title: 'Events'], // events and event grouping 55 [title: 'Samples'], // samples 55 56 [title: 'Confirmation'], // confirmation page 56 57 [title: 'Done'] // finish page … … 248 249 flow.eventGroups[0] = new EventGroup(name: 'Group 1') // 1 group by default 249 250 flow.eventTemplates = [:] 251 } else if (!flash.values) { 252 // set flash.values.templateType based on the event instance 253 flash.values = [:] 254 flash.values.templateType = (flow.event instanceof Event) ? 'event' : 'sample' 255 println "aapjes --> " + flash.values 250 256 } 251 257 } … … 261 267 on("add") { 262 268 flash.values = params 263 def eventTemplateName = params.get('template') 269 println params 270 println params.get('eventType') 271 println params.get('eventTemplate') 272 println params.get('sampleTemplate') 273 274 def eventTemplateName = (params.get('eventType') == 'event') ? params.get('eventTemplate') : params.get('sampleTemplate') 264 275 def eventTemplate = Template.findByName(eventTemplateName) 276 println "test: "+ eventTemplateName + ", " + eventTemplate 265 277 266 278 // add this event template to the event template array … … 345 357 on("deleteEventGroup") { 346 358 flash.values = params 347 359 348 360 def delete = params.get('do') as int; 349 361 … … 362 374 }.to "subjects" 363 375 on("next") { 376 println params 364 377 flash.values = params 365 378 flash.errors = [:] … … 368 381 if (flow.events.size() < 1) { 369 382 // append error map 370 flash.values = params371 383 this.appendErrorMap(['events': 'You need at least to create one event for your study'], flash.errors) 372 384 error() … … 376 388 error() 377 389 } 378 }.to "events" 379 } 380 390 }.to "samples" 391 } 392 393 // samples page 394 samples { 395 render(view: "_samples") 396 onRender { 397 flow.page = 5 398 } 399 on("previous").to "events" 400 on("next").to "samples" 401 } 402 403 // confirmation 381 404 confirm { 382 405 render(view: "_confirmation") 383 406 onRender { 384 flow.page = 5407 flow.page = 6 385 408 } 386 409 on("toStudy").to "study" 387 410 on("toSubjects").to "subjects" 388 411 on("toEvents").to "events" 389 on("previous").to "events" 412 on("toSamples").to "samples" 413 on("previous").to "samples" 390 414 on("next").to "save" 391 415 } … … 491 515 } 492 516 on("next").to "save" 493 on("previous").to " events"517 on("previous").to "samples" 494 518 } 495 519 … … 596 620 def handleEvents(flow, flash, params) { 597 621 def errors = false 598 599 // got an event in the flash scope? 600 if (!flow.event) flow.event = new Event() 622 def template = null 623 624 // handle the type of event 625 if (params.eventType == 'event') { 626 flow.event = new Event(); 627 template = params.remove('eventTemplate') 628 } else if (params.eventType == 'sample') { 629 flow.event = new SamplingEvent(); 630 template = params.remove('sampleTemplate') 631 } 632 633 // got an event in the flow scope? 634 //if (!flow.event) flow.event = new Event() 601 635 602 636 // if a template is selected, get template instance 603 def template = params.remove('template')604 637 if (template instanceof String && template.size() > 0) { 605 638 params.template = Template.findByName(template) -
trunk/grails-app/taglib/dbnp/studycapturing/WizardTagLib.groovy
r416 r432 240 240 241 241 // render a form element 242 out << '<div class="element">' 242 if (attrs.get('elementId')) { 243 out << '<div class="element" id="'+ attrs.remove('elementId') +'">' 244 } else { 245 out << '<div class="element">' 246 } 243 247 out << ' <div class="description">' 244 248 out << description … … 344 348 body 345 349 ) 350 } 351 352 /** 353 * render a set of radio form elements 354 * @param Map attrs 355 * @param Closure body (help text) 356 */ 357 def radioElement = { attrs, body -> 358 baseElement.call( 359 'radioList', 360 attrs, 361 body 362 ) 363 } 364 365 /** 366 * render a set of radio elements 367 * @param Map attrs 368 * @param Closure body (help text) 369 */ 370 def radioList = { attrs -> 371 def checked = true 372 373 attrs.elements.each { 374 out << radio( 375 name: attrs.name, 376 value: it, 377 checked: (attrs.value == it || (!attrs.value && checked)) 378 ) 379 out << it 380 checked = false 381 } 346 382 } 347 383 -
trunk/grails-app/views/wizard/common/_wizard.gsp
r359 r432 16 16 %> 17 17 <div id="wizard" class="wizard"> 18 <h1>Study capturewizard</h1>18 <h1>Study wizard</h1> 19 19 <g:form action="pages" name="wizardForm" id="wizardForm"> 20 20 <g:hiddenField name="do" value="" /> -
trunk/grails-app/views/wizard/pages/_events.gsp
r418 r432 21 21 </span> 22 22 23 <wizard:templateElement name="template" description="Template" value="${event?.template}" entity="${dbnp.studycapturing.Event}" addDummy="true" ajaxOnChange="switchTemplate" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" > 23 <wizard:radioElement name="eventType" description="Type" elements="['event','sample']" value="${values?.eventType}"> 24 Type of event 25 </wizard:radioElement> 26 <wizard:templateElement name="eventTemplate" elementId="eventTemplate" description="Event Template" value="${event?.template}" entity="${dbnp.studycapturing.Event}" addDummy="true" ajaxOnChange="switchTemplate" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" > 24 27 The template to use for this study 25 28 </wizard:templateElement> 29 <wizard:templateElement name="sampleTemplate" elementId="sampleTemplate" description="Sample Template" value="${event?.template}" entity="${dbnp.studycapturing.SamplingEvent}" addDummy="true" ajaxOnChange="switchTemplate" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" > 30 The template to use for this study 31 </wizard:templateElement> 32 <g:if test="${event?.template}"> 33 <div id="${values?.eventType}TemplateFields"> 26 34 <g:if test="${event?.template}"><wizard:templateElements entity="${event}" /></g:if> 27 35 <g:if test="${event?.template}"><wizard:buttonElement name="add" value="Add" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()"/></g:if> 36 </div> 37 </g:if> 38 39 <script type="text/javascript"> 40 function swapTemplate(value,refresh) { 41 $("div[id$='Template'],div[id$='TemplateFields']").each(function() { 42 var e = $(this); 43 if (e.attr('id').match("^"+value) != null) { 44 e.show(); 45 } else { 46 e.hide(); 47 } 48 }); 28 49 29 <g:if test="${events}"> 50 if(refresh) { 51 } 52 } 53 54 // handle template selectors 55 $(document).ready(function() { 56 // bind event handlers 57 $("input[name=eventType]").click(function() { 58 swapTemplate($(this).val(),true); 59 }); 60 61 // handle selects 62 swapTemplate($('input:radio[name=eventType]:checked').val(),false); 63 }); 64 </script> 65 66 <g:if test="${events}"> 30 67 <g:each var="eventTemplate" in="${eventTemplates}"> 31 68 <g:set var="showHeader" value="${true}" /> … … 38 75 <div class="firstColumn">#</div> 39 76 <div class="firstColumn"></div> 40 <wizard:templateColumnHeaders entity="${events[ eventId ]}" class="column"/>41 77 <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}"> 42 78 <div class="column"> … … 48 84 <wizard:ajaxButton name="addEventGroup" src="../images/icons/famfamfam/add.png" alt="add a new eventgroup" class="famfamfam" value="+" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()" /> 49 85 </div> 86 <wizard:templateColumnHeaders entity="${events[ eventId ]}" class="column"/> 50 87 </div> 51 88 </g:if> … … 55 92 <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(${eventId});" afterSuccess="onWizardPage()"/> 56 93 </div> 57 <wizard:templateColumns id="${eventId}" entity="${events[ eventId ]}" template="${events[ eventId ].template}" name="event_${eventId}" class="column" />58 94 <g:if test="${eventGroups}"><g:each var="eventGroup" status="j" in="${eventGroups}"> 59 95 <div class="column"> … … 66 102 </g:each></g:if> 67 103 <div class="column"></div> 104 <wizard:templateColumns id="${eventId}" entity="${events[ eventId ]}" template="${events[ eventId ].template}" name="event_${eventId}" class="column" /> 68 105 </div> 69 106 </g:each>
Note: See TracChangeset
for help on using the changeset viewer.