use namespace::autoclean;
use File::Temp;
use JSON;
-use Text::Tradition::Analysis qw/ run_analysis /;
+use Text::Tradition::Analysis qw/ run_analysis wit_stringify /;
BEGIN { extends 'Catalyst::Controller' }
my( $self, $c, $textid ) = @_;
my $m = $c->model('Directory');
my $tradition = $m->tradition( $textid );
- my $stemma = $tradition->stemma;
- # TODO Think about caching the stemma in a session
- $c->stash->{svg} = $stemma->as_svg;
- $c->stash->{text_title} = $tradition->name;
- $c->stash->{template} = 'stexaminer.tt';
- # TODO Run the analysis as AJAX from the loaded page.
- my $t = run_analysis( $tradition );
- $c->stash->{variants} = $t->{'variants'};
- $c->stash->{total} = $t->{'variant_count'};
- $c->stash->{genealogical} = $t->{'genealogical_count'};
- $c->stash->{conflict} = $t->{'conflict_count'};
+ if( $tradition->stemma_count ) {
+ my $stemma = $tradition->stemma(0);
+ # TODO Think about caching the stemma in a session
+ $c->stash->{svg} = $stemma->as_svg;
+ $c->stash->{text_title} = $tradition->name;
+ $c->stash->{template} = 'stexaminer.tt';
+ # TODO Run the analysis as AJAX from the loaded page.
+ my $t = run_analysis( $tradition, 'exclude_type1' => 1 );
+ # Stringify the reading groups
+ foreach my $loc ( @{$t->{'variants'}} ) {
+ my $mst = wit_stringify( $loc->{'missing'} );
+ $loc->{'missing'} = $mst;
+ foreach my $rhash ( @{$loc->{'readings'}} ) {
+ my $gst = wit_stringify( $rhash->{'group'} );
+ $rhash->{'group'} = $gst;
+ }
+ }
+ # Values for TT rendering
+ $c->stash->{variants} = $t->{'variants'};
+ $c->stash->{total} = $t->{'variant_count'};
+ $c->stash->{genealogical} = $t->{'genealogical_count'};
+ $c->stash->{conflict} = $t->{'conflict_count'};
+ # Also make a JSON stash of the data for the statistics tables
+ $c->stash->{reading_statistics} = to_json( $t->{'variants'} );
+ } else {
+ $c->stash->{error} = 'Tradition ' . $tradition->name
+ . 'has no stemma for analysis.';
+ }
}
=head2 end