Merge pull request #1851 from riyad/link-to-commit-authors-everywhere
Link to commit authors everywhere
This commit is contained in:
commit
78a64ca100
|
@ -47,12 +47,15 @@
|
||||||
padding-left: 32px;
|
padding-left: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.author,
|
.author a,
|
||||||
.committer {
|
.committer a {
|
||||||
font-size:14px;
|
font-size:14px;
|
||||||
line-height:22px;
|
line-height:22px;
|
||||||
text-shadow:0 1px 1px #fff;
|
text-shadow:0 1px 1px #fff;
|
||||||
color:#777;
|
color:#777;
|
||||||
|
&:hover {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar {
|
.avatar {
|
||||||
|
@ -227,6 +230,9 @@
|
||||||
|
|
||||||
.commit-author-name {
|
.commit-author-name {
|
||||||
color: #777;
|
color: #777;
|
||||||
|
&:hover {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,15 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.blame {
|
||||||
|
img.avatar {
|
||||||
|
border: 0 none;
|
||||||
|
float: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tree-btn-group {
|
.tree-btn-group {
|
||||||
|
|
|
@ -47,21 +47,15 @@ class CommitDecorator < ApplicationDecorator
|
||||||
# Otherwise it will link to the author email as specified in the commit.
|
# Otherwise it will link to the author email as specified in the commit.
|
||||||
#
|
#
|
||||||
# options:
|
# options:
|
||||||
# avatar: true will prepend avatar image
|
# avatar: true will prepend the avatar image
|
||||||
def author_link(options)
|
# size: size of the avatar image in px
|
||||||
text = if options[:avatar]
|
def author_link(options = {})
|
||||||
avatar = h.image_tag h.gravatar_icon(author_email), class: "avatar s16", width: 16
|
person_link(options.merge source: :author)
|
||||||
"#{avatar} #{author_name}"
|
end
|
||||||
else
|
|
||||||
author_name
|
|
||||||
end
|
|
||||||
team_member = @project.try(:team_member_by_name_or_email, author_name, author_email)
|
|
||||||
|
|
||||||
if team_member.nil?
|
# Just like #author_link but for the committer.
|
||||||
h.mail_to author_email, text.html_safe, class: "commit-author-link"
|
def committer_link(options = {})
|
||||||
else
|
person_link(options.merge source: :committer)
|
||||||
h.link_to text, h.project_team_member_path(@project, team_member), class: "commit-author-link"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
@ -69,4 +63,30 @@ class CommitDecorator < ApplicationDecorator
|
||||||
def no_commit_message
|
def no_commit_message
|
||||||
"--no commit message"
|
"--no commit message"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Private: Returns a link to a person. If the person 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 person email as specified in the commit.
|
||||||
|
#
|
||||||
|
# options:
|
||||||
|
# source: one of :author or :committer
|
||||||
|
# avatar: true will prepend the avatar image
|
||||||
|
# size: size of the avatar image in px
|
||||||
|
def person_link(options = {})
|
||||||
|
source_name = send "#{options[:source]}_name".to_sym
|
||||||
|
source_email = send "#{options[:source]}_email".to_sym
|
||||||
|
text = if options[:avatar]
|
||||||
|
avatar = h.image_tag h.gravatar_icon(source_email, options[:size]), class: "avatar #{"s#{options[:size]}" if options[:size]}", width: options[:size]
|
||||||
|
%Q{#{avatar} <span class="commit-#{options[:source]}-name">#{source_name}</span>}
|
||||||
|
else
|
||||||
|
source_name
|
||||||
|
end
|
||||||
|
team_member = @project.try(:team_member_by_name_or_email, source_name, source_email)
|
||||||
|
|
||||||
|
if team_member.nil?
|
||||||
|
h.mail_to source_email, text.html_safe, class: "commit-#{options[:source]}-link"
|
||||||
|
else
|
||||||
|
h.link_to text, h.project_team_member_path(@project, team_member), class: "commit-#{options[:source]}-link"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,9 +24,7 @@
|
||||||
- commit = Commit.new(commit)
|
- commit = Commit.new(commit)
|
||||||
- commit = CommitDecorator.decorate(commit)
|
- commit = CommitDecorator.decorate(commit)
|
||||||
%tr
|
%tr
|
||||||
%td.author
|
%td.author= commit.author_link avatar: true, size: 16
|
||||||
= image_tag gravatar_icon(commit.author_email, 16)
|
|
||||||
= commit.author_name
|
|
||||||
%td.blame_commit
|
%td.blame_commit
|
||||||
|
|
||||||
%code= link_to commit.short_id, project_commit_path(@project, commit)
|
%code= link_to commit.short_id, project_commit_path(@project, commit)
|
||||||
|
|
|
@ -4,9 +4,8 @@
|
||||||
%strong= link_to "Browse Code »", project_tree_path(@project, commit), class: "right"
|
%strong= link_to "Browse Code »", project_tree_path(@project, commit), class: "right"
|
||||||
%p
|
%p
|
||||||
= link_to commit.short_id(8), project_commit_path(@project, commit), class: "commit_short_id"
|
= link_to commit.short_id(8), project_commit_path(@project, commit), class: "commit_short_id"
|
||||||
%strong.commit-author-name= commit.author_name
|
%strong= commit.author_link avatar: true, size: 24
|
||||||
%span.dash –
|
%span.dash –
|
||||||
= image_tag gravatar_icon(commit.author_email), class: "avatar", width: 16
|
|
||||||
= link_to_gfm truncate(commit.title, length: 50), project_commit_path(@project, commit.id), class: "row_title"
|
= link_to_gfm truncate(commit.title, length: 50), project_commit_path(@project, commit.id), class: "row_title"
|
||||||
|
|
||||||
%span.committed_ago
|
%span.committed_ago
|
||||||
|
|
|
@ -18,16 +18,15 @@
|
||||||
.commit-info
|
.commit-info
|
||||||
.row
|
.row
|
||||||
.span5
|
.span5
|
||||||
= image_tag gravatar_icon(@commit.author_email, 40), class: "avatar"
|
|
||||||
.author
|
.author
|
||||||
%strong= @commit.author_name
|
%strong= @commit.author_link avatar: true, size: 40
|
||||||
authored
|
authored
|
||||||
%time{title: @commit.authored_date.stamp("Aug 21, 2011 9:23pm")}
|
%time{title: @commit.authored_date.stamp("Aug 21, 2011 9:23pm")}
|
||||||
#{time_ago_in_words(@commit.authored_date)} ago
|
#{time_ago_in_words(@commit.authored_date)} ago
|
||||||
- if @commit.different_committer?
|
- if @commit.different_committer?
|
||||||
.committer
|
.committer
|
||||||
→
|
→
|
||||||
%strong= @commit.committer_name
|
%strong= @commit.committer_link
|
||||||
committed
|
committed
|
||||||
%time{title: @commit.committed_date.stamp("Aug 21, 2011 9:23pm")}
|
%time{title: @commit.committed_date.stamp("Aug 21, 2011 9:23pm")}
|
||||||
#{time_ago_in_words(@commit.committed_date)} ago
|
#{time_ago_in_words(@commit.committed_date)} ago
|
||||||
|
|
Loading…
Reference in a new issue