Browse Source

gitweb: Divide page path into directories -- path's "breadcrumbs"

Divide page path into directories, so that each part of path links to
the "tree" view of the $hash_base (or HEAD, if $hash_base is not set)
version of the directory.

If the entity is blob, final part (basename) links to $hash_base or
HEAD revision of the "raw" blob ("blob_plain" view).  If the entity is
tree, link to the "tree" view.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Jakub Narebski 19 years ago committed by Junio C Hamano
parent
commit
762c7205f6
  1. 29
      gitweb/gitweb.perl

29
gitweb/gitweb.perl

@ -1405,19 +1405,32 @@ sub git_print_page_path { @@ -1405,19 +1405,32 @@ sub git_print_page_path {

if (!defined $name) {
print "<div class=\"page_path\">/</div>\n";
} elsif (defined $type && $type eq 'blob') {
} else {
my @dirname = split '/', $name;
my $basename = pop @dirname;
my $fullname = '';

print "<div class=\"page_path\">";
if (defined $hb) {
foreach my $dir (@dirname) {
$fullname .= $dir . '/';
print $cgi->a({-href => href(action=>"tree", file_name=>$fullname,
hash_base=>$hb),
-title => $fullname}, esc_html($dir));
print "/";
}
if (defined $type && $type eq 'blob') {
print $cgi->a({-href => href(action=>"blob_plain", file_name=>$file_name,
hash_base=>$hb)},
esc_html($name));
hash_base=>$hb),
-title => $name}, esc_html($basename));
} elsif (defined $type && $type eq 'tree') {
print $cgi->a({-href => href(action=>"tree", file_name=>$file_name,
hash_base=>$hb),
-title => $name}, esc_html($basename));
print "/";
} else {
print $cgi->a({-href => href(action=>"blob_plain", file_name=>$file_name)},
esc_html($name));
print esc_html($basename);
}
print "<br/></div>\n";
} else {
print "<div class=\"page_path\">" . esc_html($name) . "<br/></div>\n";
}
}


Loading…
Cancel
Save