On Sun, 29 Jan 2012, Bernhard R. Link wrote: > This commit changes the project listing views (project_list, > project_index and opml) to limit the output to only projects in a > subdirectory if the new optional parameter ?pf=directory name is used. > > The change is quite minimal as git_get_projects_list already can limit > itself to a subdirectory (though that was previously only used for > 'forks'). > > If there is a GITWEB_LIST file, the contents are just filtered like > with the forks action. > > Without a GITWEB_LIST file only the given subdirectory is searched > for projects (like with forks) unless GITWEB_STRICT_EXPORT is enabled. > In the later case GITWEB_PROJECTROOT is traversed normally (unlike > with forks) and projects not in the directory ignored. > (As there is no check if the filter_path would have been found in > the usual search as the project path is checked with forks). I am still unsure if it is really necessary, but nevermind... > Reusing $project instead of adding a new parameter would have been > nicer from a UI point-of-view (including PATH_INFO support) but > would complicate the $project validating code that is currently being > used to ensure nothing is exported that should not be viewable. > > Signed-off-by: Bernhard R. Link <brlink@xxxxxxxxxx> Acked-by: Jakub Narebski <jnareb@xxxxxxxxx> > --- [...] > @@ -3823,6 +3836,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 = @_; > > @@ -3841,6 +3866,8 @@ sub print_nav_breadcrumbs { > print " / $opts{-action_extra}"; > } > print "\n"; > + } elsif (defined $project_filter) { > + print_nav_breadcrumbs_path(split '/', $project_filter); > } > } > This could have been split into a separate 2/3 commit, but nevermind; it can be squashed here. -- Jakub Narebski Poland -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html