Changeset 416
- Timestamp:
- May 12, 2010, 3:38:46 PM (14 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy
r414 r416 260 260 }.to "events" 261 261 on("add") { 262 /*263 def startTime = (params.get('startTime')) ? params.startTime = new Date().parse("d/M/yyyy HH:mm", params.get('startTime').toString()) : null264 def endTime = (params.get('endTime')) ? new Date().parse("d/M/yyyy HH:mm", params.get('endTime').toString()) : null265 def template = params.get('template')266 267 // handle template268 if (template instanceof String && template.size() > 0) {269 template = Template.findByName(template)270 } else if (!template instanceof Template) {271 template = null272 }273 274 // handle data275 if (template && startTime && endTime) {276 // add an event instance277 def event = new Event(278 template : template,279 startTime : startTime,280 endTime : endTime281 )282 283 // validate event284 if (event.validate()) {285 // add event to event list286 flow.events[ flow.events.size() ] = event287 success()288 } else {289 // validation failed, feedback errors290 flash.errors = [:]291 flash.values = params292 this.appendErrors(event, flash.errors)293 error()294 }295 } else {296 // validation failed, feedback errors297 flash.errors = [:]298 flash.values = params299 300 if (!template) this.appendErrorMap(['template': 'You need to select an event template'], flash.errors)301 if (!startTime) this.appendErrorMap(['startTime': 'You need to define the start time of your study event'], flash.errors)302 if (!endTime) this.appendErrorMap(['endTime': 'You need to define the end time of your study event'], flash.errors)303 error()304 }305 */306 262 flash.values = params 307 263 def eventTemplateName = params.get('template') … … 322 278 // validate event object 323 279 if (flow.event.validate()) { 324 325 flow.event.template.fields.each() {326 println "["+it.name+"] = "+flow.event.getFieldValue(it.name)327 }328 280 // it validated! Duplicate the event object... 329 281 def newEvent = flow.event … … 412 364 flash.values = params 413 365 flash.errors = [:] 414 /* 415 416 // handle event groupings 417 this.handleEventGrouping(flow, flash, params) 418 419 // check if we have at least one subject 420 // and check form data 366 367 // handle study data 421 368 if (flow.events.size() < 1) { 422 369 // append error map 423 370 flash.values = params 424 371 this.appendErrorMap(['events': 'You need at least to create one event for your study'], flash.errors) 372 error() 373 } else if (this.handleEvents(flow, flash, params)) { 374 success() 375 } else { 425 376 error() 426 377 } 427 */428 378 }.to "events" 429 379 } … … 645 595 */ 646 596 def handleEvents(flow, flash, params) { 597 def errors = false 598 647 599 // got an event in the flash scope? 648 600 if (!flow.event) flow.event = new Event() … … 669 621 flow.eventTemplates.each() { eventTemplate -> 670 622 // iterate through events 671 eventTemplate.getValue().events.each() { event -> 672 println eventTemplate 673 println event.class 674 //println event.template 675 623 eventTemplate.getValue().events.each() { eventId -> 676 624 // iterate through template fields 677 /* 678 event.giveFields().each() { eventField -> 679 event.setFieldValue(eventField.name, params.get( 'event_' + event + '_' + eventField.escapedName() ) ) 625 flow.events[ eventId ].giveFields().each() { eventField -> 626 flow.events[ eventId ].setFieldValue(eventField.name, params.get( 'event_' + eventId + '_' + eventField.escapedName() ) ) 680 627 } 681 628 682 629 // validate event 683 if (!flow.events[ event ].validate()) {630 if (!flow.events[ eventId ].validate()) { 684 631 errors = true 685 632 this.appendErrors(flow.events[ eventId ], flash.errors, 'event_' + eventId + '_') 686 633 } 687 */688 634 } 689 635 } -
trunk/grails-app/domain/dbnp/studycapturing/Event.groovy
r408 r416 17 17 Date endTime 18 18 19 /** 20 * Constraints 21 */ 19 22 static constraints = { 20 endTime(validator: {val, obj -> 21 if (val && val.before(obj.startTime)) { 22 return 'endTimeshouldbegreater' 23 endTime(validator: { fields, obj, errors -> 24 def error = false 25 26 // endTime must be >= the startTime 27 if ( fields && fields.compareTo(obj.startTime) < 0 ) { 28 error = true 29 errors.rejectValue( 30 'endTime', 31 'event.endTime.greaterThanStartTime', 32 ['endTime', fields] as Object[], 33 'End time should be greater than or equal to the Start Time' 34 ) 23 35 } 36 37 return (!error) 24 38 }) 25 39 } -
trunk/grails-app/i18n/messages.properties
r332 r416 63 63 templateEntity.typeMismatch.date=Property {0} must be of type Date and is currently of type {1} 64 64 templateEntity.typeMismatch.term=Property {0} must be of type Term and is currently of type {1} 65 66 event.endTime.greaterThanStartTime=End time should be greater than or equal to the Start Time -
trunk/grails-app/taglib/dbnp/studycapturing/WizardTagLib.groovy
r399 r416 620 620 def from = [] 621 621 attrs.from.each { from[ from.size() ] = it.toString() } 622 623 // sort alphabetically 624 from.sort() 625 626 // set attributes 622 627 attrs.from = from 623 628 attrs.value = (attrs.value) ? attrs.value.toString() : '' -
trunk/grails-app/views/wizard/pages/_events.gsp
r397 r416 29 29 <g:if test="${events}"> 30 30 <g:each var="eventTemplate" in="${eventTemplates}"> 31 <g:set var="showHeader" value="${true}" /> 31 32 <h1>${eventTemplate.getValue().name} template</h1> 32 33 <div class="table"> 33 <div class="header"> 34 <div class="firstColumn">#</div> 35 <div class="firstColumn"></div> 36 <wizard:templateColumnHeaders template="${eventTemplate.getValue().template}" class="column"/> 37 <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}"> 38 <div class="column"> 39 <g:textField name="eventGroup_${g}_name" value="${eventGroup.name}" /> 40 <wizard:ajaxButton name="deleteEventGroup" src="../images/icons/famfamfam/delete.png" alt="delete this eventgroup" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${g});" afterSuccess="onWizardPage()" /> 34 <g:each var="eventId" in="${eventTemplate.getValue().events}"> 35 <g:if test="${showHeader}"> 36 <g:set var="showHeader" value="${false}" /> 37 <div class="header"> 38 <div class="firstColumn">#</div> 39 <div class="firstColumn"></div> 40 <wizard:templateColumnHeaders entity="${events[ eventId ]}" class="column"/> 41 <g:if test="${eventGroups}"><g:each var="eventGroup" status="g" in="${eventGroups}"> 42 <div class="column"> 43 <g:textField name="eventGroup_${g}_name" value="${eventGroup.name}" /> 44 <wizard:ajaxButton name="deleteEventGroup" src="../images/icons/famfamfam/delete.png" alt="delete this eventgroup" class="famfamfam" value="-" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" before="\$(\'input[name=do]\').val(${g});" afterSuccess="onWizardPage()" /> 45 </div> 46 </g:each></g:if> 47 <div class="column"> 48 <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 </div> 41 50 </div> 42 </g:each></g:if> 43 <div class="column"> 44 <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()" /> 45 </div> 46 </div> 47 <g:each var="eventId" in="${eventTemplate.getValue().events}"> 51 </g:if> 48 52 <div class="row"> 49 53 <div class="firstColumn">${eventId + 1}</div>
Note: See TracChangeset
for help on using the changeset viewer.