annotate cpt_psm_recombine/lib/CPT/Report/HTML.pm @ 0:b18e8268bf4e draft

Uploaded
author cpt
date Tue, 05 Jul 2022 05:05:13 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
1 package CPT::Report::HTML;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
2 no warnings;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
3 use Moose;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
4 use Carp;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
5 with 'CPT::Report';
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
6 use CGI;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
7
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
8 has cgi => (
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
9 is => 'rw',
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
10 isa => 'Any',
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
11 default => sub {
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
12 CGI->new();
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
13 },
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
14 # other attributes
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
15 );
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
16
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
17 sub header {
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
18 my ($self) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
19 return $self->cgi()->start_html(
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
20 -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'] }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
21 );
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
22 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
23
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
24 sub footer{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
25 my ($self) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
26 return $self->cgi()->end_html();
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
27 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
28 sub h1{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
29 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
30 $self->a($self->cgi()->h1($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
31 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
32 sub h2{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
33 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
34 $self->a($self->cgi()->h2($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
35 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
36 sub h3{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
37 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
38 $self->a($self->cgi()->h3($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
39 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
40 sub h4{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
41 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
42 $self->a($self->cgi()->h4($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
43 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
44 sub h5{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
45 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
46 $self->a($self->cgi()->h5($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
47 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
48 sub h6{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
49 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
50 $self->a($self->cgi()->h6($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
51 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
52 sub p{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
53 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
54 $self->a($self->cgi()->p($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
55 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
56 sub b{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
57 my ($self, $addition) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
58 $self->a($self->cgi()->b($addition));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
59 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
60
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
61 sub finalize_table{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
62 my ($self) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
63 my @td;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
64 if(defined $self->_table_header() && scalar @{$self->_table_header()} > 0 ){
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
65 push(@td, $self->cgi->th($self->_table_header()));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
66 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
67 foreach(@{$self->_table_data()}){
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
68 push(@td, $self->cgi->td($_));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
69 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
70
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
71 $self->a($self->cgi()->table(
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
72 {-class => "table table-striped"},
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
73 $self->cgi->Tr(\@td)
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
74 )
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
75 );
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
76
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
77 # Reset for next usage
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
78 $self->_table_header([]);
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
79 $self->_table_data([]);
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
80 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
81
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
82 has _table_header => (
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
83 is => 'rw',
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
84 isa => 'ArrayRef',
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
85 );
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
86 has _table_data => (
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
87 is => 'rw',
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
88 isa => 'ArrayRef',
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
89 default => sub { [] },
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
90 );
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
91
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
92
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
93 sub table_header {
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
94 my ($self, @values) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
95 $self->_table_header(\@values);
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
96 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
97
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
98 sub table_row {
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
99 my ($self, @values) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
100 my @current = @{$self->_table_data()};
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
101 push(@current, \@values);
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
102 $self->_table_data(\@current);
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
103 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
104
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
105 sub list_start {
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
106 my ($self, $type) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
107 if($type ne 'number' && $type ne 'bullet'){
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
108 carp 'Must use number or bullet as list type';
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
109 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
110 if($self->_list_type() eq 'number'){
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
111 $self->a('<ol>');
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
112 }else{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
113 $self->a('<ul>');
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
114 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
115 $self->_list_type($type);
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
116 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
117
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
118 sub list_end {
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
119 my ($self) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
120 if($self->_list_type() eq 'number'){
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
121 $self->a('</ol>');
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
122 }else{
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
123 $self->a('</ul>');
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
124 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
125 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
126
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
127 sub list_element {
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
128 my ($self, $element_text) = @_;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
129 $element_text =~ s{&}{&amp;}gso;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
130 $element_text =~ s{<}{&lt;}gso;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
131 $element_text =~ s{>}{&gt;}gso;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
132 $element_text =~ s{"}{&quot;}gso;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
133 $self->a(sprintf('<li>%s</li>', $element_text));
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
134 }
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
135
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
136 no Moose;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
137 1;
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
138
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
139 __END__
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
140
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
141 =pod
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
142
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
143 =encoding UTF-8
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
144
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
145 =head1 NAME
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
146
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
147 CPT::Report::HTML
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
148
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
149 =head1 VERSION
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
150
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
151 version 1.99.4
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
152
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
153 =head1 AUTHOR
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
154
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
155 Eric Rasche <rasche.eric@yandex.ru>
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
156
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
157 =head1 COPYRIGHT AND LICENSE
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
158
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
159 This software is Copyright (c) 2014 by Eric Rasche.
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
160
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
161 This is free software, licensed under:
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
162
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
163 The GNU General Public License, Version 3, June 2007
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
164
b18e8268bf4e Uploaded
cpt
parents:
diff changeset
165 =cut