Ignore:
Timestamp:
Jun 3, 2010, 4:31:44 AM (14 years ago)
Author:
gav
Message:

Improvements to inventory text search, add inventoryGroup and hide Limit Search unless one of the values is true.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/services/InventoryItemSearchService.groovy

    r562 r566  
    159159        // Build searchableParams.
    160160        // Do not include params.sort, since not all properites are indexed.
    161         def searchableParams = [max: params.max, offset: params.offset,
    162                                                     reload: true, defaultOperator: 'or']
     161        def searchableParams = [:]
     162        searchableParams.max = params.max
     163        searchableParams.offset = params.offset
     164        searchableParams.reload = true
     165        searchableParams.defaultOperator =  'or'
     166        def properitesList = []
     167        if(params.searchName)
     168            properitesList << '$/InventoryItem/name'
     169        if(params.searchDescription)
     170            properitesList << '$/InventoryItem/description'
     171        if(params.searchComment)
     172            properitesList << '$/InventoryItem/comment'
     173        if(params.searchLocation)
     174            properitesList << '$/InventoryItem/inventoryLocation/name'
     175        if(params.searchGroup)
     176            properitesList << '$/InventoryItem/inventoryGroup/name'
     177        if(params.searchSpareFor) {
     178            properitesList << '$/InventoryItem/spareFor/name'
     179            properitesList << '$/InventoryItem/spareFor/description'
     180            properitesList << '$/InventoryItem/spareFor/comment'
     181        }
     182        if(properitesList)
     183            searchableParams.properties = properitesList
     184
     185        // Require isActive and isObsolete.
     186        def queryString = '( '+result.searchText+' )'+ ' AND isActive:"true" AND isObsolete:"false"'
    163187
    164188        // Perform the searchable query.
    165189        try {
    166             result.inventoryItemList = InventoryItem.search(result.searchText, searchableParams)
     190            result.inventoryItemList = InventoryItem.search(queryString, searchableParams)
     191
     192            // Would be nice if this worked.
     193//             result.inventoryItemList = InventoryItem.search(result.searchText, searchableParams) {
     194//                 must(term("isActive", true))
     195//                 must(term("isObsolete", false))
     196//             }
     197
    167198        } catch (e) {
    168199            log.error e
Note: See TracChangeset for help on using the changeset viewer.