Commit c641dff0 authored by Andreas Brandl's avatar Andreas Brandl

Explicit use of avatar_icon_* calls depending on situation.

We want to drop the generic #avatar_icon helper that supports both an email
and a user object being passed in. Instead, we want to explicitly use the #avatar_icon_for_user
and #avatar_icon_for_email helpers depending on what we have at hand.
This allows us to avoid unnecessary database queries (e.g. call
User.find_by_any_email if we already have the user).

In situations like here, this makes it less convenient to use.
parent d5ffcb81
...@@ -11,7 +11,15 @@ module AvatarsHelper ...@@ -11,7 +11,15 @@ module AvatarsHelper
def user_avatar_without_link(options = {}) def user_avatar_without_link(options = {})
avatar_size = options[:size] || 16 avatar_size = options[:size] || 16
user_name = options[:user].try(:name) || options[:user_name] user_name = options[:user].try(:name) || options[:user_name]
avatar_url = options[:url] || avatar_icon(options[:user] || options[:user_email], avatar_size)
avatar_url = if options[:url]
options[:url]
elsif options[:user]
avatar_icon_for_user(options[:user], avatar_size)
else
avatar_icon_for_email(options[:user_email], avatar_size)
end
has_tooltip = options[:has_tooltip].nil? ? true : options[:has_tooltip] has_tooltip = options[:has_tooltip].nil? ? true : options[:has_tooltip]
data_attributes = options[:data] || {} data_attributes = options[:data] || {}
css_class = %W[avatar s#{avatar_size}].push(*options[:css_class]) css_class = %W[avatar s#{avatar_size}].push(*options[:css_class])
......
...@@ -60,7 +60,10 @@ ...@@ -60,7 +60,10 @@
%tbody %tbody
%tr %tr
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
%img.avatar{ height: "24", src: avatar_icon(commit.author || commit.author_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/ - if commit.author
%img.avatar{ height: "24", src: avatar_icon_for_user(commit.author, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
- else
%img.avatar{ height: "24", src: avatar_icon_for_email(commit.author_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
- if commit.author - if commit.author
%a.muted{ href: user_url(commit.author), style: "color:#333333;text-decoration:none;" } %a.muted{ href: user_url(commit.author), style: "color:#333333;text-decoration:none;" }
...@@ -76,7 +79,10 @@ ...@@ -76,7 +79,10 @@
%tbody %tbody
%tr %tr
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
%img.avatar{ height: "24", src: avatar_icon(commit.committer || commit.committer_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/ - if commit.commiter
%img.avatar{ height: "24", src: avatar_icon_for_user(commit.committer, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
- else
%img.avatar{ height: "24", src: avatar_icon_for_email(commit.committer_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
- if commit.committer - if commit.committer
%a.muted{ href: user_url(commit.committer), style: "color:#333333;text-decoration:none;" } %a.muted{ href: user_url(commit.committer), style: "color:#333333;text-decoration:none;" }
......
...@@ -60,7 +60,10 @@ ...@@ -60,7 +60,10 @@
%tbody %tbody
%tr %tr
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
%img.avatar{ height: "24", src: avatar_icon(commit.author || commit.author_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/ - if commit.author
%img.avatar{ height: "24", src: avatar_icon_for_user(commit.author, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
- else
%img.avatar{ height: "24", src: avatar_icon_for_email(commit.author_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
- if commit.author - if commit.author
%a.muted{ href: user_url(commit.author), style: "color:#333333;text-decoration:none;" } %a.muted{ href: user_url(commit.author), style: "color:#333333;text-decoration:none;" }
...@@ -76,7 +79,10 @@ ...@@ -76,7 +79,10 @@
%tbody %tbody
%tr %tr
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;padding-right:5px;" }
%img.avatar{ height: "24", src: avatar_icon(commit.committer || commit.committer_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/ - if commit.committer
%img.avatar{ height: "24", src: avatar_icon_for_user(commit.committer, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
- else
%img.avatar{ height: "24", src: avatar_icon_for_email(commit.committer_email, 24, only_path: false), style: "display:block;border-radius:12px;margin:-2px 0;", width: "24", alt: "" }/
%td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" } %td{ style: "font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;vertical-align:middle;" }
- if commit.committer - if commit.committer
%a.muted{ href: user_url(commit.committer), style: "color:#333333;text-decoration:none;" } %a.muted{ href: user_url(commit.committer), style: "color:#333333;text-decoration:none;" }
......
...@@ -29,7 +29,7 @@ describe AvatarsHelper do ...@@ -29,7 +29,7 @@ describe AvatarsHelper do
is_expected.to eq tag( is_expected.to eq tag(
:img, :img,
alt: "#{user.name}'s avatar", alt: "#{user.name}'s avatar",
src: avatar_icon(user, 16), src: avatar_icon_for_user(user, 16),
data: { container: 'body' }, data: { container: 'body' },
class: 'avatar s16 has-tooltip', class: 'avatar s16 has-tooltip',
title: user.name title: user.name
...@@ -43,7 +43,7 @@ describe AvatarsHelper do ...@@ -43,7 +43,7 @@ describe AvatarsHelper do
is_expected.to eq tag( is_expected.to eq tag(
:img, :img,
alt: "#{user.name}'s avatar", alt: "#{user.name}'s avatar",
src: avatar_icon(user, 16), src: avatar_icon_for_user(user, 16),
data: { container: 'body' }, data: { container: 'body' },
class: "avatar s16 #{options[:css_class]} has-tooltip", class: "avatar s16 #{options[:css_class]} has-tooltip",
title: user.name title: user.name
...@@ -58,7 +58,7 @@ describe AvatarsHelper do ...@@ -58,7 +58,7 @@ describe AvatarsHelper do
is_expected.to eq tag( is_expected.to eq tag(
:img, :img,
alt: "#{user.name}'s avatar", alt: "#{user.name}'s avatar",
src: avatar_icon(user, options[:size]), src: avatar_icon_for_user(user, options[:size]),
data: { container: 'body' }, data: { container: 'body' },
class: "avatar s#{options[:size]} has-tooltip", class: "avatar s#{options[:size]} has-tooltip",
title: user.name title: user.name
...@@ -89,7 +89,7 @@ describe AvatarsHelper do ...@@ -89,7 +89,7 @@ describe AvatarsHelper do
:img, :img,
alt: "#{user.name}'s avatar", alt: "#{user.name}'s avatar",
src: LazyImageTagHelper.placeholder_image, src: LazyImageTagHelper.placeholder_image,
data: { container: 'body', src: avatar_icon(user, 16) }, data: { container: 'body', src: avatar_icon_for_user(user, 16) },
class: "avatar s16 has-tooltip lazy", class: "avatar s16 has-tooltip lazy",
title: user.name title: user.name
) )
...@@ -104,7 +104,7 @@ describe AvatarsHelper do ...@@ -104,7 +104,7 @@ describe AvatarsHelper do
is_expected.to eq tag( is_expected.to eq tag(
:img, :img,
alt: "#{user.name}'s avatar", alt: "#{user.name}'s avatar",
src: avatar_icon(user, 16), src: avatar_icon_for_user(user, 16),
data: { container: 'body' }, data: { container: 'body' },
class: "avatar s16 has-tooltip", class: "avatar s16 has-tooltip",
title: user.name title: user.name
...@@ -119,7 +119,7 @@ describe AvatarsHelper do ...@@ -119,7 +119,7 @@ describe AvatarsHelper do
is_expected.to eq tag( is_expected.to eq tag(
:img, :img,
alt: "#{user.name}'s avatar", alt: "#{user.name}'s avatar",
src: avatar_icon(user, 16), src: avatar_icon_for_user(user, 16),
class: "avatar s16", class: "avatar s16",
title: user.name title: user.name
) )
...@@ -137,7 +137,7 @@ describe AvatarsHelper do ...@@ -137,7 +137,7 @@ describe AvatarsHelper do
is_expected.to eq tag( is_expected.to eq tag(
:img, :img,
alt: "#{user.name}'s avatar", alt: "#{user.name}'s avatar",
src: avatar_icon(user, 16), src: avatar_icon_for_user(user, 16),
data: { container: 'body' }, data: { container: 'body' },
class: "avatar s16 has-tooltip", class: "avatar s16 has-tooltip",
title: user.name title: user.name
...@@ -149,7 +149,7 @@ describe AvatarsHelper do ...@@ -149,7 +149,7 @@ describe AvatarsHelper do
is_expected.to eq tag( is_expected.to eq tag(
:img, :img,
alt: "#{options[:user_name]}'s avatar", alt: "#{options[:user_name]}'s avatar",
src: avatar_icon(options[:user_email], 16), src: avatar_icon_for_email(options[:user_email], 16),
data: { container: 'body' }, data: { container: 'body' },
class: "avatar s16 has-tooltip", class: "avatar s16 has-tooltip",
title: options[:user_name] title: options[:user_name]
......
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