Changeset 2150

Show
Ignore:
Timestamp:
24-01-12 17:30:45 (2 years ago)
Author:
work@…
Message:

added more ajax calls, and improved first study compare wizard page

Location:
trunk/grails-app
Files:
3 modified

Legend:

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

    r2149 r2150  
    9292 
    9393        def studyCount = { 
    94                 def result = [0:"0 studies found based on your criteria"]; 
     94                println params 
     95                println params.containsKey('data') 
     96//              println params['data']['uniqueSpecies'] 
     97 
     98                def matched     = false 
     99                def user        = authenticationService.getLoggedInUser() 
     100                def studies     = Study.giveReadableStudies(user) 
     101                def matchedStudies = [] 
     102 
     103                // parameters 
     104/* 
     105                def uniqueSpecies =     (params['data']['uniqueSpecies']) ? params['data']['uniqueSpecies'] : [] 
     106                println uniqueSpecies.class 
     107                println uniqueSpecies.size() 
     108 
     109                // iterate through studies 
     110                studies.each { study -> 
     111matched = false 
     112//                      matched = (study.subjects.find{uniqueSpecies.contains(it.species.id)}) ? true : false; 
     113println "study: ${study} -> matched: ${matched}" 
     114 
     115                        if (matched) matchedStudies.add(study) 
     116                } 
     117*/ 
     118println "------" 
     119 
     120                def result = ['count':matchedStudies.size()]; 
    95121 
    96122                // set output header to json 
  • trunk/grails-app/views/studyCompare/common/_on_page.gsp

    r2149 r2150  
    3838                                } 
    3939                                element.removeClass('waitForLoad').html(options); 
     40 
     41                                // bind check event handlers 
     42                                $('input:checkbox', element).each(function() { 
     43                                        $(this).bind('change', function() { 
     44                                                handleCheckEvent(this); 
     45                                        }); 
     46                                }); 
    4047                        }); 
    4148                }); 
  • trunk/grails-app/views/studyCompare/pages/_page_one.gsp

    r2149 r2150  
    1313%> 
    1414<af:page> 
     15<script type="text/javascript"> 
     16var criteria = {}; 
     17 
     18function handleCheckEvent(event) { 
     19        var check = $(event); 
     20        var value = check.attr('value'); 
     21        var parent = check.parent(); 
     22        var parentId = parent.attr('id'); 
     23        if (criteria[parentId] == undefined) criteria[parentId] = []; 
     24        var c = criteria[parentId]; 
     25 
     26        // add or remove data 
     27        if (check.is(':checked') && c.indexOf(value) < 0) { 
     28                c.push(value); 
     29        } else if (c.indexOf(value) >= 0) { 
     30                c.splice(c.indexOf(value),1); 
     31        } 
     32 
     33        console.log(criteria); 
     34 
     35        // ajax call 
     36        $.getJSON( 
     37                "<g:createLink controller="ajax" action="studyCount"/>", 
     38                criteria, 
     39                function(data) { 
     40                        $('#matchedStudies').html(data.count+' studies matched your criteria'); 
     41                } 
     42        ); 
     43 
     44//      $.ajax({ 
     45//              url: baseUrl + "/ajax/studyCount", 
     46//              dataType: 'json', 
     47//              data: data, 
     48//              success: function(data) { 
     49//                      $('#matchedStudies').html(data.count+' studies matched your criteria'); 
     50//              } 
     51//      }); 
     52 
     53} 
     54</script> 
     55 
     56 
    1557<div class="selector"> 
    1658        <div name="species" id="uniqueSpecies" class="ajax"></div> 
     
    1860        <div name="sampling event templates" id="uniqueSamplingEventTemplateNames" class="ajax"></div> 
    1961</div> 
    20 <div class="ajax" id="studyCount"></div> 
     62<div id="matchedStudies"></div> 
    2163 
    2264</af:page>