gitweb: show active project_filter in project_list page header
authorBernhard R. Link <brl+git@mail.brlink.eu>
Mon, 30 Jan 2012 20:09:43 +0000 (21:09 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Feb 2012 20:52:49 +0000 (12:52 -0800)
In the page header of a project_list view with a project_filter
given show breadcrumbs in the page headers showing which directory
it is currently limited to and also containing links to the parent
directories.

Signed-off-by: Bernhard R. Link <brlink@debian.org>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl

index ecd4a39d22768c5ac7a577ae43928d3aea28867f..7d36f563e4236ce03acfda403b11f10f4eccf5b1 100755 (executable)
@@ -3839,6 +3839,18 @@ sub print_header_links {
        }
 }
 
+sub print_nav_breadcrumbs_path {
+       my $dirprefix = undef;
+       while (my $part = shift) {
+               $dirprefix .= "/" if defined $dirprefix;
+               $dirprefix .= $part;
+               print $cgi->a({-href => href(project => undef,
+                                            project_filter => $dirprefix,
+                                            action => "project_list")},
+                             esc_html($part)) . " / ";
+       }
+}
+
 sub print_nav_breadcrumbs {
        my %opts = @_;
 
@@ -3857,6 +3869,8 @@ sub print_nav_breadcrumbs {
                        print " / $opts{-action_extra}";
                }
                print "\n";
+       } elsif (defined $project_filter) {
+               print_nav_breadcrumbs_path(split '/', $project_filter);
        }
 }