don't need SGN_TEST_SERVER env directly in test scripts
[sgn.git] / mason / biosource / sample / exp_associated.mas
blobd8170e387d30cda1f442f6ec8a078501a38823c7
1 <%doc>
3 =head1 NAME 
4  
5  exp_associated.mas
6  mason component to take experiment data associated to a sample from the database and return it as html
8 =cut
10 =head1 VERSION 
12 0.1
14 =cut 
16 =head1 DESCRIPTION
18  A mason component to take experiment data associated to a sample from the database and return it as html. 
19   
21 =cut
23 =head 1 AUTHOR
25  Aureliano Bombarely (ab782@cornell.edu)
27 =cut 
29 </%doc>
32 <%args>
33 $schema
34 $target_list
35 </%args>
37 <%perl>
38 use strict;
39 use warnings;
41 use CXGN::GEM::Schema;
42 use CXGN::GEM::Target;
43 use CXGN::Page::FormattingHelpers  qw/ info_section_html info_table_html columnar_table_html page_title_html html_break_string /;
45 my $exp_content;
46 my @target_list = @{ $target_list };
48 ## Only return something if it is defined $sample and it have a sample_id
50 if (scalar(@target_list) > 0 ) {
51     
52     my @exp_list;
54     foreach my $target (@target_list) {
55         
56         my $target_id = $target->get_target_id();
57         my $target_name = $target->get_target_name();           
58         my $target_link = '/gem/target.pl?id=' . $target_id;
59         my $target_html = "<a href=$target_link>$target_name</a><br>";
60                 
61         my $experiment = $target->get_experiment();
62         my $exp_id = $experiment->get_experiment_id();
63         my $exp_name = $experiment->get_experiment_name();              
64         my $exp_link = '/gem/experiment.pl?id=' . $exp_id;
65         my $exp_html = "<a href=$exp_link>$exp_name</a><br>";
67         push @exp_list, [$exp_html, $target_html];              
68     }
71     ## Use columnar table to give the html format. If don't exists any data, print message.
72     
73     my $exp_composition_html = columnar_table_html( headings => [ 'Experiment', 'Target' ],
74                                                     data     => \@exp_list,
75                                                     __alt_freq => 2,
76                                                     __align  => ['c', 'c'], );
79     my $exp_n = scalar(@exp_list);                                              
80     if ($exp_n == 0) {
81         $exp_composition_html = 'None experiment was found associated to this sample';
82     }
84     $exp_content = info_section_html( title        => "Expression Experiments (".$exp_n.")", 
85                                       contents     => $exp_composition_html,
86                                       collapsible  => 1,
87                                       collapsed    => 0, );
91 </%perl>
93 <% $exp_content %>
95 <& 
96    /util/import_javascript.mas, 
97    classes => 'CXGN.Effects' 
99