gitweb: Headers refactoring - use git_header_div for header divs

Add git_header_div subroutine which prints "header" divs, now with
class "header" (class "title" is taken, and has set CSS style,
changing appereance and maing layout wrong), and use it thorough
gitweb.cgi.  Change header linking to project summary from empty
(  as a contents of link) to having $project as contents/name
of link.  Sometimes a little reordering.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Jakub Narebski
2006-07-30 20:32:01 +02:00
committed by Junio C Hamano
parent 6855f42ecd
commit 27fb8c40c6

View File

@ -420,6 +420,19 @@ sub git_page_nav {
"</div>\n"; "</div>\n";
} }
sub git_header_div {
my ($action, $title, $hash, $hash_base) = @_;
my $rest = '';
$rest .= ";h=$hash" if $hash;
$rest .= ";hb=$hash_base" if $hash_base;
print "<div class=\"header\">\n" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=$action$rest"),
-class => "title"}, $title ? $title : $action) . "\n" .
"</div>\n";
}
sub git_get_paging_nav { sub git_get_paging_nav {
my ($action, $hash, $head, $page, $nrevs) = @_; my ($action, $hash, $head, $page, $nrevs) = @_;
my $paging_nav; my $paging_nav;
@ -1123,9 +1136,7 @@ sub git_summary {
or die_error(undef, "Open git-rev-list failed."); or die_error(undef, "Open git-rev-list failed.");
my @revlist = map { chomp; $_ } <$fd>; my @revlist = map { chomp; $_ } <$fd>;
close $fd; close $fd;
print "<div>\n" . git_header_div('shortlog');
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=shortlog"), -class => "title"}, "shortlog") .
"</div>\n";
my $i = 16; my $i = 16;
print "<table cellspacing=\"0\">\n"; print "<table cellspacing=\"0\">\n";
my $alternate = 0; my $alternate = 0;
@ -1169,9 +1180,7 @@ sub git_summary {
my $taglist = git_read_refs("refs/tags"); my $taglist = git_read_refs("refs/tags");
if (defined @$taglist) { if (defined @$taglist) {
print "<div>\n" . git_header_div('tags');
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=tags"), -class => "title"}, "tags") .
"</div>\n";
my $i = 16; my $i = 16;
print "<table cellspacing=\"0\">\n"; print "<table cellspacing=\"0\">\n";
my $alternate = 0; my $alternate = 0;
@ -1221,9 +1230,7 @@ sub git_summary {
my $headlist = git_read_refs("refs/heads"); my $headlist = git_read_refs("refs/heads");
if (defined @$headlist) { if (defined @$headlist) {
print "<div>\n" . git_header_div('heads');
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=heads"), -class => "title"}, "heads") .
"</div>\n";
my $i = 16; my $i = 16;
print "<table cellspacing=\"0\">\n"; print "<table cellspacing=\"0\">\n";
my $alternate = 0; my $alternate = 0;
@ -1276,9 +1283,7 @@ sub git_tag {
git_header_html(); git_header_html();
git_page_nav('','', $head,undef,$head); git_page_nav('','', $head,undef,$head);
my %tag = git_read_tag($hash); my %tag = git_read_tag($hash);
print "<div>\n" . git_header_div('commit', esc_html($tag{'name'}), $hash);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash"), -class => "title"}, esc_html($tag{'name'})) . "\n" .
"</div>\n";
print "<div class=\"title_text\">\n" . print "<div class=\"title_text\">\n" .
"<table cellspacing=\"0\">\n" . "<table cellspacing=\"0\">\n" .
"<tr>\n" . "<tr>\n" .
@ -1326,9 +1331,7 @@ sub git_blame2 {
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$hash;hb=$hash_base;f=$file_name")}, "blob") . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$hash;hb=$hash_base;f=$file_name")}, "blob") .
" | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blame;f=$file_name")}, "head"); " | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blame;f=$file_name")}, "head");
git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav); git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
print "<div>" . git_header_div('commit', esc_html($co{'title'}), $hash_base);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash_base"), -class => "title"}, esc_html($co{'title'})) .
"</div>\n";
git_print_page_path($file_name, $ftype); git_print_page_path($file_name, $ftype);
my @rev_color = (qw(light dark)); my @rev_color = (qw(light dark));
my $num_colors = scalar(@rev_color); my $num_colors = scalar(@rev_color);
@ -1382,9 +1385,7 @@ sub git_blame {
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$hash;hb=$hash_base;f=$file_name")}, "blob") . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$hash;hb=$hash_base;f=$file_name")}, "blob") .
" | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blame;f=$file_name")}, "head"); " | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blame;f=$file_name")}, "head");
git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav); git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
print "<div>" . git_header_div('commit', esc_html($co{'title'}), $hash_base);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash_base"), -class => "title"}, esc_html($co{'title'})) .
"</div>\n";
git_print_page_path($file_name); git_print_page_path($file_name);
print "<div class=\"page_body\">\n"; print "<div class=\"page_body\">\n";
print <<HTML; print <<HTML;
@ -1460,11 +1461,10 @@ sub git_tags {
my $head = git_read_head($project); my $head = git_read_head($project);
git_header_html(); git_header_html();
git_page_nav('','', $head,undef,$head); git_page_nav('','', $head,undef,$head);
my $taglist = git_read_refs("refs/tags"); git_header_div('summary', $project);
print "<div>\n" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=summary"), -class => "title"}, "&nbsp;") .
"</div>\n";
print "<table cellspacing=\"0\">\n"; print "<table cellspacing=\"0\">\n";
my $taglist = git_read_refs("refs/tags");
my $alternate = 0; my $alternate = 0;
if (defined @$taglist) { if (defined @$taglist) {
foreach my $entry (@$taglist) { foreach my $entry (@$taglist) {
@ -1511,11 +1511,10 @@ sub git_heads {
my $head = git_read_head($project); my $head = git_read_head($project);
git_header_html(); git_header_html();
git_page_nav('','', $head,undef,$head); git_page_nav('','', $head,undef,$head);
my $taglist = git_read_refs("refs/heads"); hit_header_div('summary', $project);
print "<div>\n" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=summary"), -class => "title"}, "&nbsp;") .
"</div>\n";
print "<table cellspacing=\"0\">\n"; print "<table cellspacing=\"0\">\n";
my $taglist = git_read_refs("refs/heads");
my $alternate = 0; my $alternate = 0;
if (defined @$taglist) { if (defined @$taglist) {
foreach my $entry (@$taglist) { foreach my $entry (@$taglist) {
@ -1684,9 +1683,7 @@ sub git_blob {
$formats_nav .= $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob_plain;h=$hash")}, "plain"); $formats_nav .= $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob_plain;h=$hash")}, "plain");
} }
git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav); git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
print "<div>" . git_header_div('commit', esc_html($co{'title'}), $hash_base);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash_base"), -class => "title"}, esc_html($co{'title'})) .
"</div>\n";
} else { } else {
print "<div class=\"page_nav\">\n" . print "<div class=\"page_nav\">\n" .
"<br/><br/></div>\n" . "<br/><br/></div>\n" .
@ -1740,9 +1737,7 @@ sub git_tree {
if (defined $hash_base && (my %co = git_read_commit($hash_base))) { if (defined $hash_base && (my %co = git_read_commit($hash_base))) {
$base_key = ";hb=$hash_base"; $base_key = ";hb=$hash_base";
git_page_nav('tree','', $hash_base); git_page_nav('tree','', $hash_base);
print "<div>\n" . git_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash_base"), -class => "title"}, esc_html($co{'title'}) . $ref) . "\n" .
"</div>\n";
} else { } else {
print "<div class=\"page_nav\">\n"; print "<div class=\"page_nav\">\n";
print "<br/><br/></div>\n"; print "<br/><br/></div>\n";
@ -1909,10 +1904,9 @@ sub git_log {
git_page_nav('log','', $hash,undef,undef, $paging_nav); git_page_nav('log','', $hash,undef,undef, $paging_nav);
if (!@revlist) { if (!@revlist) {
print "<div>\n" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=summary"), -class => "title"}, "&nbsp;") .
"</div>\n";
my %co = git_read_commit($hash); my %co = git_read_commit($hash);
git_header_div('summary', $project);
print "<div class=\"page_body\"> Last change $co{'age_string'}.<br/><br/></div>\n"; print "<div class=\"page_body\"> Last change $co{'age_string'}.<br/><br/></div>\n";
} }
for (my $i = ($page * 100); $i <= $#revlist; $i++) { for (my $i = ($page * 100); $i <= $#revlist; $i++) {
@ -1924,10 +1918,10 @@ sub git_log {
my %co = git_read_commit($commit); my %co = git_read_commit($commit);
next if !%co; next if !%co;
my %ad = date_str($co{'author_epoch'}); my %ad = date_str($co{'author_epoch'});
print "<div>\n" . git_header_div('commit',
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit"), -class => "title"}, "<span class=\"age\">$co{'age_string'}</span>" .
"<span class=\"age\">$co{'age_string'}</span>" . esc_html($co{'title'}) . $ref) . "\n"; esc_html($co{'title'}) . $ref,
print "</div>\n"; $commit);
print "<div class=\"title_text\">\n" . print "<div class=\"title_text\">\n" .
"<div class=\"log_link\">\n" . "<div class=\"log_link\">\n" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit")}, "commit") . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit")}, "commit") .
@ -1999,13 +1993,9 @@ sub git_commit {
$formats_nav); $formats_nav);
if (defined $co{'parent'}) { if (defined $co{'parent'}) {
print "<div>\n" . git_header_div('commitdiff', esc_html($co{'title'}) . $ref, $hash);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commitdiff;h=$hash"), -class => "title"}, esc_html($co{'title'}) . $ref) . "\n" .
"</div>\n";
} else { } else {
print "<div>\n" . git_header_div('tree', esc_html($co{'title'}), $co{'tree'}, $hash);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=tree;h=$co{'tree'};hb=$hash"), -class => "title"}, esc_html($co{'title'})) . "\n" .
"</div>\n";
} }
print "<div class=\"title_text\">\n" . print "<div class=\"title_text\">\n" .
"<table cellspacing=\"0\">\n"; "<table cellspacing=\"0\">\n";
@ -2171,9 +2161,7 @@ sub git_blobdiff {
my $formats_nav = my $formats_nav =
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blobdiff_plain;h=$hash;hp=$hash_parent")}, "plain"); $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blobdiff_plain;h=$hash;hp=$hash_parent")}, "plain");
git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav); git_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
print "<div>\n" . git_header_div('commit', esc_html($co{'title'}), $hash_base);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash_base"), -class => "title"}, esc_html($co{'title'})) . "\n" .
"</div>\n";
} else { } else {
print "<div class=\"page_nav\">\n" . print "<div class=\"page_nav\">\n" .
"<br/><br/></div>\n" . "<br/><br/></div>\n" .
@ -2225,9 +2213,7 @@ sub git_commitdiff {
my $formats_nav = my $formats_nav =
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commitdiff_plain;h=$hash;hp=$hash_parent")}, "plain"); $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commitdiff_plain;h=$hash;hp=$hash_parent")}, "plain");
git_page_nav('commitdiff','', $hash,$co{'tree'},$hash, $formats_nav); git_page_nav('commitdiff','', $hash,$co{'tree'},$hash, $formats_nav);
print "<div>\n" . git_header_div('commit', esc_html($co{'title'}) . $ref, $hash);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash"), -class => "title"}, esc_html($co{'title'}) . $ref) . "\n" .
"</div>\n";
print "<div class=\"page_body\">\n"; print "<div class=\"page_body\">\n";
my $comment = $co{'comment'}; my $comment = $co{'comment'};
my $empty = 0; my $empty = 0;
@ -2357,9 +2343,7 @@ sub git_history {
my $refs = read_info_ref(); my $refs = read_info_ref();
git_header_html(); git_header_html();
git_page_nav('','', $hash_base,$co{'tree'},$hash_base); git_page_nav('','', $hash_base,$co{'tree'},$hash_base);
print "<div>\n" . git_header_div('commit', esc_html($co{'title'}), $hash_base);
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash_base"), -class => "title"}, esc_html($co{'title'})) . "\n" .
"</div>\n";
if (!defined $hash && defined $file_name) { if (!defined $hash && defined $file_name) {
$hash = git_get_hash_by_path($hash_base, $file_name); $hash = git_get_hash_by_path($hash_base, $file_name);
} }
@ -2440,10 +2424,8 @@ sub git_search {
} }
git_header_html(); git_header_html();
git_page_nav('','', $hash,$co{'tree'},$hash); git_page_nav('','', $hash,$co{'tree'},$hash);
git_header_div('commit', esc_html($co{'title'}), $hash);
print "<div>\n" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$hash"), -class => "title"}, esc_html($co{'title'})) . "\n" .
"</div>\n";
print "<table cellspacing=\"0\">\n"; print "<table cellspacing=\"0\">\n";
my $alternate = 0; my $alternate = 0;
if ($commit_search) { if ($commit_search) {
@ -2570,10 +2552,8 @@ sub git_shortlog {
git_header_html(); git_header_html();
git_page_nav('shortlog','', $hash,$hash,$hash, $paging_nav); git_page_nav('shortlog','', $hash,$hash,$hash, $paging_nav);
git_header_div('summary', $project);
print "<div>\n" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=summary"), -class => "title"}, "&nbsp;") .
"</div>\n";
print "<table cellspacing=\"0\">\n"; print "<table cellspacing=\"0\">\n";
my $alternate = 0; my $alternate = 0;
for (my $i = ($page * 100); $i <= $#revlist; $i++) { for (my $i = ($page * 100); $i <= $#revlist; $i++) {