OSDN Git Service

Show gravatar icon on tooltip.
authorSato Hiroyuki <sathiroyuki@gmail.com>
Thu, 28 Feb 2013 05:56:27 +0000 (14:56 +0900)
committerSato Hiroyuki <sathiroyuki@gmail.com>
Thu, 28 Feb 2013 05:56:27 +0000 (14:56 +0900)
app/assets/javascripts/branch-graph.js
app/controllers/graph_controller.rb
app/models/graph/commit.rb

index 231b1cc..137e87d 100644 (file)
   
 }(this);
 Raphael.fn.commitTooltip = function(x, y, commit){
-  var nameText, idText, messageText
+  var icon, nameText, idText, messageText
     , boxWidth = 300
     , boxHeight = 200;
   
-  nameText = this.text(x, y + 10, commit.author.name);
+  icon = this.image(commit.author.icon, x, y, 20, 20);
+  nameText = this.text(x + 25, y + 10, commit.author.name);
   idText = this.text(x, y + 35, commit.id);
   messageText = this.text(x, y + 50, commit.message);
   
-  textSet = this.set(nameText, idText, messageText).attr({
+  textSet = this.set(icon, nameText, idText, messageText).attr({
     "text-anchor": "start",
     "font": "12px Monaco, monospace"
   });
index 8aadcfe..33cb2d2 100644 (file)
@@ -1,5 +1,6 @@
 class GraphController < ProjectResourceController
   include ExtractsPath
+  include ApplicationHelper
 
   # Authorize
   before_filter :authorize_read_project!
@@ -21,6 +22,9 @@ class GraphController < ProjectResourceController
       format.html
       format.json do
         graph = Graph::JsonBuilder.new(project, @ref, @commit)
+        graph.commits.each do |c|
+          c.icon = gravatar_icon(c.author.email)
+        end
         render :json => graph.to_json
       end
     end
index 742a73b..8ed61f4 100644 (file)
@@ -4,7 +4,7 @@ module Graph
   class Commit
     include ActionView::Helpers::TagHelper
 
-    attr_accessor :time, :spaces, :refs, :parent_spaces
+    attr_accessor :time, :spaces, :refs, :parent_spaces, :icon
 
     def initialize(commit)
       @_commit = commit
@@ -23,8 +23,9 @@ module Graph
         [p.id,0,0]
       end
       h[:author]  = {
-        name: author.name, 
-        email: author.email
+        name: author.name,
+        email: author.email,
+        icon: icon
       }
       h[:time]    = time
       h[:space]   = spaces.first