diff options
author | Jakub Narebski <jnareb@gmail.com> | 2006-09-04 18:17:58 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-09-04 15:46:44 -0700 |
commit | 762c7205f6700070fa3c18c8544a769461b2e567 (patch) | |
tree | bd2f78b356153c9039360adbf3a14d517cf17484 /gitweb | |
parent | 72dbafa1e6696b6acec59c22aa7e3d956cf9992f (diff) | |
download | git-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-x | gitweb/gitweb.perl | 29 |
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"; } } |