From c641dff09422522b7de651fc77292d89f137746b Mon Sep 17 00:00:00 2001 From: Andreas Brandl Date: Fri, 9 Feb 2018 13:07:19 +0100 Subject: 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. --- app/helpers/avatars_helper.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'app/helpers/avatars_helper.rb') diff --git a/app/helpers/avatars_helper.rb b/app/helpers/avatars_helper.rb index be11d453898..16e9fbfd3aa 100644 --- a/app/helpers/avatars_helper.rb +++ b/app/helpers/avatars_helper.rb @@ -11,7 +11,15 @@ module AvatarsHelper def user_avatar_without_link(options = {}) avatar_size = options[:size] || 16 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] data_attributes = options[:data] || {} css_class = %W[avatar s#{avatar_size}].push(*options[:css_class]) -- cgit v1.2.3