--- gitweb/gitweb.css | 5 +++- gitweb/gitweb.perl | 69 ++++++++++++++++++++++++++++----------------------- 2 files changed, 42 insertions(+), 32 deletions(-) diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index eaf74c3..ddf982b 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -136,11 +136,14 @@ div.list_head { font-style: italic; } +.author_date, .author { + font-style: italic; +} + div.author_date { padding: 8px; border: solid #d9d8d1; border-width: 0px 0px 1px 0px; - font-style: italic; } a.list { diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index f5654d7..cb4ecc3 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1496,6 +1496,31 @@ sub format_subject_html { } } +# insert a gravatar for the given $email at the given $size if the feature +# is enabled +sub git_get_gravatar { + if ($git_gravatar_enabled) { + my ($email, %params) = @_; + my $pre_white = ($params{'space_before'} ? " " : ""); + my $post_white = ($params{'space_after'} ? " " : ""); + my $size = $avatar_size{$params{'size'}} || $avatar_size{'default'}; + return $pre_white . "<img class=\"avatar\" src=\"http://www.gravatar.com/avatar.php?gravatar_id=" . + Digest::MD5::md5_hex(lc $email) . "&size=$size\" />" . $post_white; + } else { + return ""; + } +} + +# format, perhaps shortened and preceded by the gravatar, the author name +sub format_author_html { + my $tag = shift; + my $co = shift; + my $author = chop_and_escape_str($co->{'author_name'}, @_); + return "<$tag class=\"author\">" . + git_get_gravatar($co->{'author_email'}, 'space_after' => 1) . + $author . "</$tag>\n"; +} + # format git diff header line, i.e. "diff --(git|combined|cc) ..." sub format_git_diff_header_line { my $line = shift; @@ -3241,28 +3266,14 @@ sub git_print_header_div { "\n</div>\n"; } -# insert a gravatar for the given $email at the given $size if the feature -# is enabled -sub git_get_gravatar { - if ($git_gravatar_enabled) { - my ($email, %params) = @_; - my $pre_white = ($params{'space_before'} ? " " : ""); - my $post_white = ($params{'space_after'} ? " " : ""); - my $size = $avatar_size{$params{'size'}} || $avatar_size{'default'}; - return $pre_white . "<img class=\"avatar\" src=\"http://www.gravatar.com/avatar.php?gravatar_id=" . - Digest::MD5::md5_hex(lc $email) . "&size=$size\" />" . $post_white; - } else { - return ""; - } -} - +# Outputs the author name and date in long form, followed by the gravatar sub git_print_authorship { my $co = shift; + my $tag = shift || 'div'; my %ad = parse_date($co->{'author_epoch'}, $co->{'author_tz'}); - print "<div class=\"author_date\">" . + print "<$tag class=\"author_date\">" . esc_html($co->{'author_name'}) . - git_get_gravatar($co->{'author_email'}, 'space_before' => 1) . " [$ad{'rfc2822'}"; if ($ad{'hour_local'} < 6) { printf(" (<span class=\"atnight\">%02d:%02d</span> %s)", @@ -3271,7 +3282,9 @@ sub git_print_authorship { printf(" (%02d:%02d %s)", $ad{'hour_local'}, $ad{'minute_local'}, $ad{'tz_local'}); } - print "]</div>\n"; + print "]" . + git_get_gravatar($co->{'author_email'}, 'space_before' => 1) . + "</$tag>\n"; } sub git_print_page_path { @@ -4185,11 +4198,9 @@ sub git_shortlog_body { print "<tr class=\"light\">\n"; } $alternate ^= 1; - my $author = chop_and_escape_str($co{'author_name'}, 10); # git_summary() used print "<td><i>$co{'age_string'}</i></td>\n" . print "<td title=\"$co{'age_string_age'}\"><i>$co{'age_string_date'}</i></td>\n" . - "<td>" . git_get_gravatar($co{'author_email'}, 'space_after' => 1) . "<i>" . $author . "</i></td>\n" . - "<td>"; + format_author_html('td', \%co, 10) . "<td>"; print format_subject_html($co{'title'}, $co{'title_short'}, href(action=>"commit", hash=>$commit), $ref); print "</td>\n" . @@ -4236,11 +4247,9 @@ sub git_history_body { print "<tr class=\"light\">\n"; } $alternate ^= 1; - # shortlog uses chop_str($co{'author_name'}, 10) - my $author = chop_and_escape_str($co{'author_name'}, 15, 3); print "<td title=\"$co{'age_string_age'}\"><i>$co{'age_string_date'}</i></td>\n" . - "<td>" . git_get_gravatar($co{'author_email'}, 'space_after' => 1) . "<i>" . $author . "</i></td>\n" . - "<td>"; + # shortlog uses format_author_html('td', \%co, 10) + format_author_html('td', \%co, 15, 3) . "<td>"; # originally git_history used chop_str($co{'title'}, 50) print format_subject_html($co{'title'}, $co{'title_short'}, href(action=>"commit", hash=>$commit), $ref); @@ -4393,9 +4402,8 @@ sub git_search_grep_body { print "<tr class=\"light\">\n"; } $alternate ^= 1; - my $author = chop_and_escape_str($co{'author_name'}, 15, 5); print "<td title=\"$co{'age_string_age'}\"><i>$co{'age_string_date'}</i></td>\n" . - "<td>" . git_get_gravatar($co{'author_email'}, 'space_after' => 1) . "<i>" . $author . "</i></td>\n" . + format_author_html('td', \%co, 15, 5) . "<td>" . $cgi->a({-href => href(action=>"commit", hash=>$co{'id'}), -class => "list subject"}, @@ -5137,10 +5145,9 @@ sub git_log { " | " . $cgi->a({-href => href(action=>"tree", hash=>$commit, hash_base=>$commit)}, "tree") . "<br/>\n" . - "</div>\n" . - "<i>" . esc_html($co{'author_name'}) . " [$ad{'rfc2822'}]</i> " . - git_get_gravatar($co{'author_email'}) . - "<br/>\n</div>\n"; + "</div>\n"; + git_print_authorship(\%co); + print "<br/>\n</div>\n"; print "<div class=\"log_body\">\n"; git_print_log($co{'comment'}, -final_empty_line=> 1); -- 1.6.3.rc1.192.gdbfcb -- 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