From aef2031ad6bac1d3c35e5beb3b82fb0abfd3c1de Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Wed, 17 Oct 2012 17:02:51 +0200 Subject: Add CommitDecorator#author_link --- app/decorators/commit_decorator.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'app') 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 -- cgit v1.2.3