Changeset 1215

Show
Ignore:
Timestamp:
30-11-10 09:28:59 (3 years ago)
Author:
t.w.abma@…
Message:

- step 3 (mapping properties) now requires all fields to be valid before one can continue to the next step, added validation

Location:
trunk/grails-app
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r1207 r1215  
    165165     */ 
    166166 
    167     def saveMissingProperties = { 
     167    def saveMissingProperties = {         
     168        def fielderrors = 0 
     169        def invalidentities = 0 
    168170         
    169171        session.importer_importeddata.each { table -> 
    170172            table.each { entity -> 
    171                 entity.giveFields().each { field ->                  
    172                     entity.setFieldValue (field.toString(), params["entity_" + entity.getIdentifier() + "_" + field.escapedName()]) 
    173                 }                
    174             } 
    175         } 
     173                // a new entity is being traversed, if a field cannot be set, increase this counter 
     174                fielderrors = 0 
     175 
     176                entity.giveFields().each { field ->                     
     177                    try { 
     178                        // try to set the value 
     179                        entity.setFieldValue (field.toString(), params["entity_" + entity.getIdentifier() + "_" + field.escapedName()])                         
     180                    } catch (Exception e) {                     
     181                        fielderrors++ 
     182                    } 
     183                } 
     184 
     185                // a field could not be set in the entity, so the entity failed (is not validated) 
     186                if (fielderrors) invalidentities++ 
     187 
     188                // all fields in the entity could be set, no errors, so remove it from the failed cells 
     189                if (!fielderrors) { 
     190                     session.importer_failedcells.each { record -> 
     191                        record.importcells.each { cell -> 
     192                           // remove the cell from the failed cells session 
     193                           if (cell.entityidentifier == entity.getIdentifier()) {                             
     194                               record.removeFromImportcells(cell) 
     195                           } 
     196                        } 
     197                     } 
     198                } // end of fielderrors 
     199            } // end of record 
     200        } // end of table 
    176201 
    177202        // a new ontology term was added, so stay at the current step otherwise go to the next step 
    178203        if (params.updatefield) render(view:"step3_simple", model:[datamatrix:session.importer_importeddata, failedcells:session.importer_failedcells]) 
    179             else render(view:"step3", model:[datamatrix:session.importer_importeddata]) 
     204            else  
     205        if (invalidentities) 
     206            render(view:"step3_simple", model:[datamatrix:session.importer_importeddata, failedcells:session.importer_failedcells]) 
     207        else 
     208            render(view:"step3", model:[datamatrix:session.importer_importeddata]) 
    180209    } 
    181210 
  • trunk/grails-app/views/importer/common/_missingproperties.gsp

    r1205 r1215  
    5757 
    5858          element.addClass('error') 
    59           element.append( new Option("Invalid: ${cell.value}","", true, true) ); 
     59          element.append( new Option("Invalid: ${cell.value}","#invalidterm", true, true) ); 
    6060   
    6161          </g:each>