Merge pull request #5230 from solgenomics/topic/open_pollinated
[sgn.git] / mason / transcript / unigene_build / history_unigene_build_info.mas
blob9f930ecb8e8044de674d3d78ee4128bdef968c4c
1 <%doc>
3 =head1 NAME 
4  
5  basic_unigene_build_info.mas
6  Mason code to show history data for unigene_build web_page.
8 =cut
10 =head1 VERSION 
12 0.1
14 =cut 
16 =head1 SYNOPSIS
18 <& '/transcript/unigene_build/history_unigene_build_info.mas', schema => $schema, unigene_build => $unigene_build &>
20 where: $schema, a DBIx::Class::Schema object with the classes of SGN::Schema
21        $unigene_build, an CXGN::Transcript::UnigeneBuild object
22        
23 =cut
25 =head1 DESCRIPTION
27  It is a MASON module for the unigene_build.pl script to show information about the history of the unigene builds
29 =cut
31 =head 1 AUTHOR
33  Aureliano Bombarely (ab782@cornell.edu)
35 =cut
37 </%doc>
40 <%args>
41 $schema
42 $unigene_build
43 </%args>
46 <%perl>
47 use strict;
48 use warnings;
50 use SGN::Schema;
51 use CXGN::Transcript::UnigeneBuild;
52 use CXGN::Page::FormattingHelpers  qw/ info_section_html info_table_html columnar_table_html page_title_html html_break_string /;
55 my $history_html;
57 ## If there aren't any unigene_build that comes from unigene_build_detail it will do nothing. 
58 ## The error message will returned by basic information
60 my $unigene_build_id = $unigene_build->get_unigene_build_id();
62 ## Get the organism group id to use in a search
64 my $organism_group_id = $unigene_build->get_organism_group_id();
65 my $group_name = $unigene_build->get_organism_group_name();
67 my @unigene_data;
68 if (defined $organism_group_id) {
70    ## Get the data from the sgn.method table
72    my @unigene_build_rows = $schema->resultset('UnigeneBuild')->search({ organism_group_id => $organism_group_id }, 
73                                                                        { order_by => 'build_date' } );
74    foreach my $unigene_build_row (@unigene_build_rows) {
75        my %unigene_data = $unigene_build_row->get_columns();
76        my $build_name = $group_name . '#' . $unigene_data{'build_nr'};
77        my $status = '<font color="red"><i>Deprecated</i></font>';
78        if ($unigene_data{'status'} eq 'C') {
79            $status = '<font color="green"><b>CURRENT</b></font>';
80        } elsif ($unigene_data{'status'} eq 'P') {
81            $status = '<font color="orange"><i>Previous</i></font>';
82        }
83        
84        my $build_link = '<a href=/search/unigene_build.pl?id=' . $unigene_data{'unigene_build_id'} . '>' . $build_name . '</a>';
85        if ($unigene_data{'unigene_build_id'} == $unigene_build_id) {
86            push @unigene_data, [$unigene_data{'unigene_build_id'}, '<b>' . $build_link . '</b>', $status, $unigene_data{'build_date'}];
87        } else {
88            push @unigene_data, [$unigene_data{'unigene_build_id'}, $build_link, $status, $unigene_data{'build_date'}];
89        }
90    }
91    ## Create the HTML table
93    $history_html = columnar_table_html( headings => ['Unigene build id', 'Build Name', 'Status', 'Date'],
94                                         data    => \@unigene_data );
95    
96 } else {
97     $history_html = 'None history was found associated to this unigene build';
100 my $history_content;
101 if (defined $unigene_build_id) {
102     $history_content = info_section_html( title         => "Unigene Build History", 
103                                            contents     => $history_html,
104                                            collapsible  => 1,
105                                            collapsed    => 0, );
109 </%perl>
111 <% $history_content %>