summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-10-17 17:02:51 +0200
committerRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-10-18 20:16:52 +0200
commitaef2031ad6bac1d3c35e5beb3b82fb0abfd3c1de (patch)
tree0f432b3ce356bb45768370a806a52c59d49a6ed8
parentb3a5f0a78d1d3e6d6ec3655ca1c936d983b7d69c (diff)
downloadgitlab-ce-aef2031ad6bac1d3c35e5beb3b82fb0abfd3c1de.tar.gz
Add CommitDecorator#author_link
-rw-r--r--app/decorators/commit_decorator.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/decorators/commit_decorator.rb b/app/decorators/commit_decorator.rb
index 777580a6d5e..24723941037 100644
--- a/app/decorators/commit_decorator.rb
+++ b/app/decorators/commit_decorator.rb
@@ -42,6 +42,28 @@ class CommitDecorator < ApplicationDecorator
end
end
+ # Returns a link to the commit author. If the author has a matching user and
+ # is a member of the current @project it will link to the team member page.
+ # Otherwise it will link to the author email as specified in the commit.
+ #
+ # options:
+ # avatar: true will prepend avatar image
+ def author_link(options)
+ text = if options[:avatar]
+ avatar = h.image_tag h.gravatar_icon(author_email), class: "avatar", width: 16
+ "#{avatar} #{author_name}"
+ else
+ author_name
+ end
+ team_member = @project.try(:team_member_by_name_or_email, author_name, author_email)
+
+ if team_member.nil?
+ h.mail_to author_email, text.html_safe, class: "commit-author-link"
+ else
+ h.link_to text, h.project_team_member_path(@project, team_member), class: "commit-author-link"
+ end
+ end
+
protected
def no_commit_message