From 5005e0d44816b607d5951ce42533feaaa4d2baff Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 27 Apr 2013 09:05:33 -0400 Subject: [PATCH] search hints progress --- .../css/images/items/searchhints/film.png | Bin 0 -> 1427 bytes .../css/images/items/searchhints/game.png | Bin 0 -> 1290 bytes .../css/images/items/searchhints/music.png | Bin 0 -> 1816 bytes .../css/images/items/searchhints/person.png | Bin 0 -> 1183 bytes .../css/images/items/searchhints/tv.png | Bin 0 -> 1107 bytes dashboard-ui/css/search.css | 83 ++++++- dashboard-ui/scripts/librarybrowser.js | 20 +- dashboard-ui/scripts/search.js | 220 ++++++++++++++++-- dashboard-ui/scripts/site.js | 4 +- 9 files changed, 287 insertions(+), 40 deletions(-) create mode 100644 dashboard-ui/css/images/items/searchhints/film.png create mode 100644 dashboard-ui/css/images/items/searchhints/game.png create mode 100644 dashboard-ui/css/images/items/searchhints/music.png create mode 100644 dashboard-ui/css/images/items/searchhints/person.png create mode 100644 dashboard-ui/css/images/items/searchhints/tv.png diff --git a/dashboard-ui/css/images/items/searchhints/film.png b/dashboard-ui/css/images/items/searchhints/film.png new file mode 100644 index 0000000000000000000000000000000000000000..9c343a8fa2f72e707d976fe89a1d02bb9572aca9 GIT binary patch literal 1427 zcmZ{k`#Tc~9LC2nmoc}Rs9fiMiNh&PF3)BfJr0tFMy|(bayQpZ%jn{gMM@YWbi!EV znkDB6N9GzWEvhkEWl2+popqjbe(d{v-}m#p?;r49@$x`{LHj`f008Xfiu4vU`-fzu z#Xjg5GAf2dqBjZwXki{)6$dFS{C7A2&{ibB9Rd_*xj0w@P{OZVjIH&0HCoO z67G|F_9NS=>9Di<(C0Gay&w_-p$q?)HD3Qi|3^*zFDjoD*FZTrQ&r@}>pJ=%Rq<8D zekyc7GX9ChVka`IG8hz2*&`8t{7xl{b(;m_KGJt1|NLK)M|(b+^jar)a<+z(**61J zzC+g&IYYxr#Wbika`(zgPT-z2F)|ix^KJh7X$bHv{8O4IX7cZXj80c#=xa^i#8U7d`OwhTPd&AjI$(b7sPK@>Tr40Ihc(p+qktEJ3#GK~${E_UT_>dj-J;=V z+?(#d!us7Qy^8WhxNawqI1;Q~3lOY%zUMnQ(Sn9fK9>G~)5`X@%e_>DpN}@2NXrJt8S;t8 zmar1xz6Q^w8n%AB9w$GIXz0<(=9izjta}EZfJs<^z>{OHMe3HbKX5$8YUZS7;|~P` z8`@28&DQr9OgPn?o0SWU)YB`tuYSY^?OXSj>jWE&C}1W;+uAvg2VlVlmCND&XL&sb&;q zYoBi}?6PX>qn53zrUNBWZ^>;@i`1_+L_EYXQozVBxzGivxOO)b^LWJRX+usiy(bma zven}WCmG{ZJBZF%9y%5y6`qo5I^NoObIbScq7e`Nev!cp7$}JgXxTCtvsHTdo}e9M z6VI^-aoOmbYm#kOHivS%aEqso3oG5vULx4=6uTVS3bUzWtLsgO_c>)TiS^JyaM2Zom&+L1w-FBibk_j%$W1-Q9* KAX^Z@#D4&UOP~z^ literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/images/items/searchhints/game.png b/dashboard-ui/css/images/items/searchhints/game.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa39e569ac86861e7877c7b2e18f14f303ccb67 GIT binary patch literal 1290 zcmaJ>`B%~h0RJ)-^GJL1%%j689;IdZN>r%45^uBe$UCpZCSo21>NbyRPMZQEk^ za#`j;F-0G0q$qe~Uje0=m^vkrsihek{R4g8=Xjs@K0kl1hX$YAu5G3b0Kj&XpZ6(M z{`6JbpepZ0Ch}AP$vJh>6KLjJEUJon+KHeO0MK$nXDd-d)wM8wQ8@sh*ZWlvZdPNm zYC}VLpEz9*Cz}dsyciB}S7zgPnuZb~_wD+6dc5tSD!dB+>d?NP<9i2tMt-`h8%T_k z=pcN;4EuG%phQTS?hc>5MQ>UKqwJB{qN-$ zVIvfH#Tn0;a4nald02=I&Dzklfg57e?mT)e_7SoPhW3he55tdcr$W>&I$w2;f-}g*9Vsf01 z)-v+?q2Dk5@!#SNM;2oABgc6%$Hf`3A z3SfT}rprd??6%3*%EE08B^#K#wGRoRs}sR2i;6Nc#%y_wi9vr0eH}uYInsQQ6`b{Q zrUqX5Mx8zYi|_=SgffNj$oQKDR4+zX>J1yQ_W|McpCRL=kC*w7BYeT z9Q;$EWtqTOY!hATq+dN%A2YVRs|&dg2oYkmOe@gFVy4ruyQ2ng?8@kT=s{44qfR5@ z{E9O3J|;{ATB%6PN&j}={gTdxc(A?~IW_cP9CEY31>ZSk~M$ls&$y1sjQx4jR{;4*tH0iy>dX^zao z4ckRG?RDR=ls%2BN-MnlQNv+T?z49V9QlRkZt!IUl8m9$S^Exk1lH}Sz0{T)<@F(j zBcJpJoy&5g0cfRDAgogF6dZe2C&;F(WhgO#`-vhhkW%CDa8XXqfk$lp6ZgoX^u_>HOiKixu3~vx+M{Bz?+ABR`)y|Z>K&-)bAIdk1bt_*= zDl7((0gk8n67tV7H)Vps@T>!`*S^5*I$pl`LaN_%Wheh}7dhIl09pa-+CrZ(gr)J^ zQ9=|Qdl2t`fcmaz{I=39of9=O=(T?cO>{JoQ&9E}JU(*AA$qs|aly@VFxdILHF%MO qBdL18lBPra#vfRt_SFq5)nfiM@_2ywcT@FW0LmxWyV*10m;V91BXGh1 literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/images/items/searchhints/music.png b/dashboard-ui/css/images/items/searchhints/music.png new file mode 100644 index 0000000000000000000000000000000000000000..2d666ab7daeff1acf68f41af60031c163c36527c GIT binary patch literal 1816 zcma)7`BxGM0tWHIB=6QdQZYQs#5BB55M7}}Y#e97AWc&DYa}Ij|{~-ZDs8**!|x7uJ^v*Kf3Q_G(ZU8_--ifbdnd1(=;}sYS0G#amMj$Wxc?bX? zTkDN<^S>MPnT35GkJseY=Vbt^g9cpLii(PJ85!3}q;gGP*_`9xieqE|PiuaIuPg(J zD*&Q!G`0yy0jKV+juL;JYYK3xEq%3ae;CP%-IWALcDt5Dv16%w2T5Imw7e{3cX@;V zDQlpxICO*KQjvufF>Uq7%F6klKeC?*bO)@*pD#;IQfI%=MbCs2>lZFjj;vWtcEnTh z>EvhONmFqX{t;7AxPPpv1QZ{Ye2=y5bjbN^%XJVrtpd!^x}?PyHK4QR1lyCNn^hUn z*2HPnAp9gi(8LZT1HnE-UTO7V(m?<9@pFO!!6BRE_Q~PjaqRRWuNHf`>c}j zCn1Tf6&bZkjpRQeYC_={V5xY{W^sNArZ`l2WQjuDyq$V|$l&2us_D;XrsDwi%9Tz@ z-NIEeqiW|R^)`aCpM0RD2dC=Em1%b(gsb7fC5YH1-#?(AJYt0!d88(jGRgIk;!@pwLKSFH;5Udm6}L#1J5uO8#h| z-;ADJKa?G*@~G^0Wz5Hwy>_?3i46|@M($W{z@2V-QRwuusEGDmV|aw2=#u!CI964^{- zyBNJmv$Ev(5yWYnH$3c!CCsF6lL~wIM-&7H&8psE!I0ZMGy|hEvmJ0K6WPc)rQqae zs0w-UW&x$U5YsX|cMepm4_BRSgR?#F(8#DtW3J0pNfq%IuybK9l^YP;I$ncR(!}#0 zX`9{NXF`f`syW#l{IoO`y2$df)%50LwauT_+d&{xr_vx^M)BV`7J-pSvfV? zLC9wpe&Tx{NL^su!%ezq%qXw{8TmJ-6mj#*#$)UC10FOf7rLpFTBsea+z1`So$&hP zGw^h%YZ=4e@vue>&b(+QNO2VJH=@iJaz&akk%=RwsRFl&Mv!uKNr`j4>!&7uBj}d4 z5iIJU6db$`e4_OBDfDhx0#ClTPX*7Z?*5z$P2Z<gF5u-n#Oe?fNB8 z=K?lc@m~@w6x}v~DwOMC4@FjVskJUFB1eC$<+g#TVEagpQUS;=SF)3Yta1;pXmsOE zqF`!3N>}Pzo1z+fjRN0%L#V1%Iz=$%@sKpMz0F+G&~e19AB93rpPvgeK19gc z%TmuAMQd?Q?-S+Z9Ij8ud#1iFQhoQ{x^pY=Z3r;70}H3JQ)Qujg_tKLdYNV3UNTBG z4TdV#@i+YZ!%VDFJRj#f_RCbhPHoA}4zb>=-2rzzs8MtErVQlEmro7NH+L`_m9&`I z7LN#mShEE7<$=w<#L=B`y5FM;c~UI~QI{|qG9}cy)y7P*7>4u)Z?y1qaxN9qq}ma# z)xLVt5q@ByMb7DP40*^*oR@6=x%DGQu+|h=+aOvt8}w+Q$j1xOsjAs)jKHz0AGo)| zZ!H{Z(tVuO?!4HD=y#QuN&cuPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1T;xRK~#8N?cJ@b zS4kYl@#{k{2x}1BU@&Z0SV2XD!63Mxu)=N-G#HG627|$9^A9kH7&dG$C>Rz|F!&S< zhD8(%3JMA;3I-K}f_^^Uxkcu#=l*`@{N_7z-Y@tt_a-lAX3oPrIR^j$0000000000 z00000000000001>63bFKMyr%P%5G(S${OXf@?3eU+*2;5-_eL)m2=8#N+li{)=+rGmix+#aIx7ji+N z5d^ha`KaV7uFsrQ5R6~=o+!Br>pQ-~{H`F7f0SHh4V7n##}yF3FUpY5{l#)jK>&U` z&sEUSd7*F@D9ppTC3^ot4l7kzp2}A2RZ4!A{h3M>@~@KXnX`&NJ9!Kg;tT&y$yLlO z;~Bj~hPa}SD_u|i z@Tp!$l_5v!{BGb=LLMpqDTfqZ6bIl7J?Y**zsy}y{!;qnzbW@s;d2F>d}%Dj7t_7@ z`wKluJTmBBIxR2#a<9+*8;%c$dQ^sfNF>7Sqfad7@(IGakZ?RV*Oh5ePWRq@|4$=-jD zD{N7!S}YoYdtBE8oukL^16ZO`hdm7y4=1A|kJaZcV$Jb7#c(@^SEMo;Ka2hBZHYf+ zKPb1p{f0&P#Vgl?T8P&Vh8i1)xHITTDqG|k$G%4+o8o6=gpJjXwlHTHj`vbabMAWW~A0na^z_!@}R0CuHv3_Kt3ovqiS;xnER8i0pI!_AY=NbwWSBQ${Gx50vF08;!S6!cRni{TDX7Kcj# x00000000000000000000000000O(|H?klBvWSgFF;}8G<002ovPDHLkV1j^T6yE>< literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/images/items/searchhints/tv.png b/dashboard-ui/css/images/items/searchhints/tv.png new file mode 100644 index 0000000000000000000000000000000000000000..2e43d98368ecb5ea9cc537e25fb38e1f09ab1427 GIT binary patch literal 1107 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qt-49qV)T^vIy;@;jhT+y2-bNr(>Tl2vL0}U5L z2_Cki2?k&?)NQe2AX~SQf^zBt9+76F05&ftA=f|=5c>Gr^8L!kZ~xzWEcd>8{&UOs z--Gwxdklod?|<+9Zu9>4p65G_ftF(d0b4>(r9SQ3bT{82N_$H8so2!@_b)7bdP@6g z_*C&zO01l7L)xs5Sgt5JXno86>*D#Zo1GYite5w^6ItFZ2o%T~gtdcJmv0TibUf#t%??k|C)fN3e=H{PDW0frC zw9{N{eQu^V=OV%VoBbUbuWA1ajlJLaKdLF?NWG7vqnhr)#HIi0Yo775&dTO2)BO7T zUbw_Z@i+0_8v;As{>bqxDtPSmVD29`$=dm+H+UYLlA+aj{!^vW%75S1sZX2W5X|}N zq0D~~>2M~0U1zb7+f%lM-rly8W%-m}A@8bF_ka3&e*dN2%WLHC%&E5&Ibc7rc3V`X z?GDTTVqwu=L|9)~a$P7^?P09b>YpMs8qPhR%+rt zuL)@Q_9k%Fw8_zHDr6VE0rGy#I;h+{yS`BKoR*!GgMyUg^eTxLcY^pd{z>hb`&Qt> zLjwbkldLncEqGk4L>4^Pa4@g&yq&B1U3>N>0bBiPR%{;{*6%y!QO*s_W*6QS+ULc57Tw9@{r;vb(oqobE@!~a(u<=dt&`C7#^PvMi&m5a6Q3mJgo z2ULL0n{axSLa_dIrZua#?VL4h=ieCa2hT6eG3EVc(DoWYPB!mO_xdtJowNBs zn@wQRpUb)8Q(k=Zlj1V)-lH;mdg=H3-@Gf;&f0&Clg+vFGzopr08C%@ A;Q#;t literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/search.css b/dashboard-ui/css/search.css index 6728acc4c5..e1a49b3bfd 100644 --- a/dashboard-ui/css/search.css +++ b/dashboard-ui/css/search.css @@ -1,6 +1,7 @@ .headerSearch { display: none; margin-right: 3em; + position: relative; } .txtSearch { @@ -11,12 +12,6 @@ width: 150px; } -.searchHints { - width: 148px; - color: #000; - font-family: Arial; -} - .btnSearch { vertical-align: middle; background-color: #4d90fe; @@ -50,16 +45,62 @@ } .searchHints { + width: 148px; + color: #000; background-color: #fff; - border: 1px solid #ccc; + border: 1px solid #999; position: absolute; z-index: 999; + margin-top: 1px; + font-size: 14px; } .searchHintsContent { padding: 10px; } +.searchHint { + display: block; + text-decoration: none; + color: #000; + border-bottom: 1px solid #eee; +} + + .searchHint:hover { + background-color: #eee; + } + +.searchHintImage { + display: inline-block; + width: 15%; + vertical-align: middle; +} + +.searchHintContent { + vertical-align: top; + display: inline-block; + width: 85%; +} + +.searchHintName { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.searchHintSecondaryText { + font-size: 11px; + color: #999; + margin-top: 3px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.searchHintContentInner { + padding: 2px 5px; +} + @media all and (min-width: 650px) { .headerSearch { @@ -87,3 +128,31 @@ width: 248px; } } + +@media all and (min-width: 1200px) { + .txtSearch { + width: 350px; + } + + .searchHints { + width: 348px; + } +} + +@media all and (min-width: 1440px) { + .txtSearch { + width: 450px; + } + + .searchHints { + width: 448px; + } + + .searchHintImage { + width: 12%; + } + + .searchHintContent { + width: 88%; + } +} diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 087e8ace69..f5f45a7d66 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -282,17 +282,22 @@ return item.url; } + itemByNameContext = itemByNameContext || ""; + + // Handle search hints + var id = item.Id || item.ItemId; + if (item.Type == "Series") { - return "itemdetails.html?id=" + item.Id; + return "itemdetails.html?id=" + id; } if (item.Type == "Season") { - return "itemdetails.html?id=" + item.Id; + return "itemdetails.html?id=" + id; } if (item.Type == "BoxSet") { - return "itemdetails.html?id=" + item.Id; + return "itemdetails.html?id=" + id; } if (item.Type == "MusicAlbum") { - return "itemdetails.html?id=" + item.Id; + return "itemdetails.html?id=" + id; } if (item.Type == "Genre") { return "itembynamedetails.html?genre=" + encodeName(item.Name) + "&context=" + itemByNameContext; @@ -304,10 +309,10 @@ return "itembynamedetails.html?person=" + encodeName(item.Name) + "&context=" + itemByNameContext; } if (item.Type == "Artist") { - return "itembynamedetails.html?artist=" + encodeName(item.Name) + "&context=" + itemByNameContext; + return "itembynamedetails.html?artist=" + encodeName(item.Name) + "&context=" + (itemByNameContext || "music"); } - return item.IsFolder ? (item.Id ? "itemList.html?parentId=" + item.Id : "#") : "itemdetails.html?id=" + item.Id; + return item.IsFolder ? (id ? "itemList.html?parentId=" + id : "#") : "itemdetails.html?id=" + id; }, @@ -340,7 +345,8 @@ return ApiClient.getArtistImageUrl(item.Name, options); } - return ApiClient.getImageUrl(item.Id, options); + // For search hints + return ApiClient.getImageUrl(item.Id || item.ItemId, options); }, diff --git a/dashboard-ui/scripts/search.js b/dashboard-ui/scripts/search.js index 4466db0bf9..28efdeb2bd 100644 --- a/dashboard-ui/scripts/search.js +++ b/dashboard-ui/scripts/search.js @@ -1,41 +1,205 @@ -(function ($, document, window) { +(function ($, document, window, clearTimeout, setTimeout) { + var searchHintTimeout; - function createSearchHintsElement() { + function clearSearchHintTimeout() { - $(document.body).append('
Coming soon
').off("mousedown.hidesearchhints").on("mousedown.hidesearchhints", function (e) { + if (searchHintTimeout) { + + clearTimeout(searchHintTimeout); + searchHintTimeout = null; + } + } + + function createSearchHintsElement(page) { + + $(document.body).off("mousedown.hidesearchhints").on("mousedown.hidesearchhints", function (e) { var elem = $(e.target); if (!elem.is('#searchHints,#txtSearch,#btnSearch') && !elem.parents('#searchHints,#txtSearch,#btnSearch').length) { - - $('#searchHints').remove(); - - $(document.body).off("mousedown.hidesearchhints"); + hideFlyout(page); } }); - var txtElem = $('#txtSearch'); - var pos = txtElem.offset(); - - var hints = $('#searchHints')[0]; - - hints.style.top = txtElem[0].offsetHeight + pos.top + 1 + "px"; - hints.style.left = pos.left + "px"; - + return $('#searchHints', page).show(); } - function renderSearchHints(searchTerm) { + function hideFlyout(page) { + $('#searchHints', page).hide(); - var hints = $('#searchHints'); + $(document.body).off("mousedown.hidesearchhints"); + } + + function showFlyout(page) { + + var hints = $('#searchHints:visible'); if (!hints.length) { - hints = createSearchHintsElement(); + createSearchHintsElement(page); } } + function updateFlyout(page, searchTerm) { + + if (!searchTerm) { + + clearSearchHintTimeout(); + hideFlyout(page); + return; + } + + clearSearchHintTimeout(); + + searchHintTimeout = setTimeout(function () { + + requestSearchHints(page, searchTerm); + + }, 100); + } + + function requestSearchHints(page, searchTerm) { + + var currentTimeout = searchHintTimeout; + + $.getJSON(ApiClient.getUrl("Search/Hints", { userId: Dashboard.getCurrentUserId(), searchTerm: searchTerm, limit: 10 })).done(function (result) { + + if (currentTimeout != searchHintTimeout) { + return; + } + + if (!result.TotalRecordCount) { + hideFlyout(page); + return; + } + + renderSearchHintResult(page, result.SearchHints); + }); + } + + function preg_quote(str, delimiter) { + // http://kevin.vanzonneveld.net + // + original by: booeyOH + // + improved by: Ates Goral (http://magnetiq.com) + // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + bugfixed by: Onno Marsman + // + improved by: Brett Zamir (http://brett-zamir.me) + // * example 1: preg_quote("$40"); + // * returns 1: '\$40' + // * example 2: preg_quote("*RRRING* Hello?"); + // * returns 2: '\*RRRING\* Hello\?' + // * example 3: preg_quote("\\.+*?[^]$(){}=!<>|:"); + // * returns 3: '\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:' + return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&'); + } + + function getHintDisplayName(data, term) { + + var regexp = new RegExp("(" + preg_quote(term) + ")", 'gi'); + + return data.replace(regexp, "$1"); + } + + function getSearchHintHtml(hint) { + + var html = ''; + + html += ''; + + var imgUrl; + + if (hint.PrimaryImageTag) { + + hint.ImageTags = { Primary: hint.PrimaryImageTag }; + imgUrl = LibraryBrowser.getImageUrl(hint, "Primary", 0, { maxwidth: 150, maxheight: 150 }); + + } + else if (hint.MediaType == "Game") { + + imgUrl = "css/images/items/searchhints/game.png"; + + } + else if (hint.Type == "Episode" || hint.Type == "Season" || hint.Type == "Series") { + + imgUrl = "css/images/items/searchhints/tv.png"; + + } + else if (hint.Type == "Audio" || hint.Type == "MusicAlbum" || hint.Type == "Artist") { + + imgUrl = "css/images/items/searchhints/music.png"; + + } + else if (hint.Type == "Person") { + + imgUrl = "css/images/items/searchhints/person.png"; + + } + else { + + imgUrl = "css/images/items/searchhints/film.png"; + } + + html += ''; + + html += '
'; + + html += '
' + getHintDisplayName(hint.Name, hint.MatchedTerm) + '
'; + + if (hint.Type == "Audio") { + + html += '
' + [hint.AlbumArtist, hint.Album].join(" - ") + '
'; + + } + else if (hint.Type == "MusicAlbum") { + + html += '
' + hint.AlbumArtist + '
'; + + } + else { + html += '
' + (hint.DisplayMediaType || hint.Type) + '
'; + } + + var text; + + if (hint.EpisodeCount) { + + text = hint.EpisodeCount == 1 ? "1 Episode" : hint.EpisodeCount + " Episodes"; + + html += '
' + text + '
'; + } + + else if (hint.SongCount) { + + text = hint.SongCount == 1 ? "1 Song" : hint.SongCount + " Songs"; + + html += '
' + text + '
'; + } + + else if (hint.RunTimeTicks) { + html += '
' + DashboardPage.getDisplayText(hint.RunTimeTicks) + '
'; + } + + html += '
'; + + + html += '
'; + + return html; + } + + function renderSearchHintResult(page, hints) { + + var html = ''; + + for (var i = 0, length = hints.length; i < length; i++) { + html += getSearchHintHtml(hints[i]); + } + + $('#searchHints', page).html(html); + } + function search() { var self = this; @@ -50,14 +214,17 @@ html += ''; html += ''; - html += '
'; + html += ''; + + html += ''; + + html += '
'; return html; }; self.onSearchRendered = function (parentElem) { - $('#searchForm', parentElem).on("submit", function () { Dashboard.alert('Coming soon.'); @@ -65,16 +232,19 @@ return false; }); - $('#txtSearch', parentElem).on("keypress", function () { + $('#txtSearch', parentElem).on("keyup", function (e) { - renderSearchHints(this.value); + var value = this.value; + + showFlyout(parentElem); + updateFlyout(parentElem, value); }).on("focus", function () { var value = this.value; - + if (value) { - renderSearchHints(value); + showFlyout(parentElem, value); } }); @@ -84,4 +254,4 @@ window.Search = new search(); -})(jQuery, document, window); \ No newline at end of file +})(jQuery, document, window, clearTimeout, setTimeout); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index a3614027bc..15a619fa58 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -696,7 +696,9 @@ var Dashboard = { if (user && !page.hasClass('wizardPage')) { - headerHtml += Search.getSearchHtml(); + if (isLibraryPage) { + headerHtml += Search.getSearchHtml(); + } headerHtml += '' + user.Name + '';