genotyping trial page update
[sgn.git] / mason / phenome / allele.mas
blobe77bc0967b431ceb532aebafbedf1d78e34bc26e
1 <%doc>
2 =head1 NAME
4 /phenome/allele.mas - a component for printing the alleles section
6 =head1 DESCRIPTION
9 Parameters:
11 =over 3
13 =item alleles
15 arrayref of CXGN::Phenome::Allele objects
17 =item user_id
19 logged in sp_person_id
21 =item curator
23 boolean. Is the logged user a curator?
25 =back
27 =head1 AUTHOR
29 Naama Menda <nm249@cornell.edu>
31 =cut
32 </%doc>
34 <%args>
35   $alleles
36   $user_id
37   $curator
38 </%args>
40 <%perl>
42 use CXGN::Page::FormattingHelpers qw / columnar_table_html /;
44 my @allele_data;
45 my $data;
47 foreach my $a (@$alleles) {
49   my $allele_id = $a->{allele_id};
50   my $allele_synonyms;
51   my @allele_aliases = $a->get_allele_aliases();
52   foreach my $a_synonym (@allele_aliases) {
53     $allele_synonyms .= $a_synonym->get_allele_alias() . "  ";
54   }
55   if ( !$allele_synonyms ) { $allele_synonyms = "[add new]"; }
56   my $allele_synonym_link =
57     qq |<a href= "/phenome/allele_synonym.pl?allele_id=$allele_id&amp;action=new">$allele_synonyms</a> |;
59   my $a_person_id = $a->get_sp_person_id;
60   my $allele_edit_link =
61     ( $a_person_id && $user_id && ( $a_person_id == $user_id ) || ( $curator ) )
62     ? "<a href=\"/phenome/allele.pl?action=edit&amp;allele_id=$allele_id\">[Edit]</a>"
63         : '<span class="ghosted">[Edit]</span> ';
65   my $phenotype   = $a->get_allele_phenotype();
66   my $stock_ids   = $a->get_stock_ids();
67   my $stock_count = scalar(@$stock_ids);
68   my $stock_link  = qq|<a href="/phenome/allele.pl?action=view&amp;allele_id=$allele_id">$stock_count </a>|;
69   push @allele_data,
70     [
71      (
72       "<i>" . $a->get_allele_symbol . "</i>",
73       $a->get_allele_name,
74       $allele_synonym_link,
75       qq|<div align="left"><a href="/phenome/allele.pl?action=view&amp;allele_id=$allele_id"> |
76       . $phenotype
77       . "</a></div>",
78       $stock_link,
79       $allele_edit_link,
80      )
81     ];
83 if (@allele_data) {
84   $data = columnar_table_html(
85                               headings => [
86                                            'Allele symbol', 'Allele name',
87                                            'Synonyms',      'Phenotype',
88                                            'Accessions',
89                                           ],
90                               data         => \@allele_data,
91                               __alt_freq   => 2,
92                               __alt_width  => 1,
93                               __alt_offset => 3,
94                              );
97 </%perl>
100 <% $data %>