Mercurial > repos > cpt > cpt_psm_recombine
view lib/CPT/Report/HTML.pm @ 1:97ef96676b48 draft
planemo upload commit 94b0cd1fff0826c6db3e7dc0c91c0c5a8be8bb0c
author | cpt |
---|---|
date | Mon, 05 Jun 2023 02:51:26 +0000 |
parents | |
children |
line wrap: on
line source
package CPT::Report::HTML; no warnings; use Moose; use Carp; with 'CPT::Report'; use CGI; has cgi => ( is => 'rw', isa => 'Any', default => sub { CGI->new(); }, # other attributes ); sub header { my ($self) = @_; return $self->cgi()->start_html( -style => { -src => ['http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css','http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css'] } ); } sub footer{ my ($self) = @_; return $self->cgi()->end_html(); } sub h1{ my ($self, $addition) = @_; $self->a($self->cgi()->h1($addition)); } sub h2{ my ($self, $addition) = @_; $self->a($self->cgi()->h2($addition)); } sub h3{ my ($self, $addition) = @_; $self->a($self->cgi()->h3($addition)); } sub h4{ my ($self, $addition) = @_; $self->a($self->cgi()->h4($addition)); } sub h5{ my ($self, $addition) = @_; $self->a($self->cgi()->h5($addition)); } sub h6{ my ($self, $addition) = @_; $self->a($self->cgi()->h6($addition)); } sub p{ my ($self, $addition) = @_; $self->a($self->cgi()->p($addition)); } sub b{ my ($self, $addition) = @_; $self->a($self->cgi()->b($addition)); } sub finalize_table{ my ($self) = @_; my @td; if(defined $self->_table_header() && scalar @{$self->_table_header()} > 0 ){ push(@td, $self->cgi->th($self->_table_header())); } foreach(@{$self->_table_data()}){ push(@td, $self->cgi->td($_)); } $self->a($self->cgi()->table( {-class => "table table-striped"}, $self->cgi->Tr(\@td) ) ); # Reset for next usage $self->_table_header([]); $self->_table_data([]); } has _table_header => ( is => 'rw', isa => 'ArrayRef', ); has _table_data => ( is => 'rw', isa => 'ArrayRef', default => sub { [] }, ); sub table_header { my ($self, @values) = @_; $self->_table_header(\@values); } sub table_row { my ($self, @values) = @_; my @current = @{$self->_table_data()}; push(@current, \@values); $self->_table_data(\@current); } sub list_start { my ($self, $type) = @_; if($type ne 'number' && $type ne 'bullet'){ carp 'Must use number or bullet as list type'; } if($self->_list_type() eq 'number'){ $self->a('<ol>'); }else{ $self->a('<ul>'); } $self->_list_type($type); } sub list_end { my ($self) = @_; if($self->_list_type() eq 'number'){ $self->a('</ol>'); }else{ $self->a('</ul>'); } } sub list_element { my ($self, $element_text) = @_; $element_text =~ s{&}{&}gso; $element_text =~ s{<}{<}gso; $element_text =~ s{>}{>}gso; $element_text =~ s{"}{"}gso; $self->a(sprintf('<li>%s</li>', $element_text)); } no Moose; 1; __END__ =pod =encoding UTF-8 =head1 NAME CPT::Report::HTML =head1 VERSION version 1.99.4 =head1 AUTHOR Eric Rasche <rasche.eric@yandex.ru> =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2014 by Eric Rasche. This is free software, licensed under: The GNU General Public License, Version 3, June 2007 =cut