Changeset 1143


Ignore:
Timestamp:
Nov 16, 2010, 11:47:46 AM (10 years ago)
Author:
t.w.abma@…
Message:
  • import wizard: fuzzy matching for column properties (step 2) implemented
Location:
trunk/grails-app
Files:
5 edited

Legend:

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

    r1141 r1143  
    3939
    4040    def index = {
    41         //String.metaClass.mostSimilarTo = { ImporterService.mostSimilar(delegate, it) }
    42 
    43         //session.import_referer = request.forwardURI
    4441        // should do a check what is in the url, strip it?
    4542        session.import_referer = params.redirectTo
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r1141 r1143  
    538538    }
    539539
    540     static def stringSimilarity (l_str, r_str, degree=2) {       
    541         similarity(l_str.toLowerCase().toCharArray(),
    542             r_str.toLowerCase().toCharArray(),
     540    static def stringSimilarity (l_str, r_str, degree=2) {
     541       
     542        similarity(l_str.toString().toLowerCase().toCharArray(),
     543            r_str.toString().toLowerCase().toCharArray(),
    543544            degree)
    544545    }
  • trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy

    r1141 r1143  
    140140    def createPropertySelect(String name, options, matchvalue, Integer columnIndex)
    141141    {
    142         //String.metaClass.mostSimilarTo = { ImporterService.mostSimilar(delegate, it) }
    143         //println "mostsimilar="+ImporterService.mostSimilar(matchvalue, options)
     142        // Determine which field in the options list matches the best with the matchvalue
     143        def mostsimilar = ImporterService.mostSimilar(matchvalue, options)
    144144
    145145        def res = "<select style=\"font-size:10px\" name=\"${name}.index.${columnIndex}\">"
    146146
    147         res += "<option value=\"dontimport\" selected>Don't import</option>"
     147        res += "<option value=\"dontimport\">Don't import</option>"
    148148
    149149        options.each { f ->
    150             res+= "<option value=\"${f.name}\">"
    151            
     150            res+= "<option value=\"${f.name}\""
     151
     152            res+= (mostsimilar.toString().toLowerCase()==f.name.toLowerCase()) ?
     153                    " selected>" :
     154                    ">"
     155           
    152156            res+= (f.preferredIdentifier) ?
    153157                    "${f.name} (IDENTIFIER)</option>" :
  • trunk/grails-app/views/importer/common/_properties_horizontal.gsp

    r1141 r1143  
    2424                            <td class="header" width="200px">
    2525                                <b>${header[selentity.columnindex.toInteger()].name}</b>
    26                                 <importer:propertyChooser name="columnproperty" mappingcolumn="${header[selentity.columnindex.toInteger()]}" matchvalue="test" "allfieldtypes="${allfieldtypes}"/>
     26                                <importer:propertyChooser name="columnproperty" mappingcolumn="${header[selentity.columnindex.toInteger()]}" matchvalue="${header[selentity.columnindex.toInteger()].name}" allfieldtypes="${allfieldtypes}"/>
    2727                            </td>                                       
    2828                    </g:if>
  • trunk/grails-app/views/importer/index_simple.gsp

    r1103 r1143  
    5656
    5757$(document).ready(function() {
     58
     59      // handle template selects
     60  new SelectAddMore().init({
     61       rel     : 'template',
     62       url     : '/gscf/templateEditor',
     63       vars    : 'entity', // can be a comma separated list of variable names to pass on
     64       label   : 'add / modify..',
     65       style   : 'modify',
     66       onClose : function(scope) {
     67           refreshWebFlow();
     68       }
     69  });
     70
    5871   
    5972    $('#simplewizardform').submit(function() {
     
    7386
    7487</g:javascript>
     88
     89<g:if env="production">
     90<script type="text/javascript" src="${resource(dir: 'js', file: 'SelectAddMore.min.js')}"></script>
     91</g:if><g:else>
     92<script type="text/javascript" src="${resource(dir: 'js', file: 'SelectAddMore.js')}"></script>
     93</g:else>
     94     
    7595</head>
    7696  <body>
     
    125145            <td>
    126146                <g:select
     147                rel="template"
    127148                name="entity"
    128149                id="entity"
Note: See TracChangeset for help on using the changeset viewer.