gitweb: nagivation menu for tags, heads and remotes

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>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Giuseppe Bilotta 2010-11-11 13:26:12 +01:00 committed by Junio C Hamano
parent 00fa6fef63
commit 11e7bece15

View File

@ -3733,6 +3733,19 @@ 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
sub format_ref_views {
my ($current) = @_;
my @ref_views = qw{tags heads};
push @ref_views, 'remotes' if gitweb_check_feature('remote_heads');
return join " | ", map {
$_ eq $current ? $_ :
$cgi->a({-href => href(action=>$_)}, $_)
} @ref_views
}
sub format_paging_nav {
my ($action, $page, $has_next_link) = @_;
my $paging_nav;
@ -5509,7 +5522,7 @@ sub git_blame_data {
sub git_tags {
my $head = git_get_head_hash($project);
git_header_html();
git_print_page_nav('','', $head,undef,$head);
git_print_page_nav('','', $head,undef,$head,format_ref_views('tags'));
git_print_header_div('summary', $project);
my @tagslist = git_get_tags_list();
@ -5522,7 +5535,7 @@ sub git_tags {
sub git_heads {
my $head = git_get_head_hash($project);
git_header_html();
git_print_page_nav('','', $head,undef,$head);
git_print_page_nav('','', $head,undef,$head,format_ref_views('heads'));
git_print_header_div('summary', $project);
my @headslist = git_get_heads_list();
@ -5538,7 +5551,7 @@ sub git_remotes {
my $head = git_get_head_hash($project);
git_header_html();
git_print_page_nav('','', $head,undef,$head);
git_print_page_nav('','', $head,undef,$head,format_ref_views('remotes'));
git_print_header_div('summary', $project);
my @remotelist = git_get_heads_list(undef, 'remotes');