X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=TreeOfTexts%2Flib%2FTreeOfTexts%2FController%2FRoot.pm;h=9707dfac4eb95e240f7d31b6fd863ef16bb936a9;hb=3837c155d39333869a93adf1e8375960ffbf3a92;hp=82cc961eea59fc1ef8e5c866d61644b454bdab46;hpb=eb1ac99d799cb00c69ec2620aa5087349f221cc0;p=scpubgit%2Fstemmatology.git diff --git a/TreeOfTexts/lib/TreeOfTexts/Controller/Root.pm b/TreeOfTexts/lib/TreeOfTexts/Controller/Root.pm index 82cc961..9707dfa 100644 --- a/TreeOfTexts/lib/TreeOfTexts/Controller/Root.pm +++ b/TreeOfTexts/lib/TreeOfTexts/Controller/Root.pm @@ -1,7 +1,8 @@ package TreeOfTexts::Controller::Root; use Moose; use namespace::autoclean; -use TreeOfTexts::Model::Analysis qw/ run_analysis /; +use Text::Tradition::Analysis qw/ run_analysis /; + BEGIN { extends 'Catalyst::Controller' } @@ -30,20 +31,39 @@ The root page (/) sub index :Path :Args(0) { my ( $self, $c ) = @_; - my $m = $c->model('Analysis'); - my $i = 0; - my @all_texts = map { $_->{'title'} } @{$m->{'data'}}; + my $m = $c->model('Directory'); + my @all_texts; + foreach my $id ( $m->traditions ) { + my $data = { + 'id' => $id, + 'name' => $m->tradition( $id )->name, + 'has_stemma' => defined $m->stemma( $id ), + }; + push( @all_texts, $data ); + } + $c->stash->{texts} = \@all_texts; $c->stash->{template} = 'frontpage.tt'; } -sub view_text :Local { +sub relationships :Local { + my( $self, $c ) = @_; + my $m = $c->model('Directory'); + my $tradition = $m->tradition( $c->request->params->{'textid'} ); + $c->stash->{alignment} = $tradition->collation->make_alignment_table( 'refs' ); + $c->stash->{template} = 'relationships.tt'; +} + +sub stexaminer :Local { my( $self, $c ) = @_; - my $m = $c->model('Analysis'); - my $t = $m->{'data'}->[ $c->request->params->{'textid'} ]; - $c->stash->{svg} = $t->{'svg'}; + my $m = $c->model('Directory'); + my $id = $c->request->params->{'textid'}; + my $tradition = $m->tradition( $id ); + my $stemma = $m->stemma( $id ); + my $t = run_analysis( $tradition, $stemma ); + $c->stash->{svg} = $stemma->as_svg; $c->stash->{variants} = $t->{'variants'}; - $c->stash->{text_title} = $t->{'title'}; + $c->stash->{text_title} = $tradition->name; $c->stash->{total} = $t->{'variant_count'}; $c->stash->{genealogical} = $t->{'genealogical_count'}; $c->stash->{conflict} = $t->{'conflict_count'}; @@ -52,21 +72,23 @@ sub view_text :Local { sub view_table :Local { my( $self, $c ) = @_; - my $m = $c->model( 'Analysis' ); - my $t = $m->{'data'}->[ $c->request->params->{'textid'} ]; + my $m = $c->model('Directory'); + my $id = $c->request->params->{'textid'}; + my $t = run_analysis( $m->tradition( $id ), $m->stemma( $id ) ); $c->stash->{variants} = $t->{'variants'}; $c->stash->{template} = 'table_gadget.tt'; } sub view_svg :Local { my( $self, $c ) = @_; - my $m = $c->model( 'Analysis' ); - my $t = $m->{'data'}->[ $c->request->params->{'textid'} ]; - $c->stash->{svg} = $t->{'svg'}; + my $m = $c->model('Directory'); + my $stemma = $m->stemma( $c->request->params->{'textid'} ); + if( $stemma ) { + $c->stash->{svg} = $stemma->as_svg; + } $c->stash->{template} = 'stemma_gadget.tt'; } - =head2 default Standard 404 error page