- Timestamp:
- Jan 21, 2011, 4:30:04 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/query/AdvancedQueryController.groovy
r1415 r1424 36 36 // Create a search object and let it do the searching 37 37 Search search; 38 String view; 38 39 switch( params.entity ) { 39 case "Study": search = new StudySearch(); break;40 case "Sample": search = new SampleSearch(); break;40 case "Study": search = new StudySearch(); view = "studyresults"; break; 41 case "Sample": search = new SampleSearch(); view = "sampleresults"; break; 41 42 42 43 // This exception will only be thrown if the entitiesToSearchFor contains more entities than … … 47 48 search.execute( parseCriteria( params.criteria ) ); 48 49 49 render( view: search.getView(), model: [search: search] );50 render( view: view, model: [search: search] ); 50 51 } 51 52 … … 64 65 def templateFields = TemplateField.findAllByEntity( entity ) 65 66 66 fields[ it ] = ( domainFields + templateFields ).collect { it.name }.unique().sort { a, b -> a[0].toUpperCase() + a[1..-1] <=> b[0].toUpperCase() + b[1..-1] }; 67 def fieldNames = ( domainFields + templateFields ).collect { it.name }.unique() + 'Template' 68 69 fields[ it ] = fieldNames.sort { a, b -> a[0].toUpperCase() + a[1..-1] <=> b[0].toUpperCase() + b[1..-1] }; 67 70 } 68 71 } … … 86 89 * ] 87 90 * 88 * @return List with [entity: ..., field: ..., entityfield: ..., operator: ..., value: ...] tuples.91 * @return List with Criterion objects 89 92 */ 90 93 protected List parseCriteria( def c ) { … … 94 97 c.each { 95 98 if( it.key ==~ /[0-9]+/ ) { 96 def criterium = it.value; 99 def formCriterion = it.value; 100 Criterion criterion = new Criterion(); 97 101 98 def field = criterium.entityfield?.split( /\./ ); 102 // Split entity and field 103 def field = formCriterion.entityfield?.split( /\./ ); 99 104 100 105 if( field.size() > 1 ) { 101 criteri um.entity = field[0].toString();102 criteri um.field = field[1].toString();106 criterion.entity = field[0].toString(); 107 criterion.field = field[1].toString(); 103 108 } else { 104 criteri um.entity = null;105 criteri um.field = field;109 criterion.entity = null; 110 criterion.field = field; 106 111 } 107 112 108 list << criterium; 113 // Convert operator string to Operator-enum field 114 switch( formCriterion.operator ) { 115 case ">=": criterion.operator = Operator.gte; break; 116 case ">": criterion.operator = Operator.gt; break; 117 case "<": criterion.operator = Operator.lte; break; 118 case "<=": criterion.operator = Operator.lt; break; 119 case "contains": criterion.operator = Operator.contains; break; 120 case "equals": criterion.operator = Operator.equals; break; 121 } 122 123 // Copy value 124 criterion.value = formCriterion.value; 125 126 list << criterion; 109 127 } 110 128 }
Note: See TracChangeset
for help on using the changeset viewer.