graphical filtering of accession search
[sgn.git] / mason / feature / dbxrefs.mas
blobdef28b38c6721e36c08a2d408c728d1f51f6608a
1 <%args>
2     $dbxrefs => []
3 </%args>
4 % if( %others ) {
5   <% info_table_html( __border => 0, __multicol => 4, %others ) %>
6 % }
8 <%init>
10     sub uniq_dbx(@) { my %seen; grep !($seen{ $_->db->name.':'.$_->accession }++), @_ }
12     my @others = uniq_dbx grep defined, @$dbxrefs;
13     my %others;
14     for ( @others ) {
15         push @{$others{ $m->scomp('.db', d => $_->db ) }}, $m->scomp('.dxlink', d => $_);
16     }
17     for ( values %others ) {
18         if( @$_ > 1 ) {
19             $_ = $m->scomp('.dxlist', l => $_ );
20         } else {
21             $_ = $_->[0];
22         }
23     }
24 </%init>
25 <%once>
26     use HTML::Entities;
27     use CXGN::Page::FormattingHelpers qw/ info_table_html /;
28 </%once>
30 <%def .db>
31 <%args>
32   $d
33 </%args>
34 %  $d = $d->name;
35 %  $d =~ s/_/ /g;
36 %  $d =~ s/^DB://;
37 <% $d |h%>
38 </%def>
40 <%def .dxlist>
41 <%args>
42   $l
43 </%args>
44   <ul>
45 %   for (@$l) {
46       <li><% $_ %></li>
47 %   }
48   </ul>
49 </%def>
50 <%def .dxlink>
51 <%args>
52   $d
53 </%args>
54 % if( $d->db->urlprefix && $d->db->url ) {
55    <a href="<% $d->db->urlprefix .  $d->db->url |h %><% $d->accession |uh %>"><% $d->accession |h%></a>
56 % } else {
57    <% $d->accession |h %>
58 % }
59 </%def>