package EPrints::Plugin::Screen::EPrint::Box::Sneep; @ISA = ( 'EPrints::Plugin::Screen::EPrint::Box' ); use strict; sub render { my( $self ) = @_; my $session = $self->{session}; my $eprint = $self->{processor}->{eprint}; my $frag = $session->make_doc_fragment; my $sneep_types = $session->get_repository->config("sneep_types"); my $labels = {}; my $links = {}; my $panels = $session->make_element( 'div', id=>'sneep_item_panels', class=>'ep_tab_panel' ); my $current = $sneep_types->[0]; foreach my $sneep_type ( @$sneep_types ) { $labels->{$sneep_type} = $self->html_phrase( 'tab_'.$sneep_type ); $links->{$sneep_type} = ''; my $new_panel = $session->make_element( 'div', class=>($sneep_type eq $current ? '' : 'ep_no_js' ), id=>'sneep_item_panel_'.$sneep_type ); my $func_call = '_render_'.$sneep_type; if( defined \&$func_call ) { $new_panel->appendChild( $self->$func_call ); } $panels->appendChild( $new_panel ); } my $tab_block = $session->make_element( 'div', class=>'ep_only_js' ); my $tab_set = $session->render_tabs( id_prefix=>'sneep_item', current=>$current, tabs=>$sneep_types, labels=>$labels, links=>$links ); $tab_block->appendChild( $tab_set ); $frag->appendChild( $tab_block ); $frag->appendChild( $panels ); return $frag; } sub _render_comment { my( $self ) = @_; my $session = $self->{session}; my $eprint = $self->{processor}->{eprint}; my $comment_link = $session->make_element( "a", href=>'/cgi/sneep/sneep_page?eprintid='.$eprint->get_id."&type=comment", class=>'ep_sneep_type_comment' ); $comment_link->appendChild( $session->html_phrase( "sneep_comment_link" ) ); return $comment_link; } sub _render_note { my( $self ) = @_; my $session = $self->{session}; my $eprint = $self->{processor}->{eprint}; my $note_link = $session->make_element( "a", href=>'/cgi/sneep/sneep_page?eprintid='.$eprint->get_id.'&type=note', class=>'ep_sneep_type_note' ); $note_link->appendChild( $session->html_phrase( 'sneep_note_link' ) ); return $note_link; } sub _render_tag { my( $self ) = @_; my $session = $self->{session}; my $eprint = $self->{processor}->{eprint}; my $tag_link = $session->make_element( "a", href=>'/cgi/sneep/sneep_page?eprintid='.$eprint->get_id.'&type=tag', class=>'ep_sneep_type_tag' ); $tag_link->appendChild( $session->html_phrase( 'sneep_tag_link' ) ); return $tag_link; } 1;