Changeset 2150


Ignore:
Timestamp:
Jan 24, 2012, 5:30:45 PM (5 years ago)
Author:
work@…
Message:

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

Location:
trunk/grails-app
Files:
3 edited

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>
Note: See TracChangeset for help on using the changeset viewer.