Added eval; site now shows clean dataset missing message instead of server error...
[sgn.git] / lib / SGN / Controller / AJAX / TissueSample.pm
blob82123b80bf8b91005081bf3c22621a619cbbc4a2
2 =head1 NAME
4 SGN::Controller::AJAX::TissueSample - a REST controller class to provide tissue sample functionality
6 =head1 DESCRIPTION
9 =head1 AUTHOR
11 =cut
13 package SGN::Controller::AJAX::TissueSample;
15 use Moose;
16 use Data::Dumper;
17 use JSON;
18 use CXGN::People::Login;
19 use CXGN::Trial::Search;
20 use JSON;
22 BEGIN { extends 'Catalyst::Controller::REST' }
24 __PACKAGE__->config(
25 default => 'application/json',
26 stash_key => 'rest',
27 map => { 'application/json' => 'JSON' },
30 sub tissue_sample_field_trials : Path('/ajax/tissue_samples/field_trials') : ActionClass('REST') { }
32 sub tissue_sample_field_trials_GET : Args(0) {
33 my $self = shift;
34 my $c = shift;
35 my $bcs_schema = $c->dbic_schema('Bio::Chado::Schema', 'sgn_chado');
37 my $trial_search = CXGN::Trial::Search->new({
38 bcs_schema=>$bcs_schema,
39 trial_has_tissue_samples=>1,
40 });
41 my ($data, $total_count) = $trial_search->search();
42 my @result;
43 my %selected_columns = ('tissue_sample_name'=>1, 'tissue_sample_id'=>1, 'plant_name'=>1, 'plot_name'=>1, 'block_number'=>1, 'plant_number'=>1, 'plot_number'=>1, 'rep_number'=>1, 'row_number'=>1, 'col_number'=>1, 'accession_name'=>1, 'is_a_control'=>1);
44 my $selected_columns_json = encode_json \%selected_columns;
45 foreach (@$data){
46 my $folder_string = '';
47 if ($_->{folder_name}){
48 $folder_string = "<a href=\"/folder/$_->{folder_id}\">$_->{folder_name}</a>";
50 push @result,
52 "<a href=\"/breeders_toolbox/trial/$_->{trial_id}\">$_->{trial_name}</a>",
53 $_->{description},
54 "<a href=\"/breeders/program/$_->{breeding_program_id}\">$_->{breeding_program_name}</a>",
55 $folder_string,
56 $_->{year},
57 $_->{location_name},
58 $_->{trial_type},
59 $_->{design},
60 $_->{project_planting_date},
61 $_->{project_harvest_date},
62 "<a class='btn btn-sm btn-default' href='/breeders/trial/$_->{trial_id}/download/layout?format=csv&dataLevel=field_trial_tissue_samples&selected_columns=$selected_columns_json'>Download Layout</a>"
65 #print STDERR Dumper \@result;
67 $c->stash->{rest} = { data => \@result };
70 sub tissue_sample_genotyping_trials : Path('/ajax/tissue_samples/genotyping_trials') : ActionClass('REST') { }
72 sub tissue_sample_genotyping_trials_GET : Args(0) {
73 my $self = shift;
74 my $c = shift;
75 my $bcs_schema = $c->dbic_schema('Bio::Chado::Schema', 'sgn_chado');
77 my $trial_search = CXGN::Trial::Search->new({
78 bcs_schema=>$bcs_schema,
79 trial_design_list=>['genotyping_plate']
80 });
81 my ($data, $total_count) = $trial_search->search();
82 my @result;
83 foreach (@$data){
84 my $folder_string = '';
85 if ($_->{folder_name}){
86 $folder_string = "<a href=\"/folder/$_->{folder_id}\">$_->{folder_name}</a>";
88 push @result,
90 "<a href=\"/breeders_toolbox/trial/$_->{trial_id}\">$_->{trial_name}</a>",
91 $_->{description},
92 "<a href=\"/breeders/program/$_->{breeding_program_id}\">$_->{breeding_program_name}</a>",
93 $folder_string,
94 $_->{year},
95 $_->{location_name},
96 $_->{genotyping_facility},
97 $_->{genotyping_plate_format},
98 $_->{genotyping_plate_sample_type},
99 "<a class='btn btn-sm btn-default' href='/breeders/trial/$_->{trial_id}/download/layout?format=csv&dataLevel=plate'>Download Layout</a>"
102 #print STDERR Dumper \@result;
104 $c->stash->{rest} = { data => \@result };
107 sub tissue_sample_sampling_trials : Path('/ajax/tissue_samples/sampling_trials') : ActionClass('REST') { }
109 sub tissue_sample_sampling_trials_GET : Args(0) {
110 my $self = shift;
111 my $c = shift;
112 my $bcs_schema = $c->dbic_schema('Bio::Chado::Schema', 'sgn_chado');
114 my $trial_search = CXGN::Trial::Search->new({
115 bcs_schema=>$bcs_schema,
116 trial_design_list=>['sampling_trial']
118 my ($data, $total_count) = $trial_search->search();
119 my @result;
120 foreach (@$data){
121 my $folder_string = '';
122 if ($_->{folder_name}){
123 $folder_string = "<a href=\"/folder/$_->{folder_id}\">$_->{folder_name}</a>";
125 push @result,
127 "<a href=\"/breeders_toolbox/trial/$_->{trial_id}\">$_->{trial_name}</a>",
128 $_->{description},
129 "<a href=\"/breeders/program/$_->{breeding_program_id}\">$_->{breeding_program_name}</a>",
130 $folder_string,
131 $_->{year},
132 $_->{location_name},
133 $_->{sampling_facility},
134 $_->{sampling_trial_sample_type},
135 "<a class='btn btn-sm btn-default' href='/breeders/trial/$_->{trial_id}/download/layout?format=csv&dataLevel=samplingtrial'>Download Layout</a>"
138 #print STDERR Dumper \@result;
140 $c->stash->{rest} = { data => \@result };