Added a new directory for storing user avatars. Added a configuration
property to specify the default avatar. Added the new default avatar as
well.
Signed-off-by: Darryl L. Pierce <mcpierce(a)gmail.com>
---
app/models/user.rb | 5 +++++
app/views/users/index.html.erb | 2 --
app/views/users/show.html.erb | 6 +++---
db/migrate/016_create_config_properties.rb | 1 +
doc/ChangeLog | 1 +
public/images/users/avatar.png | Bin 0 -> 7063 bytes
public/stylesheets/details.css | 5 +++++
test/fixtures/config_properties.yml | 4 ++++
test/unit/user_test.rb | 8 ++++++++
9 files changed, 27 insertions(+), 5 deletions(-)
create mode 100644 public/images/users/avatar.png
diff --git a/app/models/user.rb b/app/models/user.rb
index 862cbbf..6486b25 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -132,6 +132,11 @@ class User < ActiveRecord::Base
result = gravatar_url(result)
end
+ # load the default avatar if all else failed
+ unless result
+ result = ConfigProperty.fetch("image.default_user_avatar")
+ end
+
return result
end
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb
index 7e4d194..e2b875c 100644
--- a/app/views/users/index.html.erb
+++ b/app/views/users/index.html.erb
@@ -18,9 +18,7 @@
<tr class="<%= cycle('odd', 'even') %>">
<td><%= user.id %></td>
<td class="name">
- <% if user.avatar_url %>
<div class="small-icon"><%= image_tag user.avatar_url
%></div>
- <% end %>
<%= link_to user.display_name, user_path(user) %>
<%= RedCloth.new(get_first_sentence(user.introduction)).to_html %>
</td>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index 67edf4a..6505490 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -3,9 +3,9 @@
<dl>
<dt><%= mail_to @this_user.email, @this_user.display_name
%></dt>
<dd>
- <% if @this_user.avatar_url %>
- <%= image_tag @this_user.avatar_url %>
- <% end %>
+ <div id="logo">
+ <%= image_tag @this_user.avatar_url %>
+ </div>
<%= RedCloth.new((a)this_user.introduction).to_html %>
</dd>
</dl>
diff --git a/db/migrate/016_create_config_properties.rb
b/db/migrate/016_create_config_properties.rb
index 6c5f0fd..9ebc996 100644
--- a/db/migrate/016_create_config_properties.rb
+++ b/db/migrate/016_create_config_properties.rb
@@ -64,6 +64,7 @@ class CreateConfigProperties < ActiveRecord::Migration
)
ConfigProperty.store("image.default_project_logo",
"/images/project.png")
ConfigProperty.store("image.product_logo_path",
"/images/products")
+ ConfigProperty.store("image.default_user_avatar",
"/images/users/avatar.png")
end
def self.down
diff --git a/doc/ChangeLog b/doc/ChangeLog
index ef42f89..c8c374b 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -12,6 +12,7 @@ Change Log (0.2.0):
* #109 - Product descriptions can have wiki markup.
* #110 - Project descriptions can have wiki markup.
* #111 - User story descriptions can have wiki markup.
+ * #114 - Users with no headshot get a default avatar.
* #117 - Projects have logos.
* #118 - Projects without a logo show the default logo.
* #120 - Products have logos.
diff --git a/public/images/users/avatar.png b/public/images/users/avatar.png
new file mode 100644
index 0000000000000000000000000000000000000000..97d9576e83314dedc243ca2b798267e42b92c563
GIT binary patch
literal 7063
zcmdUU=T{S7)O8vy^xmr=i1gk`C`yrzf`EYZPNbIz3H67fAX23SK}3)yMLGtlN*6&u
zflvfQN&tm`fjsebt!F*|!n@bpx#ymJ_W3Zg&wQCQOY`gWP#!1%0H8NEGO#A^sK1LE
zOuqlZJvk+B;7~ndTWV_RuPYWf@(Eyh!`6^QA}J~=D#?pUUb!MEAxy3!AOFQ*Fa`NY
zj>(e$n->-q=H}-9UzV);3qfusCZ>PM|I3PB;`_(`Yel9wSQ-D7kppt)|LsFABeOhQ
zO#hPPwq))9){p~oe=_y2j2tunRa28C<d_~x`A<b!3MDQ1lfJl<X8lQ1KBNhE(xl_@
zg!{>e!^yDg$>42bzvJ<s&HjJ`zR&vTy~!^2_Hnljq04^ro&A1~HNM+;quYA3^9HWd
z;kelv*I~WhX1(8X1K()5(W1Z6V!YI1z0_<n*KD>|XM$_g`_g2+Rco|fufJ3aU#u~j
zsWsVnb$zeG<V%g-M2+d@OM~SKy_rhw*_W{K3X|O;qwxy8tzv_rmsUd+#;+<$2FeYV
ziuAt}!3Qy>lSSI&#qgbMgYVh!r5sp)5xl#|xVs3x`$&H#8#bN;+f3IV%hnmphApMT
z-{u>2W$Sh2s5j>teR&8Q$b=0%(Q0|B*OINdkqjSysN4TYYcUyC|3tg)iNV_py{>f4
zmUPY9zn5NRx?V+^W^=N3U9#4T6j()~MsX7Szr@Jm1g#hG>bYp`JQVy{9IODTo*fI%
zj@5V+151zA$O_j;4}+(NX(WfjQ$jS-Lu8WzbrbzHll<jl{o%2G8cDtq;Xc|iUdkaJ
z@Gy7H7<b7)H+Y!q6<<fa5GQdzM|t<#dVaUBxZc$Bw3e{5)_1Z}cDE3AFumenB4}fx
zZf2rqV=Ql~uVA4kVx`Bcr>kb9BL>%$H__yVtBdQY@u(|a(Uj*R8&yq)S@9~LyaW^3
zAu^(jWRqMGVY(tjD<;H5Hle5hoe(dxF!x_$kiEpq2_-v+i-r21VgC7qiV8$_9mU_t
z0K6aKW&;3#fG}%w8vyfPi2Mb42n_z==0A9Oc}4!ke}7RxM)m(g=U<GDjxPSi-d~Uh
z>i<`89&|O49|;Y@=yoUoK+E!X0Y5Fq5y?rxFhlz=n_#c7$h#q)0JFR9A;E#39=>;l
zuK9*|Mh1uYhYG2+_<V{2060#J4dAv>MZ1Nuux!tsA$9*C&ylw|GeHq|e%4g9cz(~V
z^EXDLVKC0%pV9{9Y<67;C4;Gu{HGfl*$lCCljy1^m-i$h)0q0ZlA|~lMPHz=eSWg8
zkQcdh^yj=}^ZsV>U0YG@P0Y~@8W^C1**qbVlS}gVk(Ajk#ItcKfjFY?uwrH<CXTQ|
z6?YyCj;#V>_mPAj_c%KO6C^bFnFvyIv9a+nD+NP>gzw?0%V&hPd$$TDG-^0(OxMs0
z9~aJ3c^oxxnlBEf+lK1B#e(h=Chn+Ij(u8)a&0wd=VWDNrAo6fn%vmcoigD_sQr^X
z6o3EDmZ}ckskP5HP&>2I3=k2(XDUU}bK{%aD~(w%{Z!1LHezf9vBt`|TXyt~+1;(E
zh|5HZ#KtLjvJ`84d%5{`@AH%7)Oue{x|nst&gliGsz({7>y+5y308^%U0n{pEb95J
zCXzv(gtI9HmbUD-hqE;j>E@<&iywF7HCCb>?3~SKohF?6LOLb5qXGKGM<j?>RxPl$
z^C=4pi!UJwV|EvG<W!I`2B0)fald8B6}dSv#2E8=4-sMO_cV)z$s&wTn-zuI{4rf=
zQScZYZ1_~q+B)c=O>?B~Md;?r+k?r|M=38vmDvFJDVAw=ltn>8#uW*mwH))o9GwfM
z?^fGy?}Pmob^h7`$1DU9h1oa8=oCK@uGepaE7e)~<c+$kOkGTabrVUi`sPDLLusi+
zVZS$zrYtsRyuxtT3~*pw^Mdiqmnn}^+WOlJ+^>ecX9W*1#>}qxT)p7JPyTr$Z>8WY
z?`0GfB_XP%#m5c{n3W1bg&S$CGR0!J=lt3{wdiyMO|3z7U0i+<oW<DeOe_|gnVE^R
zREpw1bIolQkUKaS&@K!7_6UqyR+);f`?Z!azqQFK@C?IQJgu+KG(m3!r1R?J79HFS
zPkXED(%rioXKvFw<ZEn<#R!V!V7~AVj<Ik_&?3O?5LW=N($3_;pv=_8rej@JeCy);
zvqDN%7_#d0`&6nVF8hNI6Uzg!{Jp!GMwGHn#l684-ln%492~6O_;Oqv@LfN+F4$Em
z6sQ@8WbjHxO8EvW)pS8E4==krJi7(vbgm-yXCUZF><>DD)JZlpqKWnn88pVeV{)|T
z`-zUk{?KTL+FRuhhE6lw9AzI1<`seVH{|BUgldyc-?T*z4T}4IGJkL!S3k%*^ibQ=
zv6<(QB)VR=hp3&pzXG6qz7nAOA_tW>WUr;tFXp4<TU*wR(fm}pX*h(Ic4%=ZhJ7iK
z@I8suPGA?ByyMEE1zP99({n@0PAPa81N~|*H|g)}F4qxjgjD>Lc-GgRi%UKr*l_FG
zZ&*Boyo+9srhc-(WD2_u(dZC+rR4BvN+jZB^W(2fp=Z`JY8Q~fj3RCKGg~7AuAR2t
zUP#OUMIN0!a|7+x$5Dt|J}?_rezWiKuWvc0t#bnc<tDYa#3mt9dKYy4p>YT%nqi-K
zQl9WdJ){(%rPtmorGVn@f2c^~Gn2#cCr5lG8cu+oRwv~|&89y{_aHVj$PF@zFsVk}
z{wOL3K*F%=_%9z&khy5~tED1|msTIzIXujOfe~?hj|2(RTrR>wIk1g)JGwLw5V24E
z4^>iWuaxhl1RKRgjZ)OLuOd!&#jue47M@jiAcvtfP((y8O;GXxoR5B23A^X-KM?y=
z+=3FUB{S}=O8-W*G-Ys>OLI4GzfYVZwg3u2y%X_bz6uafp4&nT@(2h;K7XeNIFrLJ
z&xO~OPa{P&V?yvhZM>#cglJzG!9uYI-@d;sU#4EAVVA{b8LENhklXPn3(C5e&wH7M
zH?c0lI9-~nh<-PfLQSa+R*EU%6`Pl%tDrUpUj`+fK(E*MNl!=#tL*lSpYoclh|Y05
zBt2eXlpv~aY8q;K4W)_(+%5&PH<tHV32WpozCTb$?RI~PDbPV0F)>sXV4*De=7j&`
zxbCA!>-`R){-L2q!VZT)+As=gI=L_fG=r)5O<|9ZE@a=d(Y*Lk$e*{<2VXO6G8f|%
zf}ZGNQ>iQ%@Qeiir4NrEA0N+d%q{{C6%gToKrs4IZUhUA!qim1w+msNSqOV=W_G?H
z`7MG5y-a(2?iWp2<^yJ6WJqb@FJAP~@DB<OR&8k&fZ9O`Hfp*;9qboOSBf<Kf9!0_
z-@I(tm+;@?$Bzdt8v%jEJ!Z&RO;Spln`Ss*4B!m%G5~1H>2$t1m!d0in-}E6El?9Z
zb&!e@5)v@e`0;P|INa60%+L5PU{o0EZ%j=g%x)MPo0(~^vIQMVB3f~3FP=b|l)<wu
z2*NKy0%en7S>b4|e!$h-XMi6UPv-{YsBQdvc~EEy3Mmd#ZwtGTxcfw{x$JWHnP;|l
zB>A51|CYqpM2#C!050h4k@Cjee=OcQj=vpw)6A8a*ak<fI!LS~COX$EN9JGgmbUJQ
z=@_NY@$}4bnc46S)95zl`}v4OtLuF!Ai-~4{L5ajk6PG!kC$oQ@{Tt=n-UZBzq3FZ
z9yVq%>e4UG&_OMwS$C+RsU<Q|zrt?$g>zr;&kMqfAo9v9S?W0LQ64s&#OszHA}D&q
z7!M99Za<@rV}ZrUU8qT^N$z`e&L{cWN#Fv)B95DXhIP2Tj_Tw@ix&q{cG1Cr3}KCu
zAAg1N*XGzHCLDy|gqgSw{fsPyrmTdd=w^5Q6|GNH74HX7R>1N+^UUjm*#&<qfaCA+
z8M}jMd8JIy3=e-~#za`!=Of`+I5<M_aQk(A3Km=<q$A}f8MdEZHSK2ok>}ah31e5-
zTKUjye%bU-2DNUb-rC1?Wpw%I-y?Q1*^;nY51rGSHxP2^>9oUQ)KGZiRVC!=#DD4U
zZ$en87?eu_0(!%NkEW*X`k}Zdf3Em^KDoRCZ)1g{b4K!Hjf3`^?dJxkGb^863-<(h
zF!9__1wxh9XY7`vz_|=-*FOgHOFJ}rRK$2g#ct-6nHvK29}<iN(cVQvbX7bo_C0d#
z&kwE^`<<WVm^#yz-!mMBK2P8HSeU6AwK1CJ(c1@O<CD0h$6_m)!xItJ#`n?^7{Se;
zj@h3E$!hcnqrd03E<IBT<k50YTz*1xwNlcb=_OOtv>}G3pb53IoR)NTUPO!j37`b>
z8E^VjZ;c9V{nNB0uivp|w%!Ur+u(NkzID0GU_8ofW-dshT{DH-z(DAynWtLp#%Oye
zr&Lrb)#*bY5DX<~C}a&xA5=L|E$Kw<x?Q23q?2-K%;X)-=ZJ1Rk8P{VKSGGSyk^uA
zx5h%CkU>j~)ipNWF?FRB)p1ILxqgu;m;afx6)hG0e#(maE1(da+=%seabSqMw_S7U
z^krPGOErHxsI-5i&!sC$9*UgtO<t_GGGsRzJa7kw#ax0s!)5Fdc}qgyZp1R@Pa*w&
zZ_8?EjuwkwGIC|OK3;UXQK%?(RzyMT1j4#>1<aQ%jK3`3FgLZhMEy$nLnfOffQIX8
z>>y(ZYnyM`T4zxY=t*#^fYZ4GHP(xbCT#dyd#JahLLTKlkIts-#V4nxm~hsbjXDK2
zT49}JnjI1JDueEcOxM^3!Q1?$C{DrN$M0;FR*gQ)-a$mY#E`?4K(R;ke8{`dW8d9D
z4~b!@u@xTy#jp%3a}+>MBJag}hw_bt)3|c>m_el*o`Bw!AFUUu({41Zm<VpJej`2d
zl%KF(ufOw#0JCu9<s0!pvl#=1FvWK!McS5MEc&<be+Z$e$%MT89$q|fX?DJ(QI*5!
zw6Im`PDhx$R_=RzUhSREouk<%?cx1xqIE?sA;t;R-rhbxKgeo+;)&0kxuB<h(Mi*F
ze%u*sIQ!o7#p~BihxA*`@1ng)R9-XH73uFN3I1Q|hX0%;Q7{5L<t4{0JWb_z-L+QU
zaO=8-qhK)|DYP{>(Eha)zmFe3LRrB28!~&QH@(=s=sl!O-^U7aW^;(ASfqK=13;ZJ
z(s&7KF1o58&vMe=fxa>k$TF%v>0sC4B8vTA$?x_*N)}8&X6s$vQ7?Zg;NP?Yut)&V
z@sXSjPf)ouC{VNT#$qI=Y#bGC&PAY{ay#ByCGZT;1Qqa~4VZ%w!-Yy0=;q%BHoXQ{
zfY{hPRAZrYccFCLHMDkk7ODP}tgo?G(kJOB2&B2@G+rdWH-#SmN1qP=CHUKDqggv7
z6wN?%vk?TY{3i+s3u+kkgdyj#$&~?To!RtGu9s3)S_8j6X$;*omw^!zc0Sz-23<?c
zeda25Xeafw$#z3A^+cT{Xnj#PoT5YA)r|NEil&e<ECHP?B)hA(&m|)+JGFnChV{A(
zbOueojE`a_KoUTL_kS_31uym#(;zR@Iba+<2TW~?GDX85o~z?P4cU3^d~BfCI#Hx^
zM#QS;MI}Z-ZABepMw$&AUVZ~U#q5W$mzK^ofmF@d-i=HQbz43KM0$<b)s!!K3@mv1
zN8PGDg)!g8*>I$p6B&Jpjt5^NE;l67HZaU}$3|A&CUzHM=_el6#vV2ygsWds{+z8{
z<Ndgx9HJt@h8V?|oEkiiyzs_cfuLM$V|w+mn;EMGhwq(=z#Xa%?dErJ)^o6xC}Z4H
zi!*#{Oge@J>AOxLA#=8{jhwuL3wj<am@V|wq|^-rrKo!YfAH;|7HQy+xkV8F9K>`P
zUto)pJ&FQ8c-Zr1elLWx%@Bd?6vvpLKy6Qc$z$8tv{r`2HIfcmLwalhEC8+beD|`U
zScvL;@;*%H>LvCdbKJ#$6m(ijI@zG_5tXcwig@z-kz9e}6zSHQpls}%d3(Ohq}Av|
zEob7Ju1u5C3RN1RhJu>ViBy64HY=W^TPlceQ9_O%(9$r6gnsYWOp=xk3&J`-dQYNl
zcb2Y$EI}<PbSlA1ZTHSQOg%2qN)u|;0{T}Qm(49&gO@uJk37*`T5=K#cbpuoJlXdT
z*$B0+q)mZ2Xag<YJcT=8X_OwJL$Hw;xgMf2ouGfYtZG~Bf?p~K`3k^=f*H=JGQ64i
zYLIvtT4~w<DHw%`aR)fdQuTP*_DmUfYWLZUtPs*3<-t~edH|JBS0ri|{uIw`E-^(W
zJp5x%^QrlV1Cf_?#_LfES81bj#i~j5m?Y!bF~2pQP&le1-xDOhl#bA0m5{8hQ(tSR
zzq|KdU1D_N!$*U}u-Y*Fig^>uD@mJBo-q|ddpgy|V-I7BQ;o6_q>Saw(7D;o*-5Hp
z5$1(sJsJedr%#^_f_K-4je?#?ox7%9d&&TGi!m{YF^SRWW^Mo*SaX#S8Ub~QtJ@v>
z-D7~-#4~MIR|weB$c9HEtEh$m`p<zbmP$lS+mNB~&%`{(t5+~9-^E^9=OqljSJgLZ
z-_!)bf(2A(LTdrZsPe|7%UT)N`X-IMk@+D}*dPAlV>&2qXZbiO*v&gnao_oQMnm5Z
z@F)#aB;I%h`UTQ}WhNM`%k^j!WUxih2Uf>M99~jmtmK`Sl&Y`NUAs?-L<+Da?OOsC
z0Q3kE>lXWjFlP^GzPhw(li8}7UpH!B*Uog(g=w5^t&W6^%hp!=hWr;9%Srfdu%Z`k
zY#gUE0}xYCm=vPd+8R#~7yJI2<H%S$D1Y0eX>7LVYI1LQRm}k&Fz%N9bm+MEfu96w
zx#D7W!`MDeOl&e${k9LbI`dgBWz&=AYhh8<i_0{s7r9`3)}veg78&JMuS01M-eu#X
zt)ce79f3-DPu_)O#m^L{>g^32rPQ{`>2z`{^^Xiy-mVtDyH%JYpsoFuqXOkz|D`jf
zq!N4S-5D-=>fp604M9tGu4mD)@w$SXtE-{Mr`OxR@!MOas^LHk1>u%|V70;QRXl<!
zKW}%u{#CWQC+DD37Gvl0$y;|G7XrCFxan>)CBpYhKIbdgcr&V^M8a}?e?!%VLZwKS
z*wdL**$40W^Egl}_U{%Qo$c-agWeVeK!1I*WdIXA2Cw=1oAIj@(nA6sN4RGtj6*TB
zs;KBg?jmy_f(cFYN>|#c4nQ!c$p%~odZT0HRaH~jGRK^?M)IF8mPz|4h1+*@$mILA
zigKs#-95pWob8EdrP$ie@b9zBI0A?mss@M;_CaP2_`?_ljltR_PB)`JQM3WG1qFC@
zu;`Ebf|u@(m;WIJe4nGmvr!WtJnQo|Sa~yYct2>Lef%>TPV*WxStYpDl14A~VXSvi
zLy_KnINY@4b3_1c=W^+P1WVMJO~k$TV~MiCcnK%w<6GHzd8U-7qe7{@Zv^bKc8ZDu
zsvn8W*KA_p9l)}NgS__~h%P&}J#Higx^QSsbVph|nTXt`s7_KK=-5Q4H1%$_Kd3ex
zv$MBfXOWPWuCFG4VWI-?IS^!=H>b>JyQgsVFi<YgnP2R%A|aEJdh$p|dT1-z(9p2R
z<w4b}Dv}l3&^M$f5HkdMQ(M<jUDj1rR@Mw@tq8c4qW4ydJNLe%#ISekSHomO;vnxN
zf$H8jL#1=0RQ^{N%{IR}-G?);9^R+am4z;s!v~xjU|?(}wnRJD=YE6SCB7=Y0XwB5
zL#4Bj)jnld8zaGvjZ2GQ7gttW^|GV7+D}#m?2?t7jI$O=O_Td1U|ufYi4WKtdE#Oh
z-^I&=ZH)&d?z0;F)ct9BS5{Jp;ULfCURD3qh#}5PB}Wr|9BQ9i1(6C->2%woiHALt
zhgl&dS=J?PoO$=rEkoBp7gLG}aw`JM7f`zP=yaiD6*N5jxARNv-R}azA?+S8LDQ|T
z0f+Yp>@!%>l+2B`;8(%%4w;g2>vpWAlxDwwE6>c_^s!no-asB_`dMyo7%pBvPbI!N
zq1*KazJloQ0l;6Y&SJJ8qf6D2e2?vDEIM8*!0M|P>>~LH?kV&?y{YglbnWixHq98F
zbm%%jmZI;j+09<e74PTuoR52|V_fdov<hh%664HJqPU;5#S$gzaRk@<{2I15<tZ|Z
zrg4|CF^s9?s*`S^Gwldc!-WMv761D;|DO1R?#hfTy*tXXiFVB2*Nv9l31@;RQtIpV
zasU?{f6THyoGngcfZgx7o$V|)Vay~M#MtC=vKwtxgqT74vZOF{d(&O;mK>2ZV%Q3S
zVt&WFogVy>*-`n#j=svkG8pms`2x6`i|$XNpv2q+@#niYbT>fKFRXu2*fH}R{H~OF
zQ06|0N8{&3OMy2M??93T;lPp7Y{bm_obB!VO!<G#ULMKCvtDCJpD=|fa~*SWz?(6;
z$v4#`uDaUbl6FEZ=!vC07q|mKAnDT<bKgACMcG9Kmi(tggyQ+1p?G6x7TC5d<!Qw}
z-~wS&Xx9Aa5w|=Nhm7WUMcs#a=DNvH`B)Jg3_R-%E;K(!EM1;+;nU1IN)?I+fWD!w
zeA7j)&*ecvwzT6r(s&L_*>2+y(~O+E_(}-Z`7pEP#h=tuhNAtK0LnfR{<FPqHQ1==
zbj5c1U~O4I8%e<T_T`rkWnj*pe>Enpj|J~+SzU7K6I8=+)8#&tLne&?)n=FW9&(QB
zj~D62zv=v9PTC1xwJ!xb@9Fe2=I^hmGxl9i=TeWU!3a^0>T$#Ig>n(UhONpoWu<#C
z%1Bx0=-to5Q}H~SKoj`Ax!s6V{+06U@*0BY%3M7os4H?*SzPjdpSPys6Vj83X-&-L
zwUN>X_t~&$(a8h@4<+TL^FC2x%Ub7E1XZRGz1`k*HS_b9p%Lg-X|^j*diu_D{o9+0
zMCI?Dd>%B*&jk*?yT3D!s_1haJP6MK#TDa&7_yQT4m0Wmmu%iU)~TL{u#ijxWJO4v
f>!gX64<x|8gMn!WCgbVf-wMWt<_2|ot_lAGT}>`r
literal 0
HcmV?d00001
diff --git a/public/stylesheets/details.css b/public/stylesheets/details.css
index bd8e2f8..7cd3047 100644
--- a/public/stylesheets/details.css
+++ b/public/stylesheets/details.css
@@ -7,6 +7,11 @@
float: right;
}
+#page-details div#logo img {
+ max-width: 96px;
+ max-height: 96px;
+}
+
page-details logo img {
max-height: 64px;
max-weight: 64px;
diff --git a/test/fixtures/config_properties.yml b/test/fixtures/config_properties.yml
index 274b58c..29575b4 100644
--- a/test/fixtures/config_properties.yml
+++ b/test/fixtures/config_properties.yml
@@ -9,3 +9,7 @@ default_project_logo:
product_logo_path:
name: image.product_logo_path
value: /images/logos/products
+
+default_user_avatar:
+ name: image.default_user_avatar
+ value: /images/logos/avatar
diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb
index 063517c..7c27c37 100644
--- a/test/unit/user_test.rb
+++ b/test/unit/user_test.rb
@@ -89,4 +89,12 @@ class UserTest < ActiveSupport::TestCase
assert_equal expected, @user_with_special_gravatar.avatar_url,
"Wrong avatar URL returned."
end
+
+ # Ensures that a user with no avatar or gravatar icon gets the default.
+ def test_avatar_with_no_avatar
+ expected = ConfigProperty.fetch("image.default_user_avatar")
+
+ assert_equal expected, @user_with_no_avatar.avatar_url,
+ "Wrong default avatar URL returned."
+ end
end
--
1.6.0.6