Ignore:
Timestamp:
Feb 16, 2011, 11:12:14 AM (12 years ago)
Author:
robert@…
Message:

Added assay search and improved query form

File:
1 edited

Legend:

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

    r1524 r1526  
    1515        def authenticationService
    1616
    17         def entitiesToSearchFor = [ 'Study': 'Studies', 'Sample': 'Samples']
     17        def entitiesToSearchFor = [ 'Study': 'Studies', 'Sample': 'Samples', 'Assay': 'Assays']
    1818
    1919        /**
     
    198198
    199199                if( queryIds.size() == 0 ) {
    200                         flash.error = "Incorrect search ID given to show"
    201                         redirect( action: "index" );
     200                        flash.error = "Incorrect search ID given to search in"
     201                        redirect( action: "list" );
    202202                        return
    203203                }
     
    287287                        case "Study":   return "studyresults";  break;
    288288                        case "Sample":  return "sampleresults"; break;
     289                        case "Assay":   return "assayresults";  break;
    289290                        default:                return "results"; break;
    290291                }
     
    298299                        case "Study":   return new StudySearch();
    299300                        case "Sample":  return new SampleSearch();
    300 
     301                        case "Assay":   return new AssaySearch();
     302                       
    301303                        // This exception will only be thrown if the entitiesToSearchFor contains more entities than
    302304                        // mentioned in this switch structure.
     
    375377                // Loop through all keys of c and remove the non-numeric ones
    376378                for( c in formCriteria ) {
    377                         if( c.key ==~ /[0-9]+/ ) {
     379                        if( c.key ==~ /[0-9]+/ && c.value.entityfield ) {
    378380                                def formCriterion = c.value;
    379381
     
    478480
    479481                // First check whether a search with the same criteria is already present
    480                 def previousSearch = retrieveSearchByCriteria( s.getCriteria(), s.searchMode );
     482                def previousSearch = retrieveSearch( s );
    481483
    482484                def id
     
    496498        /**
    497499         * Retrieves a search from session with the same criteria as given
    498          * @param criteria      List of criteria to search for
     500         * @param s                     Search that is used as an example to search for
    499501         * @return                      Search that has this criteria, or null if no such search is found.
    500502         */
    501         protected Search retrieveSearchByCriteria( List criteria, SearchMode searchMode = SearchMode.and ) {
     503        protected Search retrieveSearch( Search s ) {
    502504                if( !session.queries )
    503505                        return null
    504506
    505                 if( !criteria )
    506                         return null
    507 
    508507                for( query in session.queries ) {
    509                         def key = query.key;
    510508                        def value = query.value;
    511509
    512                         if( value.searchMode == searchMode && value.criteria && value.criteria.containsAll( criteria ) && criteria.containsAll( value.criteria ) ) {
    513                                 return value;
    514                         }
     510                        if( s.equals( value ) )
     511                                return value
    515512                }
    516513
Note: See TracChangeset for help on using the changeset viewer.