Re: [PATCHv5 04/12] gitweb: nagivation menu for tags, heads and remotes
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Sep 26, 2010, 17:52 UTC
- Message-ID
- <201009261952.07803.jnareb@gmail.com>
- In-Reply-To
- <1285344167-8518-5-git-send-email-giuseppe.bilotta@gmail.com>
On Fri, 24 Sep 2010, Giuseppe Bilotta wrote:
Show 5 quoted lines
> tags, heads and remotes are all views that inspect a (particular class > of) refs, so allow the user to easily switch between them by adding > the appropriate navigation submenu to each view. > > Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Nice idea. FWIW
Acked-by: Jakub Narebski <jnareb@gmail.com>
Show 16 quoted lines
> ---
> gitweb/gitweb.perl | 20 +++++++++++++++++---
> 1 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index fe9f73e..c3ce7a3 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -3721,6 +3721,20 @@ sub git_print_page_nav {
> "</div>\n";
> }
>
> +# returns a submenu for the nagivation of the refs views (tags, heads,
> +# remotes) with the current view disabled and the remotes view only
> +# available if the feature is enabled
> +Minor nitpick: this empty line here is not necessary. But I think that Junio can remove it when applying.
> +sub format_ref_views {
> + my ($current) = @_;
> + my @ref_views = qw{tags heads};Hmmm... should we pass it as argument, or use $action in place of $current? Each solution has its advantages and disadvantages. Current solution has the advantage of avoiding using global variables, solution using $action has the (supposed) advantage of automatically detecting current action.
I would probably write
+ my $current) = shift; + my @ref_views = qw(tags heads);
but it makes no difference, and this style is also good.
Show 6 quoted lines
> + push @ref_views, 'remotes' if gitweb_check_feature('remote_heads');
> + return join " | ", map {
> + $_ eq $current ? $_ :
> + $cgi->a({-href => href(action=>$_, -replay=>1)}, $_)
> + } @ref_views
> +}[...]
> - git_print_page_nav('','', $head,undef,$head);
> + git_print_page_nav('','', $head,undef,$head,format_ref_views('tags'));> - git_print_page_nav('','', $head,undef,$head);
> + git_print_page_nav('','', $head,undef,$head,format_ref_views('heads'));> - git_print_page_nav('','', $head,undef,$head);
> + git_print_page_nav('','', $head,undef,$head,format_ref_views('remotes'));Nice API. I like it.
-- Jakub Narebski Poland