Changeset 1717 for trunk/grails-app


Ignore:
Timestamp:
Apr 6, 2011, 5:24:14 PM (10 years ago)
Author:
robert@…
Message:

Implemented searching for 'any field' in advanced query

Location:
trunk/grails-app
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/query/AdvancedQueryController.groovy

    r1678 r1717  
    322322                                def templateFields = TemplateField.findAllByEntity( entity )
    323323
    324                                 def fieldNames = ( domainFields + templateFields ).collect { it.name }.unique() + 'Template'
    325 
    326                                 fields[ it ] = fieldNames.sort { a, b -> a[0].toUpperCase() + a[1..-1] <=> b[0].toUpperCase() + b[1..-1] };
     324                                def fieldNames = ( domainFields + templateFields ).collect { it.name }.unique() + 'Template' + '*'
     325
     326                                fields[ it ] = fieldNames.sort { a, b ->
     327                                        def aUC = a.size() > 1 ? a[0].toUpperCase() + a[1..-1] : a;
     328                                        def bUC = b.size() > 1 ? b[0].toUpperCase() + b[1..-1] : b;
     329                                        aUC <=> bUC
     330                                };
    327331                        }
    328332                }
     
    346350                                def moduleName = module.name.replace( 'module', '' ).trim()
    347351
    348                                 fields[ moduleName ] = moduleFields.unique();
     352                                fields[ moduleName ] = moduleFields.unique() + '*';
    349353                        } catch( Exception e ) {
    350354                                log.error( "Error while retrieving queryable fields from " + module.name + ": " + e.getMessage() )
  • trunk/grails-app/views/advancedQuery/_criteria.gsp

    r1581 r1717  
    55                <g:each in="${criteria}" var="criterion" status="j">
    66                        <li>
    7                                 <span class="entityfield">${criterion.entityField().toLowerCase()}</span>
     7                                <span class="entityfield">${criterion.humanReadableEntityField().toLowerCase()}</span>
    88                                <span class="operator">${criterion.operator}</span>
    99                                <span class="value">
  • trunk/grails-app/views/advancedQuery/index.gsp

    r1649 r1717  
    1515                                        <g:if test="${j > 0}">,</g:if>
    1616                                        {
    17                                                 label: "${entity.key.toString().encodeAsJavaScript()}.${field.toString().encodeAsJavaScript()} ${entity.key.toString().encodeAsJavaScript()} ${field.toString().encodeAsJavaScript()}",
    18                                                 show: "${(field[0].toUpperCase() + field[1..-1]).encodeAsJavaScript()}",
     17                                                label: "${(
     18                                                        entity.key.toString() + '.' + field.toString() + ' ' +
     19                                                        entity.key.toString() + ' ' + field.toString() + ' ' +
     20                                                        (field == '*' ? 'any field' : '')
     21                                                        ).encodeAsJavaScript()}",
     22                                                show: "${
     23                                                        (field == '*' ?
     24                                                                '[Any field in ' + entity.key.toString() + ']' :
     25                                                                (field?.size() > 1 ?
     26                                                                        field[0].toUpperCase() + field[1..-1] :
     27                                                                        field)
     28                                                        ).encodeAsJavaScript()}",
    1929                                                value: "${entity.key.toString().encodeAsJavaScript()}.${field.toString().encodeAsJavaScript()}",
    2030                                                entity: "${entity.key.toString().encodeAsJavaScript()}"
     
    7888                                                                <g:each in="${entity.value}" var="field">
    7989                                                                        <option value="${entity.key}.${field}">
    80                                                                                 ${field[0].toUpperCase() + field[1..-1]}
     90                                                                                <g:if test="${field?.size() > 1}">
     91                                                                                        ${field[0].toUpperCase() + field[1..-1]}
     92                                                                                </g:if>
     93                                                                                <g:else>
     94                                                                                        ${field}
     95                                                                                </g:else>
    8196                                                                        </option>
    8297                                                                </g:each>
Note: See TracChangeset for help on using the changeset viewer.