Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
c78359a8
Commit
c78359a8
authored
Oct 27, 2012
by
Riyad Preukschas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Generalize CommitDecorator#author_link to #person_link
parent
17cec050
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
14 deletions
+34
-14
app/decorators/commit_decorator.rb
app/decorators/commit_decorator.rb
+34
-14
No files found.
app/decorators/commit_decorator.rb
View file @
c78359a8
...
...
@@ -47,21 +47,15 @@ class CommitDecorator < ApplicationDecorator
# 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 s16"
,
width:
16
"
#{
avatar
}
#{
author_name
}
"
else
author_name
# avatar: true will prepend the avatar image
# size: size of the avatar image in px
def
author_link
(
options
=
{})
person_link
(
options
.
merge
source: :author
)
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
# Just like #author_link but for the committer.
def
committer_link
(
options
=
{})
person_link
(
options
.
merge
source: :committer
)
end
protected
...
...
@@ -69,4 +63,30 @@ class CommitDecorator < ApplicationDecorator
def
no_commit_message
"--no commit message"
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment