Merge pull request #5230 from solgenomics/topic/open_pollinated
[sgn.git] / mason / tools / trial_comparison / no_list.mas
blobb4e1e3db9b4a569e1d587d6319aa7f397c1a24df
2 <%doc>
3 </%doc>
5 <%args>
6 @trial_names => ()
7 $cvterm_id => undef
8 </%args>
10 <%perl>
12 use JSON::Any;
13 use URI::Encode qw| uri_encode |;
15 print STDERR "trial names = ".(join ",",@trial_names)."\n";
16 my $url_params = "";
18 if (@trial_names) { 
19    my @trial_name_params = map { 'trial_name='.uri_encode($_) } @trial_names;
20    my $trial_names_url = join "&", @trial_name_params;
21    $url_params = $trial_names_url;
24 </%perl>
26 <& '/page/page_title.mas', title => "Compare trials" &>
28 <& '/util/import_javascript.mas', classes => [ 'jquery', 'jqueryui', 'popup', 'CXGN.List', 'CXGN.Login' ] &>
30 Comparison of trials <b><% join ",",@trial_names %></b>
31 <br /><br />
32 Total accession count: <span id="total_accession_count"></span><br />
33 Common accession count: <span id="common_accession_count"></span><br />
34 Common traits: <span id="common_trait_count"></span><br />
36 Trait: <select id="trait_select"><option disabled="1">select trials first</option></select>
38 <center>
39 <div id="result_div">
40    <img id="result_image" />
41 </div>
42 </center>
44 <script>
46   jQuery('#trait_select').change( function() { 
47   var trait_id = jQuery('#trait_select').val();
48     compare(trait_id);
49   });
50   
51   jQuery.ajax( { 
52     beforeSend: function() { working_modal_show(); },
53     url: '/ajax/trial/common_traits?<% $url_params %>',
54     success: function(response) { 
55       working_modal_hide();
56       if (response.error) { jQuery('#trait_select').val('error'); }
57       else {
58         var option_html = '';
59         for (var i =0 ; i < response.options.length; i++) {
60         var selected = "";
61         var cvterm_id = '<% $cvterm_id %>';
62         if (response.options[i][0]== cvterm_id) { selected="selected"; }
63           option_html += '<option value="'+response.options[i][0]+'" '+selected+'>'+(response.options[i][1])+'</option>\n';
64         }
65         jQuery('#trait_select').html(option_html);
66         jQuery('#total_accession_count').html(response.total_accession_count);
67         jQuery('#common_accession_count').html(response.common_accession_count);
68         jQuery('#common_trait_count').html(response.common_trait_count);  
69         compare(jQuery('#trait_select').val);
70         
71       }
72     },
73     error: function(response) { 
74        //alert("An error occurred, the service may temporarily be unavailable");
75     }
76     
77   } );
79   jQuery(document).ready( function() { 
80     compare(<% $cvterm_id %>);
81   });
82     
83 function compare(cvterm_id) { 
85    jQuery.ajax( { 
86       url: '/ajax/trial/compare?<% $url_params %>&cvterm_id='+cvterm_id,
87       success: function(response) { 
88          if (response.error) { 
89             alert(response.error);
90          }
91          else { 
92             jQuery('#result_image').attr('src', response.png);
93          }
94       }
95    });
98 </script>