From 461834f96d51b0e78a8e48abb113eb747b3f581c Mon Sep 17 00:00:00 2001 From: John O'Nolan Date: Sat, 7 Mar 2015 22:35:45 +0200 Subject: [PATCH] Introduce new help menu --- core/client/assets/fonts/icons.svg | 9 ++- core/client/assets/fonts/icons.woff | Bin 20828 -> 16280 bytes .../assets/sass/components/navigation.scss | 69 ++++++++++++++++-- core/client/assets/sass/layouts/editor.scss | 6 +- .../assets/sass/modules/animations.scss | 4 +- core/client/assets/sass/modules/icons.scss | 23 +++++- core/client/components/gh-dropdown-button.js | 2 + core/client/templates/-navbar.hbs | 20 ++++- core/client/templates/modals/markdown.hbs | 2 +- core/test/functional/client/app_test.js | 58 +++++++++++++-- 10 files changed, 168 insertions(+), 25 deletions(-) diff --git a/core/client/assets/fonts/icons.svg b/core/client/assets/fonts/icons.svg index 7ff67a6e8c..638f0cee2f 100755 --- a/core/client/assets/fonts/icons.svg +++ b/core/client/assets/fonts/icons.svg @@ -31,7 +31,7 @@ - + @@ -70,8 +70,11 @@ + + + + + - - \ No newline at end of file diff --git a/core/client/assets/fonts/icons.woff b/core/client/assets/fonts/icons.woff index 798fd156fb48e0d5378d874f5ee53b46cfa25b8e..179ecfdc24dd9beead05b8655c24346fbe5d53f0 100755 GIT binary patch literal 16280 zcmcJ037A|}o$vkMeW|Kj`>oz;?W*b}bXRp%b)`e6)7e7;Nz(}lM36urA#90)G031T z0*^tFMG)TjUVwa#vW&`86vl;#%I8xQWkjD2q6YLae$ME;4|E2%>i7GfTfJnFdGGsX zs_NW(&$(wm|K<1ppHuJLvTmJ35@t-YQhesrdOr-AOU|#&k&+WeI zq60{~4Ds_h{P8D`{lngiuHm$25a+xc!h5g0ZV%GFB}vQ1IYdAGtKVOC=|z`F(m1~# z<)HUf9=i;QNSj2wmxKPO`n$`ny7my#keB*6+@)z>ymJ3;$7%LwSv51*c}Bam$k4u!L@41dY7=cW$3zzv`tjyz82Rig zn1ff)D+_&!NhwK+C31~i4~a{yQOG55iSY$9*?LZvTGDgRQSG_s_U_q3uk79X9DaN7 zp}*R@m%Bz%zjTm(Ks!*I6f5NoJ)WWD$O;;*mrHq<%BwV2)3j&xkp3+0uJ-iPv_m|6 zUDLiU-aYvw>XGrCpjmpCRFXDhWYzj;bAp#R0R&u+vdH9<)2no>;8M z?6iY%JC?SL9@FhA7Q0*?Uvl;j^eVU`B^4#9h%pUQNp~qk8Hy+8=d7sb%cXjAbi_-> z4SMx;)z#l;xN2I}DPX9tYXR+XO>2GF?y_v#>as2C%de{j1xQ!Z8fOh@udC|+P=o4U z^LvrW;&oD_wX;8=XXvL=Sn84TSh!qXPekI$T5e>t5vi97O1^|ytc@fSalO#YMRE~( zp!F@+ONOcLCX?=e)l5_4a7*ho^!lfs+u9UP;_YW$ujLw=ZWy{|^wS-!w~6)!rAhie zT_Hs=-ld?89EOyL8+sv!5jHTyTIA%U#>q*OG-K)bSgrQ`-;G~k=$2o^(v4YZacpLB zgy#k9Ab8?s>0#-!n3YPtkS{UiRq9m`*AP`f(-jb3sWDCG(wWrSG;$+k13DS;Hw_b3x|JHs-nj*M2(M12$_-p(-JjnXJ8X=m`e zVJu!PY8AYc6^^8cyl~hfqEsY;TQ2Ek5%D774!((3sYuvLd3nU~$)8ZHBh1Ap>m_rj zLsYm>%=Wwj7y5l+WTenLGSW+(s4PV?vbbm(g>5gDCt0R^%CkkIDHq+5+g0U~^VNzn zXbNqJGN{%s!$WA7;kq#dE_3@xZ=qI0qmn#3JNq&g?PbtaMv}Z{8k0NP0R4iTG5dxW z^C{S$pDp*rhdQ<#IIv~vfaBah^;&(?rg~%3rbgyIC-62T9+*m<7Qb(bj&5pja$}QE z6Ow4-6~B!lM9h2xXsqcqi}Q?vW@PF3%370il~qLRZ{vm>=e{kk`AuwU2>y^}k6|3g zq@dI(4X_*@N%G3qhLl1hF_MX?SS#6BGmqaq!5`f8O)hW3B(WapN|cZ4q6uZ(r;0sJr!Z zdbG8j9;N)(zV_(tw?FzdI={7^{x;o*PwNgEY<(Z?YS3O9#`_uQogTDTlvr2iD!gdb zT!mM#s^o^4{+l^WLtHl$G~Yxpu(FkSwFZvFGSjWCe>rrBB8Lu{ty%Z1Gb1F0&pb2y z&x3=X7#LWY32YCh=`$Bzcj&DbTzB1tt%KI|jvZTVYwNi?rY-8d;f5Rf`qXMw1;}9D zzjpQ&x)ZdNlnUq#__~s>G99JmYGp#^ML(X;G|;KMZ2Gju68z3yrm%4DER{Ox<>|4W z>)-v>3val-XKecKN}c`-9ydZ7^ZilDhW3sFX_U|sDu(!Ft!qH>CcK=HD{IY~S1^_- zSZqv4vPNGI1X_m!4&9Y&Jx)`(*8V27Mq7VKo|!!KY5hZ=xJ!4mmaGNn_JHFAUVr_C zXP+G%AMZ~lmnV}vw&?6J`ZefF@CmUB4aqz*rr>h3yqHVq*ZFJLH7;1&-@o>P#=2{A zKmO?_BPoaw1iEDDn!a@xG#VGI>s#Ht`R1md9077b8#zg)V{{awgp#2$8BL<5XV9@L zTF2@SP_}hh{){W=9K;US5PRW@4VY)>qTRDUrjIPrMa;a=MW@rB*G2F66)T}%vBo)Q zhe9@onOWcup@}vMP4qcvBF`1CYMQqF6PPxzU6r) z!vlW4Fu?-}GXEYEck4Eq8p`+Vs%`clS~<{>)(p+G9%TaW{gAWtw%m?zie+Xhf-!Qt zRY<}QU}h4Sr$Oj^h!H5-vf-6i@Opp(j0}0a9Own)SdQXi8WPPidW_GyU67yeWv9JMaE=Zol{3Q9)^L{#rIcbO6=BVPtJAHQg zg6Rvk(yep!^eOSs(Gl?<#AE?6w{dA)DobwxCC!s6GvSb2@O;?_p|BKmEO1IJLr=#86+_o&yh3Vb7nwMRWC}Ra3Y@R8VjnH zqA0QqeW`ecYRg^AT-A{I(~YE*r8rpBSC~&4Z(ZBhxAv{zjJ5q!nx+QyNC(Bj!LHWJ zJvmub98*u&S8KXV5l!imI|{0zTAH3PuThbPPuNmCm?Ri3FAi4xC}g8ltd$#uL>aQT z23cIA!xvw?Wy`E|;oC2~`r8-WyJ^#F-@f~9WLH@a0x!SPUQ0ksmX|EMS#0y2zWZG| z?S&UwFZg$Q<%JhscnboWnwxJO+D9U<=`{+T!eodB&CT1k|L&Z>J%?|!6xZKxZ#{0OH-ho5^x-V9e)|zEqpmPNPv3F30RN64Oj#P7zluXd0^j0j6on+ z-b?n-T;@hM$wNCl&x^(aj;iXqZR>i#F-@$}T2)b^v1G(Bg28AsXvbAeQHRxO@e1!a zhpNzorkrV+uA5Ax+)&UmEfe(^fqDgqPdKzNZldfaS_D~8U?$w+`wFoiMNY3r>P_xRSOM|%bbdq_?X zEWKds{b$}c9qZ$Cl68COU{9-+9vDa;U3x41_4NIl?%zsa07VMU{*Hb_|6K||N2JlB z0^q6W0-u+U(?ZQcxn|IBo=&bvKJ8_f&<#s6$=8ChSTGceg;K-rS?)Qsp;T%;RT>>F z6=ESy4#jqS@rz>ppoe9Q>j|k#T86bBEtN~UF@i;8mH~J*l5B4=0yccJD!xNH-Vb?J)yXf%|MDOx-YPOv(?pX|BhRdS_pvm*_`8tV7ar z=}hTt>0Q!$(SQ#td#G^o1C&&uEMO+M0~`ZBD!ge_XtXl)OJfeM8lDh^jHMDn9HJJX zXrN`AY~o{<9!`NzG98IzDwD#cPEXZW+YWdm;Mni79mnQyy^R=BZCc;Di}rucOT^;o z?m(BLT2b4ztTu$-SI-9Dk z@4O?L&`3{&!%0=ksG4OuHf7{M&)L&iok zX8^Wl=qs&>d+)#hC#@gvmnD-Dt$+H~%9SrqG@C3nf&Km!*sn)AL%JN2jP)>7Ns0Xq z;D!v<7tD%U6S^912V?;6gA+2afZ^&e+R7#gO(PgXKt?3`8C|G(|EaA?*}f~4zpqfHX1K=)hLVF;++MPL`I1BX z1E!&dE!9-7)@(h}?~P4Ojg3t~HLZ{-sYfg;YM7R$rAU?Y!^5b(SJxCnTP;J#=@D%; zcoT)Y6*cT8DuI-$E*~76_`!0c6Duz(<8YP)LR{n27_2ul#AtzLe}cJw0XWtJ_njt< zNKI*6S}ARlu8?kqyc$hNXQ>dEYEG3_54V(26@$l{NjK{@>m0UG?2Et zO~vlsoaohTSyna8f2!|HD&5=Rq>N%3pp3DZXoY4Yxv zkqz$&^g#2g&ZzAU8ESX8YOBS~iL@D1Yyc`Z8w@D2wni~IraST)OGzaI$&xWN4dt)S zwJp=#p@4zL-~UMK3o~KI3k<8ac4e`+diCmbv6$v-uS{xIwbU7}=+r12l=XUVy+e^Z z;jfZ|=Z#;c1T28PV5n$DjK8-c3QI)edB&Jh8{4wZ7-EYmwivP%7DqHDO<{B(RVXg6 zVF>Hv=x{DK%whh4W@5qCQC2B58H~-$ObVPmogW&?bI!T@gB8y5U?>_5Ri=(jP3_vn zdMpdRIwo)ldl)4z7t0laXbOpD4lrYou*kb;G7Io5%{-W;ne2nv$;mYB+BG@3E1Sg+ za+mA40d)WmX%k=~BT;T9M$@DlbVDN6wSC*sqnEtBP;R74Z#ip(-gETm4a(+&x53MV zvhM`$zKZSvK9QQq(Pp&?y#}gT!D@`XDD6ii4KoTCm{G7buw(nKC%x)l*d1o3s)bFg z`0yIlwTNt2S=p_p9LLgEsA1c3l@*gp*h2DXzZw86(UyYr-fhZud9`7XY@3H3vTO=i zKRP{N>RQUV(X#sCT+)f^OXX8gEE+geN7Aa7M;V7 z?PI|OfFa^utNN-N9OkQVuoq+#4+{fk*^i2<^Z}4|P?h)XQG*W1C!(o}OnrMHY7_%F z3hp~cn<TFr6I_~q$UiQYVjm|HcU^D zSVCj`ht6_91|nr%N3Wo3E{Al2e8TLKqTGZDR&**MPRN3vj0o1iRBu+GGlYGi$d`j( z22cU&QRK_8ny_xJ`VU#X5<0>a6Kv7HM9@R(I!^L`=%HdNx3M9`Jyw*zggygB;lo+D zf9n<3kQMn>1paWrbCE^f3A(`E$?VVQ_w*7h=K{2|6gv^=RU^I;=sPj0%`&UiA;LN` zxdSlqQq?%X)5;7F6;b_D{rok3eQVCIH~f2J^Zxytx9s1)<@!s|O;zq@yPA7U^bVd< zbXFl3-KUpOs!>0GZMnSGFWp+_m)yMn=GE7>i}^EwQk%J?>|w|l3;Y0(WxogZd!KX{ z?4~L-C72r2R~ska!(0ZNgH3fHyh^EBsOVL2EwlOne1AM15T93JmCEC*!eI=fDe00P zuOT&!Oe4(-dy{$GaFf9%5l-Z4a-;!JgO)1w1_-@>Sts z!)6J5-f)A>`@EN8T48AWeG(?O5GnA;LEdnmDtWl)fMJr=$_Us19fp8w6H}zYS8Q>z71e!9|H80Vjg# zjdElwMS`3bbpl93k`WoiI~qh@SPjU^F9X2{a*6^-TgbYE=<}V$qVUwwSkh9k!vOQ# zBJ3Pk)Gw}N>bePOsq3nhfCe@#Sfo${^T}4fpWV_!$fQ`wb#|v^k!^JX;XZrHM*rMM z(Bo4Lq&?_`k?bpVa<@B6R26-+bd5JV6d-mwaTEbF!F~06Y*_||VFugdFih9DsaT4*2~&qaEwVH=jslJRjG z>|o#LV&B1tv|5^$F2W3*s9BVG3I+vfRe$TJ-1L!DRe@v@7}3BB##p zjO-*qDkHa(eGt2r_A&YPEv4b};5^XIGXayXD>@y)V24wT4|?8Uy!E3$`|4z`#jM0! z!*y;KwWI>Qu_Z~=LdAtz-qjmO%{7o*5^KG5F6<)pT=>5PuP^um6Jl59#5t*Ykm-z( z;Q6RSmyWb|tN9)`swa=~qfe+o-PMEYIjWjh9CcK6)O!$ez%wWLPQUa7ger3KYvfe# zRq^1kZ3F!Y9Pqm~4ygP;;DGskGVt{u|D3wl>KixKIS9Qzj|Mn9^!gSb6|C~J)Hk9Z zBqe75js6LH_W|Z!wq=BOwo#x}H$CzQe$@N$!#Cr{d2f;?!He&K-%x6vI9+L=^0}$J zNz<0VQM3W!89jt&(toW*jf4@^4txoTOEkRGpV9R}ME*rH42}2IN!lu%PLIL=nnnHo zQGrZbQ3CN}J#;u%S$%TbuRQ?xVk(CpkQskH@Brg7`GLbolH~_peSp!wa`-SVhQg^p zY8*r6!)OX}i?C<6lD;6_P1tKKE@gBK8ejvZ4C5P20pB`q{3MVHj}C<22GYzCfD{b9 z!RD}58c_d?#vp|u0?UjP^6@I)81&!prQ_dQXk{a z;Eai%8C(d2fp_sr4G&xjkOZCc?IyTh(0lxRz2KAaeAnaoL>2CwxDH)`UhvH&oHpT; z89+wOdZme;H|wK(ZE#A1pD;3EMsUqlth#FJSHe#02)YTCXieMEFYDS8BkI^u^Ga;j z0P!+P;SazjqZt~AxA7*YaRNhj|3M80uPW>=EOElBEE_sKcV*#{xtPK2U4`aC;W&0C zSHni*^0KZjaR*$#Ex$H#mE|zr4#bE%z_t595u2LaWF+`BrX3@&T{YbA!AGR%${H0G zpuv`f=BP^ye6CVp5(ad|#1KUt?V3h$cLQsddDw+*mS-=pw z!-i{wx`9XT67e1vuCP#d0F|0S9+s;{`hg}5MN?P9427MFPUtoUhq1wEMZZjLkB1>l zAO*9@2^b@HL?pH^=&J4*+=qa!Ia)M_eUJYPjH8B)-xv!Rhw)462aInR=Lks+ob&&O zaU^LK81Y7&Aj7_5vr#J>5I*H5c5I-{z2<|vW@dIBojiIJ?vt6BBM1*pW*_8d-g|EE ztM$T)+Ai&u4nTmwMDkUbxcV5at+s^nVsw&#^72)fxPoO^+4(9@Tp8jSbMOxQl4vfD z6cf%hsn7ImUp&Pk)rfGeOm0n^ufQmPC7@rM7l=0QMyaa+ybJ-4EeLd zGXXPeF`|sLk!3q|{w$o>L1?n!*4|0L2{{9jkRdf{7Q5dt4(Fe-5XIyO&cMy@IC$-y zhjuDSJbfH|2i|ZFs2;wRh42?1Kt@nY@>P9fKB9)yxMgHHCoVKK_hcEZXVf4vCs9b# zyf+p{XqqQlOz@l^@EFST#um!Aj)|K{_^pTH*j5$SZ{h~H!8NMt9?s3phW(pv10vv! z=U=}mZs;xA_4rh2n|}Gs$P#$;HcD^DT6_jb;P@GbAJ{)`=uffcn;q?Wt$`fH+_q=> zggMm&LqLN2Gw%aB25~-=o979fn1CulCa@1Lee9Gxg6u*sFuw@x;&TmC$@6mybKIh| zo>`cDnp#+t)^CoR`*HA2AQz*RSZ=736(@7i(ex6{bj|z(rf)cR^hBnDe-GjhwSd*& z&!#hKF==4`GBSee=s~j<;A?)9I><(A5{?kI z8`_KwP~ndfXDS)V&DAP~i>iGp#Pt;78K4BMBiRs#vOH7}&j2 zqDBZwy8lj9PW5h`;c#ZhcrhRoAC|Bb3yY`__SaRYUo5Rm0Tpf&fCQ5L9K4&Q5_I;W z8~`ht+6xo`Hz%Xh)|Zi;3oE2T)5C|TqqHbbasWZ4M+Wa-d1nO(qV? za$TZU`uM7$H&;D}-&E~@gGx4Br`X`J)evkH#Q}Uvuy-PXGzSv}x2KIXWa1n^(%*=f zE?*s5b!wHm>eTAgFnk;B72uOYINyJnbQ`!7GzyowPopJlU@(nB{3S%nDd-jK2Xco) z(kI#D2p9I8;ITIPXwC^$7NjfuCGjL1Quw2s8^uVvK4KUBHHg@0|XTfzbA|KSEycj5Uv) zb?-;zgVmoAtt>zB1Z1rY@AP&#Lo|rV>JTwM0r{&QTJxJ))D99voqi$F6a+d1D)-9IE&9fU zR%OD(4mI-n85gw(yA!`E8fU4zsH{;fgNo->5q-rfcLlp$cc`;#C=~7v22)cXQ=hzSeK>;BcMgNkgy3Cg#QQDlOBZpm7$dJA_A+c zD+ULUs>x4iHg@zh5HgIijiFp1ly<}EP$1{7F(Ve<;62_Li?eNVIa}D}Y@yYQvpH7G z286d0wjG0y8O~(H5kZn4UwLBhI-G*Ry)(9>OXxAWG~da?37pwVx^99lcEhSN+-wd* zEUBtvdTV-nSL2L1PJ1CyRd7Chb#Lz)Z&t#|kg|uv3TQHt4Jpdyx`X3l{DXnI&5k=5 zh*x$@=m<9xNx+;HKiQ1fcMOz$tydnnlJ%GP*%9+=@P&x@DKp7-_$ECzCpx?@!3S}ecItGAF9&i)>42V6Wm$7H` zBKUd`{KfyCILRj$$q(Udcx;7ystG0nLi``OHu@n z3!gHKK5?!93IIpgah4G0IXt+Xy|OsTXwZ*Z8+nE4bA0{6WTi66Vb@e;vNA<8N%vnl z9hX^Y*Te*D+R3Bg1G{z|fSe2B%;9&$nM3U9*G8I<4(0ZJIVC+rah4D)=llJk^mH=Xr-Zh zJmbg~8!cn-A{|FOFgK-U6EBgw30yf^W(yP3aH=%nCxNVh*AKMzOK!#jLbiwHSt!Z^Pn1lK+y&t$5iaF3q%F%2ti?o!!||^SgDa2 zjySTWaW=q5o+qBi-e zC^7#AT3dAHuh@2{`fgk}SK(o$w_)%hocP0!5Boj&6&@a(NR-sEP$MGL3C*J|+ky#ONQY1}A;R zsX*jMP1wH0E^v)^f#DZw<18G+!bU5a^GhKWaRyKM682u9#t`*wWnZ^(bJ+L|Q5jV) z_&2JC*l6|(vI?xm&{d)Be0&G(hPv4gH0Sw2eSVeD;O!Qm6dUp{sHa%$;Xtcb;meoS z^>tY_pjqr>(23#fF1BH@94m2zG7>Puh8faVDp%yoBMxEBx`RcWGMSuoP4+18_N!lA&FB_Yl9$Plu z`bT=N0VC!P6G$CsTeS@X$AJ>g-~3Ggr~v*-#nGR!OT{~jpf^%C>)@zOwGX-hP(PG) zS_!?Xn88pqY-nBO;emLTPvxjq$c=?{t!H4MKcMFn{B3btsgY_}2nI#|?nKm1 z>KM2x2Ms4MRP8R~?~EZYlF60}^=dlD=NM${3OlfghN^+MrK-H~2)TsN^E2~_3*GVG zN)9%D@cH}fzr8Vc$Eos{1l6)7?!Ojg#Q$C;^?AH+sb3d0iL&hr?~=@axEU^r(2pP^ zBoWpk3?h&$&CcT9&cn|ler-D~ihB-WHv;m`hei33Sd_Z)j?;pR>bnE+-gY|RzbMOj zvLgIadMECBJNR{fSsI{kOB($b)HN;T<+JDdg~FH>|D_R09c!~t(ZN>7ziYdT)* zT-Eum&hK?S-u1m6oHiFLx{=O=wBipB>%>n;`eb|E2_x`JaL$l4)=pQDo^3y?cwXOr z*6{x-yZx-gD?QMDwt;QVhMpwVLJHUEKl^q1&wic$vtOtG?APf(>nJuEX^VQOjA#$xRRWIO)V$TonJmgZ;6j literal 20828 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 T%Wk|m?#2?DQHrO2o!|chm0}z3 diff --git a/core/client/assets/sass/components/navigation.scss b/core/client/assets/sass/components/navigation.scss index b740b0197f..41b784d829 100644 --- a/core/client/assets/sass/components/navigation.scss +++ b/core/client/assets/sass/components/navigation.scss @@ -34,6 +34,10 @@ body.settings-menu-expanded & { transform: translate3d(-350px, 0px, 0px); } + + ::selection { + background: none; + } } @@ -102,6 +106,58 @@ } } +// +// Help Menu +// -------------------------------------------------- + +.help-menu { + padding-right: 0; + float: right; + cursor: pointer; + + .nav-label { + margin: 0; + padding: 0 6px 0 12px; + background: none !important; + } +} + +.help-button { + height: 30px; + width: 30px; + border: $midgrey 1px solid; + margin-top: 15px; + text-align: center; + font-size: 1.6rem; + line-height: 30px; + border-radius: 100%; + transition: border 0.5s; +} + +.help-menu:hover { + .help-button { + border: $lightgrey 1px solid; + transition: border 0.3s; + } +} + +.help-menu .dropdown { + right: 77px; + left: auto; + + .dropdown-menu { + min-width: 200px; + } + + &.fade-in-scale { + animation-duration: 0.1s; + } + + &.fade-out { + animation-duration: 0.01s; + } +} + // // User Menu @@ -109,9 +165,7 @@ // Right hand dropdown .user-menu { - position: absolute; - top: 0; - right: 0; + float: right; padding: 0; margin: 0; cursor: pointer; @@ -127,7 +181,7 @@ .image { @include circular-image(30px) { float: left; - margin: 15px 14px 0 0; + margin: 15px 10px 0 0; } } @@ -176,6 +230,7 @@ } .dropdown-menu { + min-width: 180px; position: absolute; top: 0; right: 0; @@ -254,6 +309,10 @@ } } + .help-menu { + display: none; + } + // Drop it to the bottom of the menu .user-menu { position: absolute; @@ -335,4 +394,4 @@ }//.nav-cover }//body.global-nav-expanded -}//@media (max-width: 900px) \ No newline at end of file +}//@media (max-width: 900px) diff --git a/core/client/assets/sass/layouts/editor.scss b/core/client/assets/sass/layouts/editor.scss index 79a59ca02c..b3a7584651 100644 --- a/core/client/assets/sass/layouts/editor.scss +++ b/core/client/assets/sass/layouts/editor.scss @@ -344,14 +344,14 @@ .markdown-help { position: relative; - top: -5px; + top: -3px; right: -5px; - @include icon('question', '', lighten($brown, 15%)); + @include icon('markdown', '16px', lighten($brown, 15%)); float: right; padding: 5px; &:hover { - @include icon('question', '', $brown); + @include icon('markdown', '', $brown); } } diff --git a/core/client/assets/sass/modules/animations.scss b/core/client/assets/sass/modules/animations.scss index e8cd498e14..5faafa3493 100755 --- a/core/client/assets/sass/modules/animations.scss +++ b/core/client/assets/sass/modules/animations.scss @@ -28,7 +28,7 @@ @keyframes fade-in-scale { from { - transform: scale(0.8); + transform: scale(0.95); opacity: 0; } to { @@ -73,4 +73,4 @@ .fade-out { animation: fade-out 0.5s; animation-fill-mode: forwards; -} \ No newline at end of file +} diff --git a/core/client/assets/sass/modules/icons.scss b/core/client/assets/sass/modules/icons.scss index 6c85c2dc3e..777dccc270 100755 --- a/core/client/assets/sass/modules/icons.scss +++ b/core/client/assets/sass/modules/icons.scss @@ -41,7 +41,7 @@ font-family: "GhostIcons"; font-weight: normal; font-style: normal; - vertical-align: -7%; + vertical-align: -3%; text-transform:none; speak: none; line-height: 1; @@ -111,7 +111,8 @@ $icons: ( app: \e00b, appearance: \e021, archive: \e01f, - atom: \e601, + atom: \e03f, + book: \e043, calendar: \e01e, camera: \e036, check: \e033, @@ -122,7 +123,7 @@ $icons: ( close: \e01c, code: \e03e, comments: \e01b, - compass: \e602, + compass: \e040, content: \e02d, edit: \e00f, error: \e01a, @@ -140,6 +141,7 @@ $icons: ( list: \e013, lock: \e02c, mail: \e012, + markdown: \e041, menu: \e005, mobile: \e010, notification: \e031, @@ -163,6 +165,7 @@ $icons: ( tablet: \e004, tag: \e003, trash: \e023, + twitter: \e042, unfeatured: \e027, user: \e02e, users: \e002, @@ -219,6 +222,18 @@ $icons: ( } } +// Specific icon size adjustments +.icon-list:before { + font-size: 0.9em; +} +.icon-markdown:before { + font-size: 1.1em; + vertical-align: -7%; +} +.icon-twitter:before { + font-size: 1.1em; +} + // // Div-based Icon Classes @@ -236,4 +251,4 @@ $icons: ( linear-gradient(90deg, #fff 1px, transparent 1px), linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg, #fff 1px, transparent 1px); -} \ No newline at end of file +} diff --git a/core/client/components/gh-dropdown-button.js b/core/client/components/gh-dropdown-button.js index c0b3acc36e..245907b036 100644 --- a/core/client/components/gh-dropdown-button.js +++ b/core/client/components/gh-dropdown-button.js @@ -2,6 +2,8 @@ import DropdownMixin from 'ghost/mixins/dropdown-mixin'; var DropdownButton = Ember.Component.extend(DropdownMixin, { tagName: 'button', + attributeBindings: 'role', + role: 'button', // matches with the dropdown this button toggles dropdownName: null, diff --git a/core/client/templates/-navbar.hbs b/core/client/templates/-navbar.hbs index 54cdb4a3ec..f890c7879e 100644 --- a/core/client/templates/-navbar.hbs +++ b/core/client/templates/-navbar.hbs @@ -42,13 +42,31 @@ {{#gh-dropdown tagName="div" classNames="dropdown" name="user-menu" closeOnClick="true"}} {{/gh-dropdown}} {{! .user-menu }} + {{! .help-menu }} + {{! .global-nav }} diff --git a/core/client/templates/modals/markdown.hbs b/core/client/templates/modals/markdown.hbs index 65c1cdafa5..a287f8b239 100644 --- a/core/client/templates/modals/markdown.hbs +++ b/core/client/templates/modals/markdown.hbs @@ -72,6 +72,6 @@ - For further Markdown syntax reference: Markdown Documentation + For further Markdown syntax reference: Markdown Documentation {{/gh-modal-dialog}} diff --git a/core/test/functional/client/app_test.js b/core/test/functional/client/app_test.js index 223a0f4d11..656dd16efb 100644 --- a/core/test/functional/client/app_test.js +++ b/core/test/functional/client/app_test.js @@ -3,7 +3,7 @@ /*globals CasperTest, casper, newUser */ -CasperTest.begin('Admin navigation bar is correct', 28, function suite(test) { +CasperTest.begin('Admin navigation bar is correct', 45, function suite(test) { casper.thenOpenAndWaitForPageLoad('root', function testTitleAndUrl() { test.assertTitle('Content - Test Blog', 'Ghost admin has incorrect title'); test.assertUrlMatch(/ghost\/\d+\/$/, 'Landed on the correct URL'); @@ -38,6 +38,57 @@ CasperTest.begin('Admin navigation bar is correct', 28, function suite(test) { test.assertDoesntExist('.nav-settings.active', 'Settings nav item is marked active'); }); + casper.then(function testHelpMenuNotVisible() { + test.assertExists('.help-menu', 'Help menu nav item exists'); + test.assertNotExists('.help-menu .dropdown.open', 'Help menu should not be visible'); + }); + + casper.thenClick('.help-menu .nav-label'); + casper.waitForSelector('.help-menu .dropdown.open', function then() { + var supportHref = this.getElementAttribute('.help-menu-support', 'href'), + tweetHref = this.getElementAttribute('.help-menu-tweet', 'href'), + howtoHref = this.getElementAttribute('.help-menu-how-to', 'href'), + wishlistHref = this.getElementAttribute('.help-menu-wishlist', 'href'); + + test.assertVisible('.help-menu .dropdown-menu', 'Help menu should be visible'); + + test.assertExists('.help-menu-support', 'Support menu item exists'); + test.assertSelectorHasText('.help-menu-support', 'Support Center', 'Support menu item has correct text'); + test.assertEquals(supportHref, 'http://support.ghost.org/', 'Support href is correct'); + + test.assertExists('.help-menu-tweet', 'Tweet menu item exists'); + test.assertSelectorHasText('.help-menu-tweet', 'Tweet @TryGhost!', 'Tweet menu item has correct text'); + test.assertEquals(tweetHref, 'https://twitter.com/intent/tweet?text=%40TryGhost+Hi%21+Can+you+help+me+with+&related=TryGhost', 'Tweet href is correct'); + + test.assertExists('.help-menu-how-to', 'How-to menu item exists'); + test.assertSelectorHasText('.help-menu-how-to', 'How to Use Ghost', 'How-to menu item has correct text'); + test.assertEquals(howtoHref, 'http://support.ghost.org/how-to-use-ghost/', 'How-to href is correct'); + + test.assertExists('.help-menu-wishlist', 'Wishlist menu item exists'); + test.assertSelectorHasText('.help-menu-wishlist', 'Wishlist', 'Wishlist menu item has correct text'); + test.assertEquals(wishlistHref, 'http://ideas.ghost.org/', 'Wishlist href is correct'); + + test.assertExists('.help-menu-markdown', 'Markdown menu item exists'); + test.assertSelectorHasText('.help-menu-markdown', 'Markdown Help', 'Markdown menu item has correct text'); + + casper.thenClick('.help-menu-markdown'); + + casper.waitUntilVisible('.modal-container', function onSuccess() { + test.assertSelectorHasText( + '.modal-content .modal-header', + 'Markdown Help', + 'delete modal has correct text'); + + test.assertExists('.modal-content .close'); + }); + + casper.thenClick('.modal-content .close'); + + casper.waitWhileVisible('.modal-container', function onSuccess() { + test.assert(true, 'clicking close should remove the markdown help modal'); + }); + }, casper.failOnTimeout(test, 'WaitForSelector .help-menu .dropdown failed')); + casper.then(function testUserMenuNotVisible() { test.assertExists('.user-menu', 'User menu nav item exists'); test.assertNotExists('.user-menu .dropdown.open', 'User menu should not be visible'); @@ -46,7 +97,6 @@ CasperTest.begin('Admin navigation bar is correct', 28, function suite(test) { casper.thenClick('.user-menu .nav-label'); casper.waitForSelector('.user-menu .dropdown.open', function then() { var profileHref = this.getElementAttribute('.user-menu-profile', 'href'), - helpHref = this.getElementAttribute('.user-menu-support', 'href'), signoutHref = this.getElementAttribute('.user-menu-signout', 'href'); test.assertVisible('.user-menu .dropdown-menu', 'User menu should be visible'); @@ -56,10 +106,6 @@ CasperTest.begin('Admin navigation bar is correct', 28, function suite(test) { 'Profile menu item has correct text'); test.assertEquals(profileHref, '/ghost/settings/users/' + newUser.slug + '/', 'Profile href is correct'); - test.assertExists('.user-menu-support', 'Help menu item exists'); - test.assertSelectorHasText('.user-menu-support', 'Help / Support', 'Help menu item has correct text'); - test.assertEquals(helpHref, 'http://support.ghost.org/', 'Help href is correct'); - test.assertExists('.user-menu-signout', 'Sign Out menu item exists'); test.assertSelectorHasText('.user-menu-signout', 'Sign Out', 'Signout menu item has correct text'); test.assertEquals(signoutHref, '/ghost/signout/', 'Sign Out href is correct');