Ignore:
Timestamp:
Jun 14, 2010, 1:00:46 PM (12 years ago)
Author:
keesvb
Message:

version 0.3.0: fixed some issues with updating boolean fields, changed events in the bootstrap, restructured menus

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r559 r561  
    418418                TemplateField field = getField(this.giveFields(), fieldName)
    419419
    420                 if( field.type == TemplateFieldType.BOOLEAN ) {
    421                         println( 'Boolean: ' + fieldName + " - " + value );
     420                // Convenience setter for boolean fields
     421                if( field.type == TemplateFieldType.BOOLEAN && value && value.class == String ) {
     422                        if (value.equals("true")) {
     423                                value = true
     424                        }
     425                        else if (value.equals("false")) {
     426                                value = false
     427                        }
     428                        else {
     429                                throw new IllegalArgumentException("Boolean string not recognized: ${value} when setting field ${fieldName}")
     430                        }
    422431                }
    423432
    424433                // Convenience setter for template string list fields: find TemplateFieldListItem by name
    425434                if (field.type == TemplateFieldType.STRINGLIST && value && value.class == String) {
    426                         // Kees insensitive pattern matching ;)
    427435                        def escapedLowerCaseValue = value.toLowerCase().replaceAll("([^a-z0-9])", "_")
    428436                        value = field.listEntries.find {
     
    562570                        def store = getStore(field.type)
    563571
    564                         // If some value is entered (or 0), then save the value
     572                        // If some value is entered (or 0 or BOOLEAN false), then save the value
    565573                        // otherwise, it should not be present in the store, so
    566574                        // it is unset if it is.
    567                         if (value || value == 0) {
     575                        if (value || value == 0 || ( field.type == TemplateFieldType.BOOLEAN && value == false)) {
    568576                                println ".setting [" + ((super) ? super.class : '??') + "] template field: [" + fieldName + "] ([" + value.toString() + "] of type [" + value.class + "])"
    569577
Note: See TracChangeset for help on using the changeset viewer.