From c78359a84bc958c7e6d4fca84dc77b25f6b28cf7 Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Sat, 27 Oct 2012 18:15:00 +0200 Subject: [PATCH 1/3] Generalize CommitDecorator#author_link to #person_link --- app/decorators/commit_decorator.rb | 48 +++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/app/decorators/commit_decorator.rb b/app/decorators/commit_decorator.rb index 652b41f6..69d5b178 100644 --- a/app/decorators/commit_decorator.rb +++ b/app/decorators/commit_decorator.rb @@ -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 - end - team_member = @project.try(:team_member_by_name_or_email, author_name, author_email) + # 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 - 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} #{source_name}} + 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 From 3d0197246ebd382d1bbfe8501177cef7fd269e7d Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Sat, 27 Oct 2012 18:27:47 +0200 Subject: [PATCH 2/3] Use #author_link for blame, commits and tree --- app/views/blame/show.html.haml | 4 +--- app/views/commits/_commit.html.haml | 3 +-- app/views/commits/_commit_box.html.haml | 5 ++--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/app/views/blame/show.html.haml b/app/views/blame/show.html.haml index 5c3231e2..29fac7a4 100644 --- a/app/views/blame/show.html.haml +++ b/app/views/blame/show.html.haml @@ -24,9 +24,7 @@ - commit = Commit.new(commit) - commit = CommitDecorator.decorate(commit) %tr - %td.author - = image_tag gravatar_icon(commit.author_email, 16) - = commit.author_name + %td.author= commit.author_link avatar: true, size: 16 %td.blame_commit   %code= link_to commit.short_id, project_commit_path(@project, commit) diff --git a/app/views/commits/_commit.html.haml b/app/views/commits/_commit.html.haml index 9abadc5d..8e96d16a 100644 --- a/app/views/commits/_commit.html.haml +++ b/app/views/commits/_commit.html.haml @@ -4,9 +4,8 @@ %strong= link_to "Browse Code ยป", project_tree_path(@project, commit), class: "right" %p = 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 – - = 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" %span.committed_ago diff --git a/app/views/commits/_commit_box.html.haml b/app/views/commits/_commit_box.html.haml index ece0df22..26753a14 100644 --- a/app/views/commits/_commit_box.html.haml +++ b/app/views/commits/_commit_box.html.haml @@ -18,16 +18,15 @@ .commit-info .row .span5 - = image_tag gravatar_icon(@commit.author_email, 40), class: "avatar" .author - %strong= @commit.author_name + %strong= @commit.author_link avatar: true, size: 40 authored %time{title: @commit.authored_date.stamp("Aug 21, 2011 9:23pm")} #{time_ago_in_words(@commit.authored_date)} ago - if @commit.different_committer? .committer → - %strong= @commit.committer_name + %strong= @commit.committer_link committed %time{title: @commit.committed_date.stamp("Aug 21, 2011 9:23pm")} #{time_ago_in_words(@commit.committed_date)} ago From 646bad43e97482333648522917aefc83b69e2e9a Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Thu, 18 Oct 2012 00:49:20 +0200 Subject: [PATCH 3/3] Fix styles --- app/assets/stylesheets/sections/commits.scss | 10 ++++++++-- app/assets/stylesheets/sections/tree.scss | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/sections/commits.scss b/app/assets/stylesheets/sections/commits.scss index 139d7347..4f9360ad 100644 --- a/app/assets/stylesheets/sections/commits.scss +++ b/app/assets/stylesheets/sections/commits.scss @@ -47,12 +47,15 @@ padding-left: 32px; } - .author, - .committer { + .author a, + .committer a { font-size:14px; line-height:22px; text-shadow:0 1px 1px #fff; color:#777; + &:hover { + color: #999; + } } .avatar { @@ -227,6 +230,9 @@ .commit-author-name { color: #777; + &:hover { + color: #999; + } } } diff --git a/app/assets/stylesheets/sections/tree.scss b/app/assets/stylesheets/sections/tree.scss index e7d20874..f6bdb0f3 100644 --- a/app/assets/stylesheets/sections/tree.scss +++ b/app/assets/stylesheets/sections/tree.scss @@ -72,6 +72,15 @@ } } } + + .blame { + img.avatar { + border: 0 none; + float: none; + margin: 0; + padding: 0; + } + } } .tree-btn-group {