aboutsummaryrefslogtreecommitdiff
path: root/gitweb
diff options
context:
space:
mode:
authorJakub Narebski <jnareb@gmail.com>2006-09-04 18:17:58 +0200
committerJunio C Hamano <junkio@cox.net>2006-09-04 15:46:44 -0700
commit762c7205f6700070fa3c18c8544a769461b2e567 (patch)
treebd2f78b356153c9039360adbf3a14d517cf17484 /gitweb
parent72dbafa1e6696b6acec59c22aa7e3d956cf9992f (diff)
downloadgit-762c7205f6700070fa3c18c8544a769461b2e567.tar.gz
git-762c7205f6700070fa3c18c8544a769461b2e567.tar.xz
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>
Diffstat (limited to 'gitweb')
-rwxr-xr-xgitweb/gitweb.perl29
1 files changed, 21 insertions, 8 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 6acbb5ef5..d89f709d1 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -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";
}
}