Ignore:
Timestamp:
Mar 26, 2010, 1:02:39 PM (10 years ago)
Author:
ademcan
Message:

queryController changes

Location:
trunk/grails-app/controllers
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/SearchableController.groovy

    r247 r316  
    1 
    21/*
    32 * Copyright 2007 the original author or authors.
     
    2120 * Basic web interface for Grails Searchable Plugin
    2221 *
    23  * @author Adem and Jahn
     22 * @author Maurice Nicholson
    2423 */
    2524class SearchableController {
    2625    def searchableService
    27 
    28     def selectsample = {
    29 
    30 
    31             // produce error message here if studies don't contain samples!
    32             // redirect back or use error
    33 
    34 
    35             println "in selectsample: "
    36             params.each{println it}
    37 
    38             // prepare showing all studies selected in the previous view
    39             def selectedStudies = []
    40             def selectedStudyIds = params['selectedStudyIds']
    41 
    42             if(selectedStudyIds!=null)
    43             {
    44                  def list = selectedStudyIds.findAll(/(\d)+/)
    45                  selectedStudies = list.collect{ dbnp.studycapturing.Study.get(it) }
    46             }
    47             else
    48             {
    49                  def tmpList = []
    50                  def studyList = dbnp.studycapturing.Study.list()
    51                  selectedStudyIds = []
    52                  params.each{ key,values->
    53                      if (values=="on")  tmpList.add(key)
    54                  }
    55 
    56                  for (i in studyList)
    57                      if (tmpList.contains(i.getId().toString()))
    58                      {
    59                          selectedStudyIds.add(i.id)
    60                          selectedStudies.add(i)
    61                      }
    62            }
    63 
    64 
    65         // subgroups
    66         // provide list of subgroups depending on the type of subgrouping
    67         // selected by the user
    68         def subgroups = []
    69         def submitButton = params["submit"]  // this button's value determines the kind of subgrouping
    70 
    71         switch(submitButton)
    72         {
    73              case "Subject Groups":
    74                   render(params)
    75                   render("Subject Groups")
    76                   def studyGroups = []
    77                   if(selectedStudies!=null)
    78                   {
    79                      selectedStudies.each{ study ->
    80                          study.groups.each{ group -> studyGroups.add[group] }
    81                      }
    82                      println "study groups: "
    83                      studyGroups.each{x-> println x}
    84                   }
    85 
    86                   // testing:
    87                   // there is a lack of data in the mockup (subject groups are still missing)
    88                   // as long as there are no groups in the boot script,
    89                   // we use this
    90                   subgroups = studyGroups.size()<=0 ?
    91                        ["subject group 1","subject group 2"] : studyGroups
    92 
    93                   render(view:"selectsample",model:[selectedStudies:selectedStudies,selectedStudyIds:selectedStudyIds,subgroups:subgroups])
    94                   break
    95 
    96              case "Event Groups":
    97                   def eventGroups = []
    98                   if(selectedStudies!=null)
    99                   {
    100                     selectedStudies.each{ study ->
    101                          println study.id
    102                          println study.samplingEvents.each{ eventGroups.add(it) }
    103                     }
    104                   }
    105                   subgroups=eventGroups
    106                   render(view:"selectsample",model:[selectedStudies:selectedStudies,selectedStudyIds:selectedStudyIds,subgroups:subgroups])
    107                   break
    108 
    109              case "Starting Time Groups":
    110 
    111                   def timeGroups = []
    112                   if(selectedStudies!=null)
    113                   {
    114                     selectedStudies.each{ study ->
    115                          println study.samplingEvents.each{
    116                              def timeDiff = it.getPrettyDuration( study.startDate, it.startTime )
    117                              if( !timeGroups.contains(timeDiff) ) timeGroups.add(timeDiff)
    118                          }
    119                     }
    120                   }
    121                   subgroups=timeGroups
    122                   render("Starting Time Groups")
    123                   render(view:"selectsample",model:[selectedStudies:selectedStudies,selectedStudyIds:selectedStudyIds,subgroups:subgroups])
    124                   break
    125 
    126              case ">> Execute and continue with biomarker selection":
    127                   render("Starting Time Groups")
    128                   break
    129              case "<< Back to study selection":
    130                   break
    131         }
    132         render(view:"selectsample",model:[selectedStudies:selectedStudies,selectedStudyIds:selectedStudyIds,subgroups:subgroups])
    133     }
    134 
    135 
    13626
    13727    /**
     
    16656        render("unindexAll done")
    16757    }
    168 
    169 
    170     def subjectGroups = { render ("hello") }
    171 
    172 
    17358}
  • trunk/grails-app/controllers/dbnp/query/QueryController.groovy

    r315 r316  
    3333    }
    3434
     35        def results= {
     36          println('query controller')
     37        if (!params.q?.trim()) {
     38            return [:]
     39        }
     40        try {
     41            return [searchResult: searchableService.search(params.q, params)]
     42        } catch (SearchEngineQueryParseException ex) {
     43            return [parseException: true]
     44        }
     45    }
     46
    3547    def pagesFlow = {
    3648       
     
    3850                flow.page = 0
    3951                        flow.pages = [
     52                                [title: 'Query'],
    4053                                [title: 'Study'],
    4154                                [title: 'Samples'],
     
    5265             onRender {
    5366                println "done randering index"
     67                flow.page=1
    5468             }
    55 
    56 
    5769             on("next") {
    5870                println "clicked next in sample"
    59              } .to 'study'
    60 
     71             } .to 'inputQuery'
    6172        }       
    6273
     74        inputQuery {
     75            render(view:'_inputQuery')
     76            onRender {
     77                flow.page=1
     78            }
     79        }
    6380
    6481        study {
    6582             render( view:'_study')
    66 
     83            onRender {
     84                flow.page=2
     85             }
    6786             on("next") {
    6887                println "clicked next in sample"
    6988             } .to 'sample'
    70 
     89             on("previous"){}.to 'inputQuery'
    7190        }
    72 
    73 
    7491
    7592        sample {
    7693             render( view:'_sample')
    77 
     94            onRender {
     95                flow.page=3
     96             }
    7897             on("next") {
    7998                println "clicked next in sample"
    8099             } .to 'biomarker'
    81 
     100             on("previous"){}.to 'study'
    82101        }
    83102
     
    85104        biomarker {
    86105             render( view:'_biomarker')
    87 
     106            onRender {
     107                flow.page=4
     108             }
    88109             on("next") {
    89110                println "clicked next in sample"
    90111             } .to 'group'
    91 
     112             on("previous"){}.to 'sample'
    92113        }
    93 
    94114
    95115        group {
    96116             render( view:'_group')
    97 
     117            onRender {
     118                flow.page=5
     119             }
    98120             on("next") {
    99121                println "clicked next in sample"
    100122             } .to 'result'
    101 
     123             on("previous"){}.to 'biomarkers'
    102124        }
    103 
    104 
    105125
    106126        result {
    107127             render( view:'_result')
    108128
     129            onRender {
     130                flow.page=6
     131             }
     132             on("previous"){}.to 'group'
    109133        }
    110 
    111 
    112 
    113 
    114 
    115 
    116 
    117 
    118 
    119 
    120 
    121 
    122134
    123135    }
Note: See TracChangeset for help on using the changeset viewer.