Skip to content

Commit

Permalink
Merge branch 'sb/gitweb-link-author'
Browse files Browse the repository at this point in the history
* sb/gitweb-link-author:
  gitweb: linkify author/committer names with search
  • Loading branch information
Junio C Hamano committed Oct 26, 2009
2 parents 9382bb3 + e133d65 commit 24be495
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 5 deletions.
4 changes: 4 additions & 0 deletions gitweb/gitweb.css
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ img.avatar {
vertical-align: middle;
}

a.list img.avatar {
border-style: none;
}

div.page_header {
height: 25px;
padding: 8px;
Expand Down
40 changes: 35 additions & 5 deletions gitweb/gitweb.perl
Original file line number Diff line number Diff line change
Expand Up @@ -1607,6 +1607,29 @@ sub git_get_avatar {
}
}

sub format_search_author {
my ($author, $searchtype, $displaytext) = @_;
my $have_search = gitweb_check_feature('search');

if ($have_search) {
my $performed = "";
if ($searchtype eq 'author') {
$performed = "authored";
} elsif ($searchtype eq 'committer') {
$performed = "committed";
}

return $cgi->a({-href => href(action=>"search", hash=>$hash,
searchtext=>$author,
searchtype=>$searchtype), class=>"list",
title=>"Search for commits $performed by $author"},
$displaytext);

} else {
return $displaytext;
}
}

# format the author name of the given commit with the given tag
# the author name is chopped and escaped according to the other
# optional parameters (see chop_str).
Expand All @@ -1615,8 +1638,10 @@ sub format_author_html {
my $co = shift;
my $author = chop_and_escape_str($co->{'author_name'}, @_);
return "<$tag class=\"author\">" .
git_get_avatar($co->{'author_email'}, -pad_after => 1) .
$author . "</$tag>";
format_search_author($co->{'author_name'}, "author",
git_get_avatar($co->{'author_email'}, -pad_after => 1) .
$author) .
"</$tag>";
}

# format git diff header line, i.e. "diff --(git|combined|cc) ..."
Expand Down Expand Up @@ -3400,10 +3425,11 @@ sub git_print_authorship {
my $co = shift;
my %opts = @_;
my $tag = $opts{-tag} || 'div';
my $author = $co->{'author_name'};

my %ad = parse_date($co->{'author_epoch'}, $co->{'author_tz'});
print "<$tag class=\"author_date\">" .
esc_html($co->{'author_name'}) .
format_search_author($author, "author", esc_html($author)) .
" [$ad{'rfc2822'}";
print_local_time(%ad) if ($opts{-localtime});
print "]" . git_get_avatar($co->{'author_email'}, -pad_before => 1)
Expand All @@ -3422,8 +3448,12 @@ sub git_print_authorship_rows {
@people = ('author', 'committer') unless @people;
foreach my $who (@people) {
my %wd = parse_date($co->{"${who}_epoch"}, $co->{"${who}_tz"});
print "<tr><td>$who</td><td>" . esc_html($co->{$who}) . "</td>" .
"<td rowspan=\"2\">" .
print "<tr><td>$who</td><td>" .
format_search_author($co->{"${who}_name"}, $who,
esc_html($co->{"${who}_name"})) . " " .
format_search_author($co->{"${who}_email"}, $who,
esc_html("<" . $co->{"${who}_email"} . ">")) .
"</td><td rowspan=\"2\">" .
git_get_avatar($co->{"${who}_email"}, -size => 'double') .
"</td></tr>\n" .
"<tr>" .
Expand Down

0 comments on commit 24be495

Please sign in to comment.