Commit 892da9b5403deacddf21e728ad5fee063908ebfb

Authored by Aurelio A. Heckert
1 parent fc7e02f2

Link to Gravatar home or prfile

closes ActionItem2125
app/helpers/application_helper.rb
@@ -609,6 +609,10 @@ module ApplicationHelper @@ -609,6 +609,10 @@ module ApplicationHelper
609 url 609 url
610 end 610 end
611 611
  612 + def gravatar_profile_url(email)
  613 + 'http://www.gravatar.com/'+ Digest::MD5.hexdigest(email)
  614 + end
  615 +
612 attr_reader :environment 616 attr_reader :environment
613 def select_categories(object_name, title=nil, title_size=4) 617 def select_categories(object_name, title=nil, title_size=4)
614 return nil if environment.enabled?(:disable_categories) 618 return nil if environment.enabled?(:disable_categories)
app/views/content_viewer/_comment.rhtml
@@ -11,14 +11,21 @@ @@ -11,14 +11,21 @@
11 :title => comment.author_name 11 :title => comment.author_name
12 %> 12 %>
13 <% else %> 13 <% else %>
14 - <%# unauthenticated user: display gravatar icon %>  
15 - <% url_image, status_class = comment.author_id ? [comment.removed_user_image, 'icon-user-removed'] : [str_gravatar_url_for( comment.email, :size => 50 ), 'icon-user-unknown'] %>  
16 - <%= content_tag 'span', image_tag(url_image) +  
17 - content_tag('span', comment.author_name, :class => 'comment-info') +  
18 - content_tag('span', comment.message, :class => 'comment-user-status ' + status_class), 14 + <% url_image, status_class = comment.author_id ?
  15 + [comment.removed_user_image, 'icon-user-removed'] :
  16 + [str_gravatar_url_for( comment.email, :size => 50, :d=>404 ), 'icon-user-unknown'] %>
  17 +
  18 + <%= link_to(
  19 + image_tag(url_image, :onerror=>'gravatarCommentFailback(this)',
  20 + 'data-gravatar'=>str_gravatar_url_for(comment.email, :size=>50)) +
  21 + content_tag('span', comment.author_name, :class => 'comment-info') +
  22 + content_tag('span', comment.message,
  23 + :class => 'comment-user-status ' + status_class),
  24 + gravatar_profile_url(comment.email),
  25 + :target => '_blank',
19 :class => 'comment-picture', 26 :class => 'comment-picture',
20 :title => '%s %s' % [comment.author_name, comment.message] 27 :title => '%s %s' % [comment.author_name, comment.message]
21 - %> 28 + )%>
22 <% end %> 29 <% end %>
23 30
24 <% comment_balloon do %> 31 <% comment_balloon do %>
public/javascripts/application.js
@@ -681,6 +681,12 @@ function original_image_dimensions(src) { @@ -681,6 +681,12 @@ function original_image_dimensions(src) {
681 return { 'width' : img.width, 'height' : img.height }; 681 return { 'width' : img.width, 'height' : img.height };
682 } 682 }
683 683
  684 +function gravatarCommentFailback(img) {
  685 + var link = img.parentNode;
  686 + link.href = "http://www.gravatar.com";
  687 + img.src = img.getAttribute("data-gravatar");
  688 +}
  689 +
684 jQuery(function() { 690 jQuery(function() {
685 jQuery("#ajax-form").before("<div id='ajax-form-loading-area' style='display:block;width:16px;height:16px;'></div>"); 691 jQuery("#ajax-form").before("<div id='ajax-form-loading-area' style='display:block;width:16px;height:16px;'></div>");
686 jQuery("#ajax-form").before("<div id='ajax-form-message-area'></div>"); 692 jQuery("#ajax-form").before("<div id='ajax-form-message-area'></div>");