From 76d39e13454930666c084d996b9ac27769855413 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 11 May 2014 01:11:53 -0400 Subject: [PATCH] web client backdrops --- dashboard-ui/channelitems.html | 6 +- dashboard-ui/channels.html | 8 +- dashboard-ui/collections.html | 8 +- dashboard-ui/css/chromecast.css | 35 +-- dashboard-ui/css/images/headersearch.png | Bin 0 -> 2522 bytes .../css/images/items/folders/edit.png | Bin 0 -> 1994 bytes .../css/images/items/folders/settings.png | Bin 0 -> 3175 bytes dashboard-ui/css/images/menu.png | Bin 0 -> 199 bytes dashboard-ui/css/images/remote.png | Bin 0 -> 3292 bytes dashboard-ui/css/librarybrowser.css | 29 ++- dashboard-ui/css/librarymenu.css | 205 ++++++++++++------ dashboard-ui/gamesrecommended.html | 2 +- dashboard-ui/gamesystems.html | 2 +- dashboard-ui/index.html | 9 +- dashboard-ui/itemdetails.html | 13 ++ dashboard-ui/movieslatest.html | 2 +- dashboard-ui/moviesrecommended.html | 3 +- dashboard-ui/musicrecommended.html | 2 +- dashboard-ui/scripts/backdrops.js | 106 +++++++++ dashboard-ui/scripts/itemdetailpage.js | 8 + dashboard-ui/scripts/librarybrowser.js | 2 +- dashboard-ui/scripts/librarymenu.js | 55 ++--- dashboard-ui/scripts/moviesrecommended.js | 19 +- dashboard-ui/scripts/musicrecommended.js | 6 +- dashboard-ui/scripts/site.js | 8 +- .../thirdparty/jquery.unveil-custom.js | 1 + dashboard-ui/tvlatest.html | 2 +- dashboard-ui/tvrecommended.html | 2 +- dashboard-ui/tvupcoming.html | 2 +- 29 files changed, 385 insertions(+), 150 deletions(-) create mode 100644 dashboard-ui/css/images/headersearch.png create mode 100644 dashboard-ui/css/images/items/folders/edit.png create mode 100644 dashboard-ui/css/images/items/folders/settings.png create mode 100644 dashboard-ui/css/images/menu.png create mode 100644 dashboard-ui/css/images/remote.png create mode 100644 dashboard-ui/scripts/backdrops.js diff --git a/dashboard-ui/channelitems.html b/dashboard-ui/channelitems.html index c920f5615d..06af48d5b7 100644 --- a/dashboard-ui/channelitems.html +++ b/dashboard-ui/channelitems.html @@ -4,7 +4,11 @@ ${TitleMediaBrowser} -
+
+ +
diff --git a/dashboard-ui/channels.html b/dashboard-ui/channels.html index 518def10ba..08c375519e 100644 --- a/dashboard-ui/channels.html +++ b/dashboard-ui/channels.html @@ -4,12 +4,14 @@ ${TitleMediaBrowser} -
+
+ +
-

${HeaderChannels}

-
diff --git a/dashboard-ui/collections.html b/dashboard-ui/collections.html index a79611e0a9..adcc49ea6a 100644 --- a/dashboard-ui/collections.html +++ b/dashboard-ui/collections.html @@ -4,15 +4,17 @@ ${TitleMediaBrowser} -
+
+ +
-

${HeaderCollections}

-
diff --git a/dashboard-ui/css/chromecast.css b/dashboard-ui/css/chromecast.css index 4af5d4259f..7553df0243 100644 --- a/dashboard-ui/css/chromecast.css +++ b/dashboard-ui/css/chromecast.css @@ -1,35 +1,22 @@ -.btnCast { - width: 28px; - height: 28px; - padding: 0; +.btnCastImage { background-color: transparent; - border: 0; - background-size: 100%; - vertical-align: middle; - margin: 0 .6em; - cursor: pointer; - border: 0 !important; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + width: 28px; + height: 100%; + position: relative; + top: 1px; } - .btnCast:hover { - opacity: .5; - } - -.btnDefaultCast { +.btnDefaultCast .btnCastImage { background-image: url(images/chromecast/ic_media_route_off_holo_dark.png); } -.btnActiveCast { +.btnActiveCast .btnCastImage { background-image: url(images/chromecast/ic_media_route_on_holo_dark.png); } -.btnDisabledCast { +.btnDisabledCast .btnCastImage { background-image: url(images/chromecast/ic_media_route_disabled_holo_dark.png); } - -.ui-icon-ccast { - background-image: url(images/chromecast/ic_media_route_off_holo_dark.png); - background-position: 5px 5px; - background-repeat: no-repeat; - background-size: 18px 18px; -} \ No newline at end of file diff --git a/dashboard-ui/css/images/headersearch.png b/dashboard-ui/css/images/headersearch.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b57015df2bd3f3a19d1955ae5ef3b891cd2a10 GIT binary patch literal 2522 zcmV<02_^Q4P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D32#Y6K~#8N?VVp} z990yD+w3+p)Q3L!P)fQ@$tKN1#1>nuV6g$g7AhzzSWq<3VxHSW!{1 zqM%a2ii$o6i5ReAiz!A(yBi`&9`fKr9}3x!ZR>a3vo-F{?#{h)XJ-F>FwDJ^>}KXS z=bn4+xpyWjSHwgnlSy}UbZnt`Gut5BYB^rY)vH(kX8V=jJ-x87Fg`dqcu9ZMP(&uQ z3i}YE?V!4C<;s<73qLVtg3pd$zI^$o#l^+X8%6j~g&r9hNp^R4??vE8sO~Ntbq6=? zBH#Tf!oRa=)22y1T$h9*^z`)fIxKEK0*Jufg`=VK!<8#n-k+PB`*vt(D6hxr2IoR& zv)PB)9SPtXf-;`Z=Z80M-aM}Ly1<#x7cN}rrWwDBz<-=gf>GWR4KA{fB=q})LDhiP zBf+;tpFe+oOEQ`KjbgHJBsg5~7&q<=qsX&_VdLp^dP0BnZ|hmVe*GZFwvu@6vK;RJCY&<{tc5hN7*|M+u{z)N*Jz2s=kP&mk>`LRE_< z8jyT)U5hM8v!9)v-50>JcZD79RTP>(yc!GHuT@jT?>(*MND#4cBg2Som8s)%hqM?9 z6@^|}T9RgXeWB(bPB=$oF&sx8SmqBgjssdX0vGv!7?)O^Q&DI-L908A(1+ukzr$Vq z$nHd;<{xg*+I&9$fL5L3DYV{M<53tQ&&#ZaR%3$}^_;XUt@;MB@6e)iJcXtclyw%y zoggQAEDo1Z3N30Lv5h-M&fmqz*Aq{nu?ER27$FvfU;j|6v4hV&rbQFdwB}Hz<2;4N z8g9~}Z?J|_0|NtpYc+OsfOIWMiTO@ z$#s}A7c})52A!Rqb#qQmgeKyMJ*2C5Tv>FR8nlIu2q!|*f%Is!Qdbal)Xh1032mGs z5W2d$LL0u?Vi^-#U4JdggqA!3JL3@^9bzaWsvsm13F8qigpzsmbRCFxT8qB18McRw z&CRD3{HaB!cnXcrH6G=0g7=1%kgESwzlVdj5?gvky5zRPn!3nO;=kvBxU(Vqg zWa7d&)r-3^PDJ^klIySt7Yd@6k6TKw}qM+G{L=@Oy()AM#jdC8;`KF z9XNfV`%tLnI;1IyRa=2ozmd&mpU`UPOifK4p)<2uUCQU=QRnxx8VXf~rYZfv&bm2a z*+;^*Y;hMNGDYi~%6T3OJD*-vXo0)^mKLp0%l;;e4w6C1Kq{4zCB@bvt2Kwd7Nw@p z>2z9}l<_3za>QqIF@NY2wtR!tdP1Chz=kGVc<~qV|SE1I}aPuCgvp=rY(5dO8mxD#i`eVsg zH#}JLjarNZBcW+#e{q6C%^)_{us_N;-^g_ok+6y(`iP?rDNdvlyt}uz*J=c8f|bxh z6N!BZ>%L|AQ@dec*kg5eZqpkjfRuHi4mkIlvzl_VNMVG>`eK&&~dHPn~g%{SOt+=Z%xv^6L-Hb5e&ugu+7ps*Ch*A20pAd8u0m@RF8r%QEce+~0Grq8}u+zmG zeIpmz3yooA0Z!?AH|DU|d6NsBnwq+u-S=#+T-7O}s=KvpO8alIsShcg6cv|1< z`0MAiYDH5DEd-rMECsQL5!-65i{Lc8t0(j|7S2Yjw2%+DdDc-)(^|A3Yw)_dx_+T( z{M@7$5{aXr~%=OXsT6G8SD#-XzA(RkA4A(a|9j1~v05Eoae!4Egcdzq^V=AiK1*bW61t!?c`5 z3!0I;lPz$vNJ%G?$*-zKA}uMjAh~Az>w{Vi46WnVYLQ4wx{l@0Ilh2MFKab0`Fwt> z*MBu?S&J^B^MlsOqEc`nlFTZj<%JezW@ZjBv>wxHP$O!1lSrA88q75AL^xt^kq9T5c`*S-Amf2>&X4>tMYhi%Lb0ssI207*qoM6N<$f{3cmV*mgE literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/images/items/folders/edit.png b/dashboard-ui/css/images/items/folders/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..6b276f1cdd113ddafb9726355aefff57c139f82a GIT binary patch literal 1994 zcmcgt`9Bj10H1Pe$WhAX92&#ZBZOXK*yaeSHkNYDqUV^BveYOuE61EeQyV?x?8P%z zuG$=JZz<`qQrjM7IV-%P=lv7!^Z6d1@8|RV`TL~?_Y@IT6N6KbOX0Hrf1 z1Uxu3?9-iN1f5eLuIQr1ZWv~1<{s*MpF-kS>p_`qj%KhXF48#I0N~x*0o9#F~-LDV-*|G z4vRYnyVp{Fe!VePv34y+tpaAS@b>XriikUj9vvP1rD#;D*0y(7D{H=t$=s?BI6yKH z?$17xzBJRH*3;9I3#l2%*<-W;sb-eeR>je1w4H8lZfaV`d;`Dg8z2n^ZG0sKB_$>L zVzD^XjHy?_o-eDcBt@_O{mjwmDg|;GgT*rX=6kwQK9!eNPhx~e@OXS@ph}o`%b*{2 z@Ioubb=PZct-PDMU_jI&CM0A(oWD>4(cryaP2D_u>eQ>#s90VWjJ+u8dPN>tw7d~t z2+@G;uYdV5PV=xO$^i4I2wgKpP+cgj&N}ZT9Bb6P2o5zQN)2y~`WQ?OT$g1khb14M z=*wAFv@O@ajrXA9AIM1;6CQZ(Sj&Ek=it&ZHAb3(Exng}N9mFnt1uVHJLI8T1T3A-dYO2ytLt0c z^@4(epwQ5%6Y_Z-P;v|KYNCMYMwT92z7!jfC17#Z4vu`ThunM~%nIa?Zi~F*VPL0? z<6tnDIZY9V^)Hm^)1u^@FWkl1P>M&3Hf^G=QO@dK8X)uee3u0)q5W;bwRqHUDX-uR zvO^KFT4o`_z(BYLIb4G=wHdC+{F_aDTy4-5a&%Wz2c;n(; zHwT9=>LZ*gNVzJn8>TyPe5KRl`NO70^*0&$-`R-c_jnQWG;z$WU5V&eCB~d0m@06Xv=1Z z^If(OOJtrKYP-~ zJ#2a<{nqc$t#|$t)(3KPeO_dbc{Z!Jco1b9k6`Z_ly645kOfPP5K0Ekt{?mBkN0IS zRY6={wL@VYVY_xPd8HHiH50vVsG>Lk5`-CAM4HukP0&$z7L?Q0_C@u`bUF&H;Gcdn z+P^xyzvE zA2iYxNE2+{F!LljjE*vAO-)S+;*jR+zr;9S7^YdFfZ@VEIO+Q*K{hde?x&GNfegu{ zQ(Fm4d*XcWBj7S zQRHa-F4;FD7onS-dp(k_KEs`osrGm-H-TE|lD9Ub?+?3#jp+n@h?l^-f4 z7XqbsA2v-wnw8U&=nUWG7nzajp2LYCu4(y9!q+4)h?v&o{Jdz0WxRngpp!F+EBY#w z-5q>j6-9U7D`CwCYJEP^KE^vS$m{2c@Vn=aP|!KWCk_zqxB2A5W)dcedPBX2`Yr}u zndr+}X=O$9*3m0RniL^G_QsQCDl*maT@MbEsD+T0o@VQ}+c;;^rC_Jz-KpIO#MwV5#49C8q1M&Cs)ngtk*V`{LM> zN5nhe{HTVQxT7?Tr&2uDMy7_F%K*KeUj(?u+4~8@?YKE72mW`Ml+3x`)BGoTJ)(8J zUA_vtJ?ie)4k4H!k-iNH{1vEeX#4rgFrh<3L&NmYlWfvwtoC4Y*y=EzoCh4>e0ui2 zYZk?fUvf+#Kki)x4N`P_jlxYMN`>1e1FXtf2eE#9pCfWea(@V$wM5F(jlq^x=*cof zqq^jycK)5$g?lQ>ymQ5RKZry(Dq?k+{xbHWZAR&I(X7UsHUjFC-^zSN5^@u9Avl*L z`Bt%hwmEVh?lf+Q47kBb0aabwbxF2J8o6CjX;yJ)Q|Y>u;ZPxOxAXS@0#Kg*h$i>5 G8UF%)e8i6c literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/images/items/folders/settings.png b/dashboard-ui/css/images/items/folders/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..41cf1ed0fe483acb14be5ffde7b1aa4a70cfd3b5 GIT binary patch literal 3175 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 literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/images/remote.png b/dashboard-ui/css/images/remote.png new file mode 100644 index 0000000000000000000000000000000000000000..0dccaccab5097ebad955455263a42a4becd78bae GIT binary patch literal 3292 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 aoc{ud_INdEiLadi0000${TitleMediaBrowser} -
+
${TabSuggested} ${TabGames} diff --git a/dashboard-ui/gamesystems.html b/dashboard-ui/gamesystems.html index d8b1a25c52..01fe0d72b3 100644 --- a/dashboard-ui/gamesystems.html +++ b/dashboard-ui/gamesystems.html @@ -4,7 +4,7 @@ ${TitleMediaBrowser} -
+
${TabSuggested} ${TabGames} diff --git a/dashboard-ui/index.html b/dashboard-ui/index.html index 1f764136b8..e1fc5f25c7 100644 --- a/dashboard-ui/index.html +++ b/dashboard-ui/index.html @@ -4,7 +4,14 @@ ${TitleMediaBrowser} -
+
+ + +
diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html index 6304402975..2ec47520b5 100644 --- a/dashboard-ui/itemdetails.html +++ b/dashboard-ui/itemdetails.html @@ -5,6 +5,19 @@
+ + + + +
diff --git a/dashboard-ui/musicrecommended.html b/dashboard-ui/musicrecommended.html index 6f1256f1d3..36c170beb7 100644 --- a/dashboard-ui/musicrecommended.html +++ b/dashboard-ui/musicrecommended.html @@ -4,7 +4,7 @@ ${TitleMediaBrowser} -
+
${TabSuggested} ${TabSongs} diff --git a/dashboard-ui/scripts/backdrops.js b/dashboard-ui/scripts/backdrops.js new file mode 100644 index 0000000000..b41cfaa532 --- /dev/null +++ b/dashboard-ui/scripts/backdrops.js @@ -0,0 +1,106 @@ +(function ($, document) { + + function getElement() { + + var elem = $('.backdropContainer'); + + if (!elem.length) { + + elem = $('
').prependTo(document.body); + } + + return elem; + } + + function getRandom(min, max) { + return Math.floor(Math.random() * (max - min) + min); + } + + function getBackdropItemIds(userId, types, parentId) { + + var key = 'backdrops_' + userId + (types || '') + (parentId || ''); + + var deferred = $.Deferred(); + + var data = localStorage.getItem(key); + + if (data) { + + console.log('Found backdrop id list in cache. Key: ' + key) + data = JSON.parse(data); + deferred.resolveWith(null, [data]); + } else { + + var options = { + + SortBy: "Random", + Limit: 50, + Recursive: true, + IncludeItemTypes: types, + ImageTypes: "Backdrop", + //Ids: "8114409aa00a2722456c08e298f90bed", + ParentId: parentId + }; + + ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) { + + var images = result.Items.map(function (i) { + return { + id: i.Id, + tag: i.BackdropImageTags[0] + }; + }); + + localStorage.setItem(key, JSON.stringify(images)); + deferred.resolveWith(null, [images]); + }); + } + + return deferred.promise(); + } + + function showBackdrop(type) { + + getBackdropItemIds(Dashboard.getCurrentUserId(), type, LibraryMenu.getTopParentId()).done(function (images) { + + if (images.length) { + + var index = getRandom(0, images.length - 1); + var item = images[index]; + + var imgUrl = ApiClient.getImageUrl(item.id, { + type: "Backdrop", + tag: item.tag + }); + + getElement().css('backgroundImage', 'url(\'' + imgUrl + '\')'); + + } else { + + clearBackdrop(); + } + }); + } + + function clearBackdrop() { + + $('.backdropContainer').css('backgroundImage', ''); + } + + $(document).on('pagebeforeshow', ".backdropPage", function () { + + var page = this; + + // Gets real messy and jumps around the page when scrolling + // Can be reviewed later. + if ($.browser.msie) { + $(page).removeClass('backdropPage'); + } else { + var type = page.getAttribute('data-backdroptype'); + + showBackdrop(type); + } + + }); + +})(jQuery, document); \ No newline at end of file diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index df334d5e79..0eda1433c9 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -184,6 +184,14 @@ $('#movieTabs', page).show(); } + if (item.Type == "ChannelVideoItem" || item.Type == "ChannelAudioItem" || item.Type == "ChannelCategoryItem") { + $('#channelTabs', page).show(); + } + + if (item.Type == "BoxSet") { + $('#boxsetTabs', page).show(); + } + if (item.MediaType == "Game") { $('#gameTabs', page).show(); } diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 681e5df543..82ea50ae3e 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -704,7 +704,7 @@ html += ''; var style = ""; - options.lazy = false; + if (imgUrl && !options.lazy) { style += 'background-image:url(\'' + imgUrl + '\');'; } diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 9395f7a6f4..2fe00c72d8 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -18,22 +18,30 @@ var html = ''; @@ -68,9 +70,9 @@ return LibraryBrowser.getHref(item); } - + function getViewsHtml(user, counts, items, liveTvInfo) { - + var html = ''; html += items.map(function (i) { @@ -98,7 +100,8 @@ if (user.Configuration.IsAdministrator) { html += '
'; - html += 'Metadata Manager'; + html += 'Dashboard'; + html += 'Metadata Manager'; } return html; @@ -149,7 +152,7 @@ } updateLibraryNavLinks(page); - + return panel; } @@ -178,7 +181,7 @@ } } - function updateLibraryNavLinks(page) { + function updateLibraryNavLinks(page, updateElements) { page = $(page); @@ -236,22 +239,22 @@ }); - }).on('pagebeforeshow', ".page", function () { + }).on('pagebeforeshow', ".libraryPage", function () { var page = this; - if ($(page).hasClass('libraryPage')) { + updateLibraryNavLinks(page); - if (!$('.viewMenuBar', page).length) { + if (!$('.viewMenuBar', page).length) { - Dashboard.getCurrentUser().done(function (user) { + Dashboard.getCurrentUser().done(function (user) { - renderHeader(page, user); - - updateLibraryNavLinks(page); - }); - } + renderHeader(page, user); + updateCastIcon(); + + updateLibraryNavLinks(page); + }); } }).on('pageshow', ".libraryPage", function () { diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js index 24b40dcf3b..7b15f408e4 100644 --- a/dashboard-ui/scripts/moviesrecommended.js +++ b/dashboard-ui/scripts/moviesrecommended.js @@ -5,9 +5,9 @@ var html = ''; var title = ''; - + switch (recommendation.RecommendationType) { - + case 'SimilarToRecentlyPlayed': title = 'Because you watched ' + recommendation.BaselineItemName; break; @@ -23,7 +23,7 @@ title = 'Starring ' + recommendation.BaselineItemName; break; } - + html += '

' + title + '

'; html += '
'; @@ -34,7 +34,7 @@ return html; } - + $(document).on('pagebeforeshow', "#moviesRecommendedPage", function () { var parentId = LibraryMenu.getTopParentId(); @@ -42,7 +42,7 @@ var screenWidth = $(window).width(); var page = this; - + var options = { SortBy: "DatePlayed", @@ -63,20 +63,20 @@ } else { $('#resumableSection', page).hide(); } - + $('#resumableItems', page).html(LibraryBrowser.getPosterViewHtml({ items: result.Items, preferBackdrop: true, shape: 'backdrop', overlayText: screenWidth >= 600, showTitle: true - + })).createPosterItemMenus(); }); var url = ApiClient.getUrl("Movies/Recommendations", { - + userId: Dashboard.getCurrentUserId(), categoryLimit: screenWidth >= 1200 ? 6 : 3, itemLimit: screenWidth >= 1920 ? 10 : (screenWidth >= 1440 ? 8 : 6), @@ -84,7 +84,7 @@ ParentId: parentId }); - $.getJSON(url).done(function(recommendations) { + $.getJSON(url).done(function (recommendations) { if (!recommendations.length) { @@ -96,6 +96,7 @@ $('.recommendations', page).html(html).createPosterItemMenus(); }); + }); diff --git a/dashboard-ui/scripts/musicrecommended.js b/dashboard-ui/scripts/musicrecommended.js index 2a4961ccad..2f218a6c54 100644 --- a/dashboard-ui/scripts/musicrecommended.js +++ b/dashboard-ui/scripts/musicrecommended.js @@ -13,7 +13,7 @@ SortBy: "DateCreated", SortOrder: "Descending", IncludeItemTypes: "MusicAlbum", - Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 7 : 5), + Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 5), Recursive: true, Fields: "PrimaryImageAspectRatio", ParentId: parentId @@ -36,7 +36,7 @@ SortBy: "DateCreated", SortOrder: "Descending", IncludeItemTypes: "Audio", - Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 7 : 5), + Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 5), Recursive: true, Fields: "PrimaryImageAspectRatio,AudioInfo", ParentId: parentId @@ -59,7 +59,7 @@ SortBy: "DatePlayed", SortOrder: "Descending", IncludeItemTypes: "Audio", - Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 7 : 5), + Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 5), Recursive: true, Fields: "PrimaryImageAspectRatio,AudioInfo", Filters: "IsPlayed", diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 776df0f794..e13d8b8849 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1175,6 +1175,8 @@ var Dashboard = { getDisplayTime: function (ticks) { var ticksPerHour = 36000000000; + var ticksPerMinute = 600000000; + var ticksPerSecond = 10000000; var parts = []; @@ -1187,8 +1189,6 @@ var Dashboard = { ticks -= (hours * ticksPerHour); - var ticksPerMinute = 600000000; - var minutes = ticks / ticksPerMinute; minutes = Math.floor(minutes); @@ -1199,10 +1199,8 @@ var Dashboard = { } parts.push(minutes); - var ticksPerSecond = 10000000; - var seconds = ticks / ticksPerSecond; - seconds = Math.round(seconds); + seconds = Math.floor(seconds); if (seconds < 10) { seconds = '0' + seconds; diff --git a/dashboard-ui/thirdparty/jquery.unveil-custom.js b/dashboard-ui/thirdparty/jquery.unveil-custom.js index 79f275a309..648fe06edd 100644 --- a/dashboard-ui/thirdparty/jquery.unveil-custom.js +++ b/dashboard-ui/thirdparty/jquery.unveil-custom.js @@ -29,6 +29,7 @@ } else { this.setAttribute("src", source); } + this.setAttribute("data-src", ''); if (typeof callback === "function") callback.call(this); } }); diff --git a/dashboard-ui/tvlatest.html b/dashboard-ui/tvlatest.html index abef6d884b..483d19eeb3 100644 --- a/dashboard-ui/tvlatest.html +++ b/dashboard-ui/tvlatest.html @@ -4,7 +4,7 @@ ${TitleMediaBrowser} -
+
${TabSuggested} ${TabLatest} diff --git a/dashboard-ui/tvrecommended.html b/dashboard-ui/tvrecommended.html index 2dd4a28076..e0975f8c4e 100644 --- a/dashboard-ui/tvrecommended.html +++ b/dashboard-ui/tvrecommended.html @@ -4,7 +4,7 @@ ${TitleMediaBrowser} -
+
${TabSuggested} ${TabLatest} diff --git a/dashboard-ui/tvupcoming.html b/dashboard-ui/tvupcoming.html index 1fc141e300..e2b9aba9a3 100644 --- a/dashboard-ui/tvupcoming.html +++ b/dashboard-ui/tvupcoming.html @@ -4,7 +4,7 @@ ${TitleMediaBrowser} -