10 our @ISA = qw(Exporter);
11 our @EXPORT = qw(html_esc);
13 use CGI
qw(:standard :escapeHTML -nosticky);
14 use CGI
::Util
qw(unescape);
15 use CGI
::Carp
qw(fatalsToBrowser);
21 my ($heading, $section, $extraheadhtml) = @_;
24 $heading = CGI
::escapeHTML
($heading || '');
25 $section = CGI
::escapeHTML
($section || 'administration');
26 # $extraheadhtml is optional RAW html code to include, DO NOT escapeHTML it!
27 $extraheadhtml = $extraheadhtml || '';
28 my $name = CGI
::escapeHTML
($Girocco::Config
::name
|| '');
30 $gcgi->{cgi
} = CGI
->new;
32 my $cgiurl = $gcgi->{cgi
}->url(-absolute
=> 1);
33 ($gcgi->{srcname
}) = ($cgiurl =~ m
#^.*/\([a-zA-Z0-9_.\/-]+?\.cgi\)$#); #
34 $gcgi->{srcname
} = "cgi/".$gcgi->{srcname
} if $gcgi->{srcname
};
36 print $gcgi->{cgi
}->header(-type
=>'text/html', -charset
=> 'utf-8');
39 <?xml version="1.0" encoding="utf-8"?>
40 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
41 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
44 <title>$name :: $heading</title>
45 <link rel="stylesheet" type="text/css" href="$Girocco::Config::gitwebfiles/gitweb.css"/>
46 <link rel="stylesheet" type="text/css" href="$Girocco::Config::gitwebfiles/girocco.css"/>
47 <link rel="shortcut icon" href="$Girocco::Config::gitwebfiles/git-favicon.png" type="image/png"/>
48 <script src="$Girocco::Config::gitwebfiles/mootools.js" type="text/javascript"></script>
49 <script src="$Girocco::Config::gitwebfiles/girocco.js" type="text/javascript"></script>
54 <div class="page_header">
55 <a href="http://git.or.cz/" title="Git homepage"><img src="$Girocco::Config::gitwebfiles/git-logo.png" width="72" height="27" alt="git" style="float:right; border-width:0px;"/></a>
56 <a href="$Girocco::Config::gitweburl">$name</a> / $section / $heading
66 if ($self->{srcname
} and $Girocco::Config
::giroccourl
) {
67 my $hb = $Girocco::Config
::giroccobranch ?
68 "hb=$Girocco::Config::giroccobranch;" : "";
71 <a href="$Girocco::Config::giroccourl?a=blob;${hb}f=$self->{srcname}">(view source)</a>
88 print "<p style=\"color: red\">@_</p>\n";
94 my $err = $self->{err
}||0;
95 my $s = $err == 1 ?
'' : 's';
96 $err and print "<p style=\"font-weight: bold\">Operation aborted due to $err error$s.</p>\n";
103 my $val = $self->{cgi
}->param($param);
104 defined $val and $val =~ s/^\s*(.*?)\s*$/$1/;
111 $self->{srcname
} = $srcname if $srcname;
118 $str =~ s/</</g; $str =~ s/>/>/g;
119 $str =~ s/"/"/g;
123 sub print_form_fields
{
125 my ($fieldmap, $valuemap, @fields) = @_;
127 foreach my $field (map { $fieldmap->{$_} } @fields) {
128 print '<tr><td class="formlabel">'.$field->[0].':</td><td>';
129 if ($field->[2] eq 'text') {
130 print '<input type="text" name="'.$field->[1].'" size="80"';
131 print ' value="'.$valuemap->{$field->[1]}.'"' if $valuemap;
134 print '<textarea name="'.$field->[1].'" rows="5" cols="80">';
135 print $valuemap->{$field->[1]} if $valuemap;
138 print "</td></tr>\n";