From 9a6a2d9b78f7c339594dcaf17ea76b4a309e69a2 Mon Sep 17 00:00:00 2001 From: takezoe Date: Wed, 16 Oct 2013 02:24:40 +0900 Subject: [PATCH] (refs #33)Improve avatar image searching behavior. --- src/main/scala/view/AvatarImageProvider.scala | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/main/scala/view/AvatarImageProvider.scala b/src/main/scala/view/AvatarImageProvider.scala index c5ae04ee1..c32091e50 100644 --- a/src/main/scala/view/AvatarImageProvider.scala +++ b/src/main/scala/view/AvatarImageProvider.scala @@ -13,17 +13,31 @@ trait AvatarImageProvider { self: RequestCache => protected def getAvatarImageHtml(userName: String, size: Int, mailAddress: String = "", tooltip: Boolean = false)(implicit context: app.Context): Html = { - val src = getAccountByUserName(userName).map { account => - if(account.image.isEmpty && getSystemSettings().gravatar){ - s"""http://www.gravatar.com/avatar/${StringUtil.md5(account.mailAddress)}?s=${size}""" - } else { - s"""${context.path}/${userName}/_avatar""" + val src = if(mailAddress.isEmpty){ + // by user name + getAccountByUserName(userName).map { account => + if(account.image.isEmpty && getSystemSettings().gravatar){ + s"""http://www.gravatar.com/avatar/${StringUtil.md5(account.mailAddress)}?s=${size}""" + } else { + s"""${context.path}/${account.userName}/_avatar""" + } + } getOrElse { + s"""${context.path}/_unknown/_avatar""" } - } getOrElse { - if(mailAddress.nonEmpty && getSystemSettings().gravatar){ - s"""http://www.gravatar.com/avatar/${StringUtil.md5(mailAddress)}?s=${size}""" - } else { - s"""${context.path}/${userName}/_avatar""" + } else { + // by mail address + getAccountByMailAddress(mailAddress).map { account => + if(account.image.isEmpty && getSystemSettings().gravatar){ + s"""http://www.gravatar.com/avatar/${StringUtil.md5(account.mailAddress)}?s=${size}""" + } else { + s"""${context.path}/${account.userName}/_avatar""" + } + } getOrElse { + if(mailAddress.nonEmpty && getSystemSettings().gravatar){ + s"""http://www.gravatar.com/avatar/${StringUtil.md5(mailAddress)}?s=${size}""" + } else { + s"""${context.path}/_unknown/_avatar""" + } } }