git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 1/2] gitweb: add project_filter to limit project list to a subdirectory

From
Jakub Narebski <jnareb@gmail.com>
Date
Jan 29, 2012, 16:41 UTC
Message-ID
<201201291741.58532.jnareb@gmail.com>
In-Reply-To
<20120129160615.GA13937@server.brlink.eu>
On Sun, 29 Jan 2012, Bernhard R. Link wrote:
Show 17 quoted lines
> 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...
 
Show 6 quoted lines
> 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@debian.org>
Acked-by: Jakub Narebski <jnareb@gmail.com>
> ---
[...]
Show 28 quoted lines
> @@ -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
Previous: Jakub NarebskiNext: Junio C Hamano
Message 10 of 40 in “gitweb: add project_filter to limit project list to a subdirectory”
  1. 1/2 gitweb: add project_filter to limit project list to a subdirectoryBernhard R. Link, Jan 28, 2012
  2. 2/2 gitweb: place links to parent directories in page headerBernhard R. Link, Jan 28, 2012
  3. Jakub NarebskiJan 28, 2012
  4. Jakub NarebskiJan 28, 2012
  5. gitweb: add project_filter to limit project list to a subdirectoryBernhard R. Link, Jan 29, 2012
  6. Jakub NarebskiJan 29, 2012
  7. 1/2 gitweb: add project_filter to limit project list to a subdirectoryBernhard R. Link, Jan 29, 2012
  8. 2/2 gitweb: place links to parent directories in page headerBernhard R. Link, Jan 29, 2012
  9. Jakub NarebskiJan 29, 2012
  10. Jakub NarebskiJan 29, 2012
  11. Junio C HamanoJan 29, 2012
  12. Jakub NarebskiJan 29, 2012
  13. Bernhard R. LinkJan 30, 2012
  14. 1/5 gitweb: prepare git_get_projects_list for use outside 'forks'.Bernhard R. Link, Jan 30, 2012
  15. Jakub NarebskiJan 30, 2012
  16. 1/5 gitweb: prepare git_get_projects_list for use outside 'forks'.Bernhard R. Link, Jan 30, 2012
  17. Jakub NarebskiJan 30, 2012
  18. Bernhard R. LinkJan 30, 2012
  19. 2/5 gitweb: add project_filter to limit project list to a subdirectoryBernhard R. Link, Jan 30, 2012
  20. Jakub NarebskiJan 30, 2012
  21. Bernhard R. LinkJan 30, 2012
  22. 1/6 gitweb: move hard coded .git suffix out of git_get_projects_listBernhard R. Link, Jan 30, 2012
  23. 2/6 gitweb: prepare git_get_projects_list for use outside 'forks'.Bernhard R. Link, Jan 30, 2012
  24. 3/6 gitweb: add project_filter to limit project list to a subdirectoryBernhard R. Link, Jan 30, 2012
  25. 4/6 gitweb: limit links to alternate forms of project_list to active project_filterBernhard R. Link, Jan 30, 2012
  26. 5/6 gitweb: show active project_filter in project_list page headerBernhard R. Link, Jan 30, 2012
  27. 6/6 gitweb: place links to parent directories in page headerBernhard R. Link, Jan 30, 2012
  28. Junio C HamanoJan 30, 2012
  29. Jakub NarebskiJan 30, 2012
  30. Junio C HamanoJan 30, 2012
  31. Junio C HamanoJan 30, 2012
  32. Bernhard R. LinkJan 30, 2012
  33. Bernhard R. LinkFeb 1, 2012
  34. Junio C HamanoFeb 1, 2012
  35. 3/5 gitweb: limit links to alternate forms of project_list to active project_filterBernhard R. Link, Jan 30, 2012
  36. Jakub NarebskiJan 30, 2012
  37. 4/5 gitweb: show active project_filter in project_list page headerBernhard R. Link, Jan 30, 2012
  38. Jakub NarebskiJan 30, 2012
  39. 5/5 gitweb: place links to parent directories in page headerBernhard R. Link, Jan 30, 2012
  40. Jakub NarebskiJan 30, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.