зеркало из https://github.com/microsoft/git.git
gitweb: More per-view navigation bar links
Navigation bars in various views were empty or missed important items that should have been there, e.g. getting a snapshot in tree view or log of ancestry in commit view... This feeble patch attempts to consolidate that. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
609ff267fb
Коммит
cae1862a3b
|
@ -2441,6 +2441,9 @@ sub git_blame2 {
|
||||||
$cgi->a({-href => href(action=>"blob", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},
|
$cgi->a({-href => href(action=>"blob", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},
|
||||||
"blob") .
|
"blob") .
|
||||||
" | " .
|
" | " .
|
||||||
|
$cgi->a({-href => href(action=>"history", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},
|
||||||
|
"history") .
|
||||||
|
" | " .
|
||||||
$cgi->a({-href => href(action=>"blame", file_name=>$file_name)},
|
$cgi->a({-href => href(action=>"blame", file_name=>$file_name)},
|
||||||
"head");
|
"head");
|
||||||
git_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
|
git_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
|
||||||
|
@ -2507,6 +2510,9 @@ sub git_blame {
|
||||||
$cgi->a({-href => href(action=>"blob", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},
|
$cgi->a({-href => href(action=>"blob", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},
|
||||||
"blob") .
|
"blob") .
|
||||||
" | " .
|
" | " .
|
||||||
|
$cgi->a({-href => href(action=>"history", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},
|
||||||
|
"history") .
|
||||||
|
" | " .
|
||||||
$cgi->a({-href => href(action=>"blame", file_name=>$file_name)},
|
$cgi->a({-href => href(action=>"blame", file_name=>$file_name)},
|
||||||
"head");
|
"head");
|
||||||
git_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
|
git_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
|
||||||
|
@ -2682,6 +2688,10 @@ sub git_blob {
|
||||||
" | ";
|
" | ";
|
||||||
}
|
}
|
||||||
$formats_nav .=
|
$formats_nav .=
|
||||||
|
$cgi->a({-href => href(action=>"history", hash_base=>$hash_base,
|
||||||
|
hash=>$hash, file_name=>$file_name)},
|
||||||
|
"history") .
|
||||||
|
" | " .
|
||||||
$cgi->a({-href => href(action=>"blob_plain",
|
$cgi->a({-href => href(action=>"blob_plain",
|
||||||
hash=>$hash, file_name=>$file_name)},
|
hash=>$hash, file_name=>$file_name)},
|
||||||
"plain") .
|
"plain") .
|
||||||
|
@ -2717,6 +2727,9 @@ sub git_blob {
|
||||||
}
|
}
|
||||||
|
|
||||||
sub git_tree {
|
sub git_tree {
|
||||||
|
my ($ctype, $suffix, $command) = gitweb_check_feature('snapshot');
|
||||||
|
my $have_snapshot = (defined $ctype && defined $suffix);
|
||||||
|
|
||||||
if (!defined $hash) {
|
if (!defined $hash) {
|
||||||
$hash = git_get_head_hash($project);
|
$hash = git_get_head_hash($project);
|
||||||
if (defined $file_name) {
|
if (defined $file_name) {
|
||||||
|
@ -2740,7 +2753,23 @@ sub git_tree {
|
||||||
my $base = "";
|
my $base = "";
|
||||||
my ($have_blame) = gitweb_check_feature('blame');
|
my ($have_blame) = gitweb_check_feature('blame');
|
||||||
if (defined $hash_base && (my %co = parse_commit($hash_base))) {
|
if (defined $hash_base && (my %co = parse_commit($hash_base))) {
|
||||||
git_print_page_nav('tree','', $hash_base);
|
my @views_nav = ();
|
||||||
|
if (defined $file_name) {
|
||||||
|
push @views_nav,
|
||||||
|
$cgi->a({-href => href(action=>"history", hash_base=>$hash_base,
|
||||||
|
hash=>$hash, file_name=>$file_name)},
|
||||||
|
"history"),
|
||||||
|
$cgi->a({-href => href(action=>"tree",
|
||||||
|
hash_base=>"HEAD", file_name=>$file_name)},
|
||||||
|
"head");
|
||||||
|
}
|
||||||
|
if ($have_snapshot) {
|
||||||
|
# FIXME: Should be available when we have no hash base as well.
|
||||||
|
push @views_nav,
|
||||||
|
$cgi->a({-href => href(action=>"snapshot")},
|
||||||
|
"snapshot");
|
||||||
|
}
|
||||||
|
git_print_page_nav('tree','', $hash_base, undef, undef, join(' | ', @views_nav));
|
||||||
git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
|
git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
|
||||||
} else {
|
} else {
|
||||||
undef $hash_base;
|
undef $hash_base;
|
||||||
|
@ -2885,17 +2914,22 @@ sub git_commit {
|
||||||
my ($ctype, $suffix, $command) = gitweb_check_feature('snapshot');
|
my ($ctype, $suffix, $command) = gitweb_check_feature('snapshot');
|
||||||
my $have_snapshot = (defined $ctype && defined $suffix);
|
my $have_snapshot = (defined $ctype && defined $suffix);
|
||||||
|
|
||||||
my $formats_nav = '';
|
my @views_nav = ();
|
||||||
if (defined $file_name && defined $co{'parent'}) {
|
if (defined $file_name && defined $co{'parent'}) {
|
||||||
my $parent = $co{'parent'};
|
my $parent = $co{'parent'};
|
||||||
$formats_nav .=
|
push @views_nav,
|
||||||
$cgi->a({-href => href(action=>"blame", hash_parent=>$parent, file_name=>$file_name)},
|
$cgi->a({-href => href(action=>"blame", hash_parent=>$parent, file_name=>$file_name)},
|
||||||
"blame");
|
"blame");
|
||||||
}
|
}
|
||||||
|
if (defined $co{'parent'}) {
|
||||||
|
push @views_nav,
|
||||||
|
$cgi->a({-href => href(action=>"shortlog", hash=>$hash)}, "shortlog"),
|
||||||
|
$cgi->a({-href => href(action=>"log", hash=>$hash)}, "log");
|
||||||
|
}
|
||||||
git_header_html(undef, $expires);
|
git_header_html(undef, $expires);
|
||||||
git_print_page_nav('commit', defined $co{'parent'} ? '' : 'commitdiff',
|
git_print_page_nav('commit', defined $co{'parent'} ? '' : 'commitdiff',
|
||||||
$hash, $co{'tree'}, $hash,
|
$hash, $co{'tree'}, $hash,
|
||||||
$formats_nav);
|
join (' | ', @views_nav));
|
||||||
|
|
||||||
if (defined $co{'parent'}) {
|
if (defined $co{'parent'}) {
|
||||||
git_print_header_div('commitdiff', esc_html($co{'title'}) . $ref, $hash);
|
git_print_header_div('commitdiff', esc_html($co{'title'}) . $ref, $hash);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче