Merge pull request #1717 from riyad/add-author-to-tree-listing
Update author info in tree listing
This commit is contained in:
commit
cd9f135a66
6 changed files with 48 additions and 16 deletions
|
@ -52,14 +52,26 @@
|
|||
}
|
||||
}
|
||||
|
||||
.tree-commit-link {
|
||||
color:#333;
|
||||
.tree_author {
|
||||
padding-right: 8px;
|
||||
|
||||
img.avatar {
|
||||
border: 0 none;
|
||||
float: none;
|
||||
margin-right: 0;
|
||||
padding: 0;
|
||||
width: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
a.tree-commit-link {
|
||||
color: #666;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
.tree_commit {
|
||||
color: gray;
|
||||
|
||||
.tree-commit-link {
|
||||
color: #444;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
module Team
|
||||
def team_member_by_name_or_email(email = nil, name = nil)
|
||||
user = users.where("email like ? or name like ?", email, name).first
|
||||
users_projects.find_by_user_id(user.id) if user
|
||||
def team_member_by_name_or_email(name = nil, email = nil)
|
||||
user = users.where("name like ? or email like ?", name, email).first
|
||||
users_projects.where(user: user) if user
|
||||
end
|
||||
|
||||
# Get Team Member record by user id
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
- @logs.each do |content_data|
|
||||
- file_name = content_data[:file_name]
|
||||
- content_commit = content_data[:commit]
|
||||
- tm = @project.team_member_by_name_or_email(content_commit.author_email, content_commit.author_name)
|
||||
- commit = content_data[:commit]
|
||||
|
||||
:plain
|
||||
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_commit").html('#{escape_javascript(render("tree/tree_commit", tm: tm, content_commit: content_commit))}');
|
||||
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_column", commit: commit)}');
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
- 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"
|
2
app/views/tree/_tree_commit_column.html.haml
Normal file
2
app/views/tree/_tree_commit_column.html.haml
Normal file
|
@ -0,0 +1,2 @@
|
|||
%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"
|
Loading…
Reference in a new issue