Merge pull request #5290 from solgenomics/topic/fix_upload_pehno
[sgn.git] / mason / search / phenotypes / stock.mas
blobd7255efae273aea8580146b43e8c707d0b9f24ac
1 <%args>
2   $form
3   $results                    => undef
4   $form_opts                  => undef
5   $pagination_link_maker      => undef
6   $request                    => undef
7   $schema                     => undef
8   $sp_person_autocomplete_uri => '/ajax/people/autocomplete'
9   $trait_autocomplete_uri     => '/ajax/stock/trait_autocomplete'
10   $onto_autocomplete_uri      => '/ajax/cvterm/autocomplete'
11   $trait_db_name              => 'SP'
12 </%args>
14 <& /page/page_title.mas, title => "Search Accessions and Plots" &>
16 <%once>
17   use Number::Format;
18   use CXGN::Page::FormattingHelpers qw/ columnar_table_html /;
19   use SGN::View::Stock qw/stock_link stock_organisms stock_types /;
20   use JSON::Any;
21 </%once>
23 <%perl>
25 $form_opts = { stock_types => stock_types($schema), organisms=>stock_organisms($schema)}
26 if (!$form_opts) ;
27 my $new_stock_link = qq| <a href="/stock/0/new">Submit new stock</a> \| <a href=../../phenome/qtl_form.pl>QTL Population</a>|;
29 </%perl>
31 <& /util/import_javascript.mas,
32     classes => [qw(jquery CXGN.Effects jquery.cookie)]
36 % if( $results ) {
37 %   my $pager = $results->pager;
39   <&| /page/info_section.mas, title    => 'Search results',
40                               subtitle => 'results '
41                                           .$pager->first
42                                           .'-'.$pager->last
43                                           .' of '.Number::Format->new->format_number($pager->total_entries)
44    &>
45 % my @data =(); 
46 %   if( $results->count ) {
47 %               @data =
48 %            map {
49 %                my $organism = $_->organism;
50 %            [
51 %                stock_link($_),
52 %                $_->type->name,
53 %                $organism ? $organism->species : '',
54 %            ] } $results->all;
56      <% columnar_table_html(
57             headings => ['Stock Name','Stock Type', 'Organism'],
58             data     => [ @data ],
59         )
60       %>
61 %   } else {
62      <h3 style="text-align: center">no matching results found</h3>
63 %   }
65 <div style="text-align:right">
66 Copy items on this page to list: 
67 <span id="item_list_menu">
68 </span>
70 <div id="item_list">
71 </div>  
72 </div>
74 % my @items = map { $_->uniquename() } $results->all();
75 % my $item_json = JSON::Any->new()->encode(\@items);
76 <script>
78   jQuery(document).ready( function() { 
79     var items = eval(<% $item_json %>);
81     if (isLoggedIn()) { 
82       jQuery('#item_list').hide();
83       jQuery('#item_list').html(items.join("\n"));
84       
85       addToListMenu('item_list_menu', 'item_list', 'div');
86     }
87     else { 
88       jQuery('#item_list_menu').html('Log in to use lists.');
89     }
90   });
92 </script>
95   </&>
97   <& /page/pagination_control.mas, pager => $pager, link_maker => $pagination_link_maker &>
98 % }
99 <&| /page/info_section.mas, title => 'Search' , subtitle => $new_stock_link &>
100   <& /stock/stock_search_form.mas,
101     form                       => $form,
102     opts                       => $form_opts,
103     request                    => $request,
104     sp_person_autocomplete_uri => $sp_person_autocomplete_uri,
105     trait_autocomplete_uri     => $trait_autocomplete_uri,
106     onto_autocomplete_uri      => $onto_autocomplete_uri,
107     trait_db_name              => $trait_db_name,
108   &>
109 </&>