From c4935f202aa3e1faef77a32502637b060e1be281 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Thu, 10 Aug 2023 04:32:47 +0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20images,=20error=5Fbox?= =?UTF-8?q?=20&=20new=20message=20when=20no=20results=20are=20provided=20(?= =?UTF-8?q?#185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/info.svg | 1 + public/images/no_results.gif | Bin 0 -> 14822 bytes public/images/warning.svg | 1 + public/static/error_box.js | 3 +++ public/static/themes/simple.css | 21 +++++++++++++++++++++ public/templates/search.html | 22 ++++++++++++++++++---- public/templates/search_bar.html | 16 ++++++++++++++++ src/results/aggregation_models.rs | 7 +++++++ 8 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 public/images/info.svg create mode 100644 public/images/no_results.gif create mode 100644 public/images/warning.svg create mode 100644 public/static/error_box.js diff --git a/public/images/info.svg b/public/images/info.svg new file mode 100644 index 0000000..0007caf --- /dev/null +++ b/public/images/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/no_results.gif b/public/images/no_results.gif new file mode 100644 index 0000000000000000000000000000000000000000..1bace3474270d45c3230d9b4426f30e42b57f486 GIT binary patch literal 14822 zcmeIYSvb^x`2YWY&(4f(4942n*BJY*v5$S1Y}qPX_9T%R`yP^zWQ}YQLZ~5xY@w`` ztt^$blu~}5@7e$8|2_I$*YBYF^uDjx>ppy5kNaV0WT2wzehIh;^l<~(AHEHh-?-8< zgP;fgD|Sw1aX~h9BG<{QYz;euo56PH^kf{Olf#|0nUYL>>e|!BW=ZGH*Cu&kG&vuw zY_pP;NeqBll9{&}<5F!{dQsm0yz>7k{u8vhzO9X}wxzzDG!Y8^*Wy2d(J=wsfYkqt z{m&Wz{A5Wa)61vWyQaZsnGqp59(K7_AFDrPxkxLSuumr9I|l;?{pHYcJuE&#diQ3f zYDpVhSJ~pSWhV;9%baI^a2cXDRKl4#9ZKW+_PTR_$2r51YS&p1u;`dnyzlp&v!6GYH+qEqt9#o+Wv44k1F$%!hfXcDZU!y)NeaC8myjgKqxouObdrs0wF z^XCtca4ZUqK%=Iy^z^yIk}{cE6gZlGe0rLm0nN$4&^<4fWY5lyKftrUS1exp^(F_k z`Q&l%yhBsW~>gzUeS3KoK7CyU{i{MAY3AQg&~>u;vz&Qtw|DXs~z zNf)^)xlz*xcD?m+@xd zlAO+$5zhKTX_RRGJO$0V-G{AJn0wNveF0C|2x5&j;vilUN<&m9l*+d|^my&WgQvnD zsN($RNeO5=5h1c=&+h%SlykS3^MZ?m@7SYk#rS;MeEc8E*v`JL%<;>Qv?2(&34zoJ zp)W#%t^~@{tzSw;1lnH^hGP1{XHj#_gilQ^Om+&}7M%SK_VnBx#*=7{b{Zx6$D1Zp zNNVMhE|c?|ER%3ETh=|^&Lcr=9Nd=J17%)0Tgpk|FLS1|%AbkD+6&oH6r7rn2~N|n zMpp3iccL~-?ETdbp_iQd3>c()mogmK6@s`FRqK?6plp~R8ib*J2@>>zf#3{^f2tY; z9$hnt<8?WveF7(o;%Ig+T!^%2%MEJ$eg^Ve3ds|2mbpJWYdg+BvwXWl<0;OO^%|K_L5KtQgCl${%zSgQrdh0B4zD z$#I!N`ChpNDG|Aav|5pzvun|HhoXiJ#d7Dyys!!++R3@5Py7o(=MoEOm5}LS0A%gj zfE9+SY6GH0&Vr+&YdP2b@2@?kTYLPoo4Uq%wQCKA3wFKL<6YJ2BT;uvOJzHZj)>lD zVimxi7PS6##S{T2x~&bgmXRq4HX?xrHJ;^^#a(pJ=2XS6zG})QFByj1{#5MO&uN*3 z`%u&JtZQ$u9(y*FwQ!|~po(UmYt9x-N;_X{&p6uGAYP?EDPk@jy$KZz)C{P*GN4vE zP4W_|4P(nX0)l-$SOwrnu6d3ftbeTn%dY|AfnCi#(FI8lvo-tr%=B13H~LR~u32t` zDEB1YW;Rz?{AQ(AZ-DOR}>BkMZxqVeeRvrE7CyClb>f-h(4Xwb6~1G{%%4)-ge{bqq; z>~LoptsiqIu9`a@*RM7lj9RRBr8J_Q7WW$ui~nxvHQ#^D)gyE5PWNNT``XB}>I-b< zF$s=TkbR?|mN^KQ)92aVyqhPLO>+I7X(r=Xf)Zw?0B+^RcO*-Aj=#r) zU!vB7+x2w#mQ23ZQz!$pd~|;LPSqS`*fvj{!3SK-CMQCg9BD`+R5h}Ns9wP@S@95 zgwwt!mZKyI_C+rq7BQ|iJ2+5_VmVD@?!)0G3t8KjV(Y@jGmfi=Hh)rbI;L0rN9>El z{e3|1l0K6P_g1$&OUSZ{K8Nv3xLZT8t&xWCr^pgfx!he$5)oj(SJ3CHt)GGQMg&J? zy$Y?{Pkb92`#bY?lOSa^@dVqas%JFDt#jaFGy)4|?6HU`E-x_prak}V0!8o}DTA!{ zX^%NLEf&%2DAQD^D5jdS>~(@mDc9LxmzU!ar0Ma$4ZF$g7L?JP9F{gQjXlG?i`5|I z;wzn&AQ0Ni+};BK^zJiaYOD_5mnf{77&_fTwkgY$V|pOZq^B*G9Mm|;vrH)EILsPO z(`oWA!SpLSKCKK*o+>jQi9?+aslTe?Av9BAuk_gmb-L*_7q+{HG1=2vugkB_YFAHq zp~arVatrQ=5qG?QbjNbQ4iWFb4v3h{4eONr_kTIlla^P{6=+oj1b;IVT%s=iTQi4? z6qdUYl5Ka`+F1DoinpAbn-nXoO&;bOe|+ZeoS&TYzBu`Ala0Nx8=Nk=K19+)=woIr zddIO}jWN>Zs`Wn4$xO(nGgoR|*hy|3!xshwu?>V zB3l$k*Q0uxpPw)QsyyIZ+XN%4(9Y6-?AnDjs(qJ_u=j_To-HMiV$c&G=$&TmVMgSH z8TMqftEcEoy~`e@kKG1BeiX{%cS4R#meEe_0Nkf3;S%EA5XP-;-C-xpj_UR!x%nkn zq7B zL~9CWuyj(G=l;87zKlHKP2UVB{w|qgd^(bVz*}Fx?Iih|)%*ct2;G*3&!>x=T- zF+MFdBU?vP?R=bh?K#6@NeU9BjUs+$-)+s__}nV!X@5&*RMBGn*W8l~yTV|egrV8S zXTl|yo6au~>1j`Vj_);<+&9~1*x^DrZz$#>SZKGX+P)4r{qp+bLusJv#KR71w=k}e>j~z3`wO;!opkl6g};{>9W#eM2IUb3`-oT_J2=wN;IdX+`Wa*(5|M+Z$EIcE zE27a1oW;ohGE;bgV>W_Rf<$7=t`t{Snn=sC%R-x!kPJv>1Qv;70a5fFkCll~cKqnr zlb2G^au-e*oC}LWy&jYzj^No{on1$vXXOzLXha`65xk4GefM63IO>{+N5Z6G`7YL= zu{Pkb@I<^ixAaZTb#X>ipRmp(B9$Vg=h!4sYIqZl!=`F<0b6!%LMEjDT3TG>OwqXYz9 zr|F;1y3+I{SL-~z;3bjn3nv;{*hQ3>MB3TT2*o411SKsZ9z5di;YYWat7ZA@q|b(33%TF@$smTD;rG$yqO~ zEsDZ5@`J5kMd`u6Z+e!Ykj0;*^ATjPH%u}LS?3dqf>uAku7rKc7IU7xW8-lzU~cA?J-P6(e9@{R*D3yLW?O=<;H&nMyA05l zGGSd;U>^=%#O(sL?M-T%u%-tcB2a>o$Ey>>^Lap5w5#QX3F5*bEukW{(XqdF@_n^7 z$7Ln{Z2pQjZi60jzEiXJ1Co3EdD#}ZDs$r=i{9gyTWLIf2Q`HEgI(+G@d8<+3Z-Fu z1I&T!f1QV5Y8n|2zdW}#zWbnpg;IDC^VI_!?4QR5Ifo3_T-zuVHMFGWVhTCRs1mxL zf(zxwqsm#@5O+jhIgk?u0CY>v1fSEl} z9Ch`OfTE86J_p0a*b3XE_ICIR}#%qbFkBatGCf>&pDAr;^*ZS;N(P=j*n>mic>@g0D zlW^yt7fIpTUqc5NO$#WVT;APgfBRFt#e~^?IQ|-UPYch4iIN zrC(NjHL|pdr!-=StqC(O%$cXJ`X%odffU`9c(xZabMcpnlWjv#qUWl`EUM%?+7<@VQGTY zOaxTVV)A1ZwKdjY*dsWNRFiH5APmgey#?os__T^odnTD^Uv&{NC#Q5aX0y zsB(~ssQPe$-p<5{FPn9Q-i`ToK*xDC**JIOR8oaSF&Rj4=79$QJqB=po!drz>8r+T ziP?Xfz~IPAvxg6Y+EiEpa1G-}~0KsV{_0qPv9HWcX77R7U;bB+GViLB)&jH{rpEBfSG{wGn zpVxA+lAxk5I%R-P{ahUSWYI-C`fKMref6OMB)QSPP?j;VL;Df;1%G|_r^6Y4?H>*t ztzy_Qt|&bRfK8<-RWJ${%)HdcClT+;ks~`W7Oq5b+07Jl;0Lc-d<=$K^nsiIA7q z_1}{$^6?K=xuDvognESCfY!9TBJ?=r!4n<1%5JkjyoFL)k;=teKOO=&TE`3y)!x~U z2B^rcX$gd5Jm|I(sm?QiDdcZnb)pm?x^K`MT z`0%M9&x#Jd;oXno!;cqBb+tcrE|Y}-3?)h}jq=g!j~p|Um=P()?hPYqGe4^qg7U|&86#oN*ZdIBWGGz4MvhMF zj8j5lGCnUaSqY9t(xZ#eSakd?t0eY(8(1}7P62_1V>w$&InyewWb@+kqiXT(QV4pp z76vFiC&SeaJ@`X&L%4hZo_$mTfyN*h=#e-iinC%&83~zJ#8l2^M5B zpK88&BHYV>W!ss8^&Nl2iF4?t-vOS~i!GXplRkb1%DE8=1aWr?49+lixR@4yntT&x zgPQCW?7d6#Q^u(feW!6fnw*H_#r+GdH-&LvN)Vwp*Ds=pujGp9ZfrK_%xRu_Iym)A zs#nnyT0u#CcA0?{CsJd;KSFPz#sTw^vYOUqvZ&h2d?=bsZ;)ymL?!uNGMw(Q)4nR* znt4mV;=24tMI%SG`;6_(tJfdi35~p^A`}d51n*ba48S-{iKHv)O>ZYoqTrdOAGiX{ z_Lk_5>*WAH2BDxHI9E8Yt{GsbhamjPK&)Al!9XI92$4#~ zaZ-lkMSp&GMF4rMNRaS0U;8{)hzba0CYG$Io_lxUz7j{kehLgmo}j_hL~K0mFuhhZ zD1-!1eU94``fiK2@44Ec)7=MPOtz#E8&HZklc>&4qd}Rf>3Ym6+u`HPn+jo*5K4FH zGT>{!Yk={hWv>Ekwj}RD-&p%(C-zwpm`;pUCE&tP!oLCa#QdUUUYu5=!OoC;s;jSc z2|-dOFp4ODM4EsH#mA>4bjZ=W(z9rlMbuKEX3980NivCgHHX?z%Ipxi5)Cbx z><82pnZZ(w%w95E{5HA=nrTLpuIYYc2w z$R)j$t`(;MYO^KQ-N;+7me6D>e)2vZT z;(BVnU!sKaiYt&Q)wB@Fkfc%)RVDmv&;Mg8k7U%%?vR?}@3ZPbPb*ZyW2pYNE7?(p zYv=EOsTYo&YuR??(Fr}8*&+YkY!mq%bk~It=67_@^?d&^EA9POd~Z7|4!99g^6EE= z^o%|$F#0%aXcUs%eL$y6-FdXzf}`j+=Go{lpBw8v_zx%OGc7o2HIlpd5V` ziFGb65jEW-%dlIDl3$ob#GtkTT4G<0#ph6U&bo>9PZl zvrW9GUvYo)5}+f5*aoevDVa|iu73mKUZ@T!|N8kda_u7hAPLGt-$4;EUr~4ZX(?p4 zFPUts9rM8Xf$>(Zfyy%qkZzi2%tfrhj!^lsaxZeTW$9aCbYfP*$_cNsNG&WSjPJxq z+#C~<@&1Ci&2%A^_WnxV3E}%!JjN@3LM>YU1YbTn=c)B)qf#)w=_WZyROULT<<3Ty z?51ABMQt#%=WRco@{sfd33rH8KN{&G?i)tp3IHUqX%O<~Jb#{+9 ziV#b{mkI>8Ce=boU^&gjcSV#eVIE*i#TS>Dn)ZvQc4pb~=S`V#i>Ex%jd)nytE1h8Wy$gBv<_V`A<6q=7;QW0Eg zZOr)U*NuuFipaqiS$fM*MIGffh8Uv1Y@$FH*sAzaO<#^5U9xCW4JxfmbIuDaF1qU_u`rIy+@`X zZ1~lp_Gu3LnMNR7Jg%8(xuq0v6jNF0G(Bq|_grjNCguV+NCzc(>vkp!!;a$&C^nTd zoIdC8KAjHpXzlcHrX~!bsiiEV{X{;;J|$CtW4z|Ul28>v?1kHz*wseW(R!78vk)+s z;{_y{l3QFWV$AOh?i!SqX>@2oCyA z6(xo+tr6lz1$>@nd5B?SM-5mtp1x@`3-NC{lvNP!(8zrd)=*XNQY1Z5RyWwGc?=U@>9Xro%5?{>YdL8Sdw*4!gH~V*wxNL_oLI zV9ar|oO3v`%Ck}!kRZzQ|&DX7?PX_ih9|#{5|t>zm3+{+Z;DxOZMBN!HmI$FAhJ6j30%hSdAUX zp8X7asTDbSLHb)Mlgp;z`)kAh(XvSSA6s%)e@^>lUa9lboFO=YFYZVl-fZjs67)Q% zp~D<1!*%r8WBm8*>e!E&ZH=$GOWkz zmE}nc&+gS8^iOqb2B}%ZZG1{)sFNfHk+*y20@?H-*`TNP<5Mdn5y4vQiKx}qn?HyY zG=K-j3A={D++pzKs}cxX#Q7Tr)XVV!@K6{6i4WF;h2@Fdyi3V-NWBw?U=M@J%5XzX zZsKDz(G18NMX>T()B3Bjs#=-?r7aRj1}x_UCq1WLk8{JTH-dxQ#_TjfB)aG|8p(;( zdTUxxYAJ+huV>#9fiuv-r|9Y7oT%?_{}6+a?Cs|)oR`(CNWHnC@Juo@hb4hQVBWfK zf#}blNoK$(3^LQw8ZIJFpD^;rmag2AL877x;;QtTV^ASmQF-RE+PCGCy9QB#6i!zg z@28d}%|265_K=H2WQ%^ShbZ62+AfN|%4sJs4*$tTqPUL&34y@36@e%oOX?Xw2{>-8Cx4udLJ%ERaIam;PKkb!eM`HE#x>I1Z3fAw6yURD4+tAiUtz7`-@z z;bHOh{Q`YE-QXIQMASusei3{_T)dW6*yIk!pxk^40{wj@d7%EA5_zmbEdGtDwk)+L z`9IHj4L%k(MXf+EUyf*eW;bN@bNu3eQ<|bYjB3?;3C17p&gcZ)x1uu*%76OV(UBTQ zy0)b!R0@IBRz`942t7xki9Nb@8L#`Cj+9tm_n^{_fTlnD9eV&P;q!o;8AesR5iUdt z9$2mM7cUAAd6h6ICAHr_bfgFPb<1>a?dAXa+waL*Nle~>`7Ln<3`9X7pDXAlMiNHi zwEVxd)W?qOj#ta6fN#tx8IVD;VXFM_N#?Ljka-K)U7x@$W2&OFoKf~xVi72* z#2Uk@)K8hxDmvsy?o8c*^PjM((BBlA^J@I{$z-0BjchDH)j8AP@rmif$kxe=aGgTc z)w|EXwy#&1F3~Tx(Zg?uC}b!K+i@1>Yt+wmY9GpO`%R-o*U~`?>4*ZzEH% zsTFmnOeK$t17BBc4yVYKJY9<)%!O`IWt0{JW0Lcm{Q`g|*vopDvX8AcF!L|x`0|Ezf4 zO+$qj<{sksbG~QorhF0C*Pstd)f};e#6V(Cweel6GV?RsU z;fgi|{wQLsYE5e6M6}b{bg?VZ@V} z-ltncerf0>9a<6mMxY&A<)}pCvcgiUxGYW7-ewo{yRQfq9qEZP582V?IfU`T1Ms>s zvw>w{#h2BTe3exqTSUA{KT1%4c0D#OuDozyFqLo3?cQos87%xY<}iy$zQl8hr;bv^ zLz_VT2>Y~{OB*rxWRu?i&{Cee;Bkyu*nM{60=65nLJoQ-mw`N-k%EMXxKdv__EGQcET`Z9j`CZ79T@S_ZRJa6>80 z2#P$yxlbjQ^JYbke39Rk2Qc7Uob-)saPte*v+)=FrKL^IWK<6qB|%u`_;wz(QqcX} z1m~4KI-rE1-dkG|K=T>!yq7f;-K>5SY81{;P+p-G^UXGS{(Fj@zIKzrtA+Q8N|2HS z8*GCkufR{Xnmg*yl`-1AH<`^vI>VyeHd(+2$FnUbX)C9pV}#c(M4RlVw0h~jhvY1C z#j-ydGH61O%jd0>HYW0jmzPfV`DESt-|4#KgL7kh);17}dja&b3$E`CD6}XnCAK>R zH8uI8bMbY8-kV`N^hbFi2CI!oGzNrAwnO+Bn}D?-6w{fdSWLgKY0#!~3wHU5qS+&P z_c;jYtlUG-cPCl1C`Hww1W@Oj5m0h30=?ewgw~H~`ldOV6OU5l0qG<-a|3V8EaRCc zkCSea)cD=MzshW}q@32U<7!(1;f$A?Vxv4T#~bX9?`7}&$yy7hu~oOg8dZu-&Dl57 zX+8)_Zm8+UAT!$NTktWkgj*+^a@UnRcOsO37UPM1|1n1>s4xSn=_rxJZts_;3zY&q zuGDwDwr7|AAR;xi@}8qil_r&I0(hI>RB|qLX&Jz2EGk=FbEz`8Qoh{RrcY!YsbRos zg-XUcE~vH8Rkt?uw|umzPkY@v7M|G=D8 z#lCK0JF>@>6ind;e{}GZ0;1Q|TX>b4ig6eUrS12UD&MwDX1&+Nn@jJ%zESo*sTWPL zI9@CoknNrO6W};;y+R~NDexpZINgv0oQS9bMAz-uz@pV;mpGG(FHW}~MYX(Ps2@J} ze*d-a@khtZDLTD|(BemnpM*J1PhP#gy>LIU2oxt=9nEkJiQ$gkG_`2%Y1V9Di}%@L zZ)z<0xzcR+&DyM?CC|I*pc*SDRF@$UxyY@bV-Vz0pjcm2NC=Ajl#Dl+(X z$&fI`4~s{zkN+ItmW!wJ&O|A=Y`2(b;d29@zLz<H-R|47+CQuhB6Df=gu{S(XniDm!9vVUUPKe6neSoTjW`zMzD-xtf&{|`vS BYY6}V literal 0 HcmV?d00001 diff --git a/public/images/warning.svg b/public/images/warning.svg new file mode 100644 index 0000000..4139fb2 --- /dev/null +++ b/public/images/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/static/error_box.js b/public/static/error_box.js new file mode 100644 index 0000000..bc22e5a --- /dev/null +++ b/public/static/error_box.js @@ -0,0 +1,3 @@ +function toggleErrorBox() { + +} diff --git a/public/static/themes/simple.css b/public/static/themes/simple.css index 0144e34..cd5f20a 100644 --- a/public/static/themes/simple.css +++ b/public/static/themes/simple.css @@ -70,6 +70,27 @@ body { filter: brightness(1.2); } +.result_not_found { + display: flex; + flex-direction: column; + font-size: 1.5rem; + color: var(--foreground-color); +} + +.result_not_found p { + margin: 1rem 0; +} + +.result_not_found ul { + margin: 1rem 0; +} + +.result_not_found img { + width: 40rem; +} + + + /* styles for the footer and header */ header { diff --git a/public/templates/search.html b/public/templates/search.html index 7aeabe9..2c3a0d9 100644 --- a/public/templates/search.html +++ b/public/templates/search.html @@ -1,8 +1,8 @@ {{>header this.style}}
- {{>search_bar}} + {{>search_bar this}} - {{/each}} + {{/each}} {{else}} +
+

Your search - {{{this.pageQuery}}} - did not match any documents.

+

Suggestions:

+
    +
  • Make sure that all words are spelled correctly.
  • +
  • Try different keywords.
  • +
  • Try more general keywords.
  • +
+ Man fishing gif +
+ {{/if}}
+ {{>footer}} diff --git a/public/templates/search_bar.html b/public/templates/search_bar.html index 32cc8ff..2eff7a1 100644 --- a/public/templates/search_bar.html +++ b/public/templates/search_bar.html @@ -6,4 +6,20 @@ placeholder="Type to search" /> +
+ + {{#each engineErrorsInfo}} +
+ {{{this.engine}}} + {{{this.error}}} + lsl +
+ {{/each}} +
diff --git a/src/results/aggregation_models.rs b/src/results/aggregation_models.rs index 6766fae..b1905fa 100644 --- a/src/results/aggregation_models.rs +++ b/src/results/aggregation_models.rs @@ -116,10 +116,12 @@ impl RawSearchResult { } } +/// #[derive(Serialize, Deserialize)] pub struct EngineErrorInfo { pub error: String, pub engine: String, + pub severity_color: String, } impl EngineErrorInfo { @@ -131,6 +133,11 @@ impl EngineErrorInfo { EngineError::UnexpectedError => String::from("UnexpectedError"), }, engine, + severity_color: match error { + EngineError::RequestError => String::from("green"), + EngineError::EmptyResultSet => String::from("blue"), + EngineError::UnexpectedError => String::from("red"), + }, } } }