Commit cd9f135a authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #1717 from riyad/add-author-to-tree-listing

Update author info in tree listing
parents 0189ee97 4fd73683
...@@ -52,14 +52,26 @@ ...@@ -52,14 +52,26 @@
} }
} }
.tree-commit-link { .tree_author {
color:#333; padding-right: 8px;
img.avatar {
border: 0 none;
float: none;
margin-right: 0;
padding: 0;
width: 16px;
}
} }
a.tree-commit-link { .tree_commit {
color: #666; color: gray;
&:hover {
text-decoration: underline; .tree-commit-link {
color: #444;
&:hover {
text-decoration: underline;
}
} }
} }
} }
......
...@@ -42,6 +42,28 @@ class CommitDecorator < ApplicationDecorator ...@@ -42,6 +42,28 @@ class CommitDecorator < ApplicationDecorator
end end
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 protected
def no_commit_message def no_commit_message
......
module Team module Team
def team_member_by_name_or_email(email = nil, name = nil) def team_member_by_name_or_email(name = nil, email = nil)
user = users.where("email like ? or name like ?", email, name).first user = users.where("name like ? or email like ?", name, email).first
users_projects.find_by_user_id(user.id) if user users_projects.where(user: user) if user
end end
# Get Team Member record by user id # Get Team Member record by user id
......
- @logs.each do |content_data| - @logs.each do |content_data|
- file_name = content_data[:file_name] - file_name = content_data[:file_name]
- content_commit = content_data[:commit] - commit = content_data[:commit]
- tm = @project.team_member_by_name_or_email(content_commit.author_email, content_commit.author_name)
:plain :plain
var row = $("table.table_#{@hex_path} tr.file_#{hexdigest(file_name)}"); var row = $("table.table_#{@hex_path} tr.file_#{hexdigest(file_name)}");
row.find("td.tree_time_ago").html('#{escape_javascript(time_ago_in_words(content_commit.committed_date))} ago'); row.find("td.tree_time_ago").html('#{escape_javascript time_ago_in_words(commit.committed_date)} ago');
row.find("td.tree_commit").html('#{escape_javascript(render("tree/tree_commit", tm: tm, content_commit: content_commit))}'); row.find("td.tree_commit").html('#{escape_javascript render("tree/tree_commit_column", commit: commit)}');
- if tm
= link_to "[#{tm.user_name}]", project_team_member_path(@project, tm)
= link_to_gfm truncate(content_commit.title, length: tm ? 30 : 50), project_commit_path(@project, content_commit.id), class: "tree-commit-link"
%span.tree_author= commit.author_link avatar: true
= link_to_gfm truncate(commit.title, length: 80), project_commit_path(@project, commit.id), class: "tree-commit-link"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment