On Fri, 24 Sep 2010, Giuseppe Bilotta wrote: > 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@xxxxxxxxx> Nice idea. FWIW Acked-by: Jakub Narebski <jnareb@xxxxxxxxx> > --- > 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. > + 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 -- 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