From f9ec68014570ef28f0ffeed3e58cedecfd4bc6f9 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 28 Dec 2013 18:09:24 -0500 Subject: [PATCH] graphical display of latest recordings --- .../css/images/items/list/collection.png | Bin 3700 -> 3924 bytes dashboard-ui/livetvrecordings.html | 14 +++-- dashboard-ui/scripts/librarybrowser.js | 49 +++++++++++++----- dashboard-ui/scripts/livetvrecordings.js | 42 +++++++++++++-- 4 files changed, 85 insertions(+), 20 deletions(-) diff --git a/dashboard-ui/css/images/items/list/collection.png b/dashboard-ui/css/images/items/list/collection.png index d1e862a6948569deee4193570337486796209869..afcebcf64f560270f129dae946431cbbeb61154f 100644 GIT binary patch literal 3924 zcmeHKdr(t%7LKc{t6jA^1-ifns{)p$iGb)v0vRoc7z8(jHk6kj7`r@D5+n%{(y_%> zf}n&=ct}!pL6Mh%f`nigs|YcH3_jMfK!PLz(Ihkk6JlO_p?2(*neNW)_}BK2JNNPX z?)N+AJKs4sIejQHZ0#D?H4q47ZTS8WEClj9CkSL2><=q}Cpok|r-0KkGB#{4qkkir`}&3%_U>AMhllLJQ4_Ueao@C?VpjfG=T(oSu0RxDShFVR!h@Cd zYoJ*nH$P*t7 zTJ-!Pne^_jD=7M6SSz*K>^4v6jUwoXceM=@Ms>4WxJZ|2 zuIectVNp?x8r^-)me!l9fRhi)JtM>eTiXh9<=siVkv^6KMavxJyT=BY^MtjN4+Zr3 zxdz7OnFvR>x*}sc?abkT1%7{VBidW;93{=-&$n0OVY2}u&!m~4F>7z)TJq#%8)cQen@Yu@e1HmV2HOwmOa_L0^h)$x~ccoN4E{ZgLw zeo+GHk+`K#?!wF;JYg_9>>9~=$tto!0>B@u+F!!Gh$@71l$grzpRyKrI_BDVvRmfe z=<<;`_9X!JGpjf8iI9g!y&E+scV_07jP=Y>wK_7F{xoWXx)yNe62OA0S9xo3iWmjJRWur?Oi}dQsC2!_jX-}hp8c~N9#Y1 zW^eZ#Il%q`(f^F3?cF@4qZD;}UH1qK$_{3{ZFd=6#qBn*?cRv?P`Zv_YA6 zvZy!3#PM^eHMhvLZKakM>gay|O|*l_3yx~l#`Ezgq{o1HCJE{z1H>y_BsQ`_9~%sx zCbZ*GRb(`4Bq|o_1*``Aw3?g>XtvQsO(7qh>v_)3^ltfZ(Q}hxYcRs@XV;#xeu5je zdEKMzdtT9GKAo0N8c035m{X;3#Fjc1Y3@$)E|2lry>T^`wZyq`I}pry%Iw=g@J3^2i`EFo*E@T&%5p(bVVgl zY!D{lJC-7%N4wmEI#mM3%ru4X0A)%U#_E+4{+Ci<*60vf&HAuS;7B`g-6_c2v%|Kb zgQBk;D9gu2SCDk@I3Lk*03gQd3(Zh@wy{YQu!JE40Pt}c-v7PgXiO*?L=)@tf{)w5 zs=WC(V9cg+r84YLY3;>I=^qzOZb&U)7Zre{37o8*7}HCTrZIhju#}^_3eLL`)9Xfd z1WATUy~oI8g^dsfF9z}Tb>ghi?T1j@Q3`PoMa}(g$#TAer21YZP3w950A!XUaX!K2 z_6GJA7q2PNj^Ml(-(0@)IzY~`i`4yv;z}2lX4N2cwj3N?2B!B?w%YV}e??ASR|z<- zd5TW~!ZapwKXHJhs1f=T!X)6Ai!r^o1T(;3H;Bnh>K_bsocH=bmRyBi1|9~_3k>1|6zQqYtey$kP`<5Z7+oXvbP6z4V zhMPO`OEWKNx)ORl^)Gg$+_h9wlztm5P=XJ%$fHEaRtjVDbD;)-|7}`|}7^KR72#Dv7T+ewI5XyF@>O>n0(wUM59Z zpItLN^ct}et3Rw0QWm1JbM9Coqy7oj{9R5_f*oe+Ifl%u$`SVEAIwtZ=1ok1s|VN@ z?oq6e2_D@pRV&dY>t}SGn?VUA0O^g8G@Hn0YEzcBEMZAU!sC5r>#Qtb7DR{&TZ*6A z%dSO&3M$liJDCXlPC7F0bFsm3vyFIU1{`^7ZHkF`T|`CZ9TFQvfieeTP;}-7c#=xk zMG5k=yPgEHm8)2&sZS;aNyh4Z=t^*U53%}V@^2Zwx=*34(<-yhPOL!4v>#oT71S&N zQlb6T&l@JV`Q50zKry*1P^NVwS?=JK2tu$gSQ1J-73HmOp8uM9c#Ay%T2fsEYOS%_ zy)Y;3tIx-OwD7NfH{Q(8!Z*zd`L+SJ4AOOX<8K$giSWjpFvTa>&@Z~0`tMJ3#(_V* OknqsRkmkLIPyQP+2WY$i literal 3700 zcmeHKeN<9u8n?`9Omj>bEx#K2a3fD@R(>I7$*7YfrGi2ljW$|Z8ft2aG$*zVVU=~= z(n_VU*0mcshD0h#jiR-h#LDVqe!@EFm>(!AD9T>0wL3d!=bV{6`)Bu$_v5+0=Xu}f z_x_&u+?#teB*4^oi?M-$foV{nf2e`MYM6n+DyQ{^pyhBybq(09iTC@$&%mIXxk3A- z5jbx-8XS%Wd)bo2Tx9|Or{9B__@#x0 zgn@~!H~HAo+IH*q-#EGK^FSW-4-7sU9vOA=)akS5(=y3lQ?D|Zg+;em$}V-D;FM9Y}9v#!M>~NY@YP<;h9b{B1rY;+9D6Q2rMkwfLLH;juzq94X#~ z&L6A5Z#);JWYjbcyA@uDQ;tu|ceBDMUqbrc|4K{F!)u>t)zdw@O}}-zdf=fNopAf& zc~kRJ(f6&-j_CTfwqXwH*WgVFG!zm3tiWF2BEPTN4Q2qpH zfgtIRW4YGR6y({W7*A-O!+m$~$j#clli zgwryWnjzh}sJIyyX{^s(+NH*H$X2ImT(3Y0KG0UgRck(~(-uSY@zR$qxE{*5DM$O7 zjo(=6sjjS54RftePy~Su??L>=v!67zF*9o4Z((DPJJG?NVMC40j`uF1Y=(AVHtEQ` zAxZ{;M|?UOp<}CLs72iGdTney=H{dNZtKr}p_sUjQJ5@gWA1{y9A`JgDbuE!6q@(J zPfRE}Wc`By^-qUeS9Wwu>&boMDbRX!j<+9Ki30Lr;_SOILbqnI4r0=7R@@$wrXd0H zi$&0>&8mFMMCUE%v&+&~#MQmJg=-x}N%I-o1X0~++Ridce@Dy@QO^YUx98GPqe>`T zgZC@Et+s2iq!qdaFF5c#2iic4dfl&G8B<#Y%dJ_rHv_$R8ya$>+f37QYMGEm>JA5;Q3d5SlcAxxh%7n zuQ~3i9ihPU9kQ?plInJo-9BN%ee6?z@?Q~iUO5>}4goWDRoJ`cO3!*ah2PUxa-70} zGic%)SQYuzQ!2qIs9DjDm}sGItgaq(Gvv`N;iy(X-8;LyG`3;wQQ-MjS*n2E!DM9$ zPp;z8*XZAlX!GndtekG+3Jx|aPQzHSJFeD70fRKPEr&fHkH*+`Aza`nJ}xN+*1xCc zAcyU3&ML>I>EIYcWGw0A>=c+=?5tD?= zQ9$5UnMJgyg45aQz-j>anl8i^3uVwlnWS=ZT}PY6o&;E4u6j)b>0IV1`7sXL*__pj zc-(q5L{NoI+aa?!F6ytm5o^UvfcfOAn{jtodov?}k)USB$MnvWsn0oVM{|}GF*iF{ zNkC)Zs7kD$Bvo~o!``Mh+lxKx!hn&$W=9^qJ2iiz8{xG{8N`X{FbwaI4(!g_q|A+` zmRzHDC%%g=K2OHIi{30TNYA z!%Q#JnZ6zT{WC;50i6m*z4lf;PA*-X?o8#EiIdnkNeNBdixo)cd?(+InI*!;bJgw9 zXdisRw*QIgZvl_2d6n2I8&Zx0`}TyF>ymObdqMP^M{n^bUj{q`i}D85hI$^o!=Ic2 zcv$CrDr;d7&_p<@7Tdeo!K;A?jC`)=(A~zZHA#x71DW8+*tTR)4(wA z$bnO7VkKfHGsfp?@lyLq4*Z(_dI(Mu-OQibz8BOw5UKGvumboBR``N3mt30EYof)0TDw9MdjiG5>AKYFp-FB?^hN81>^Kg4gE=cT zLV2ah-5c}RX6lrp>9U&?k#eTmxP*X?O@JXO1;46+qjc`jJv@>>4Si31=s)nF|F-x~ c9b7Uz;`KmQ+0~B&f3ggM&>{X051qXHPhlw5<^TWy diff --git a/dashboard-ui/livetvrecordings.html b/dashboard-ui/livetvrecordings.html index 5e61d0ebec..dc1cf1545e 100644 --- a/dashboard-ui/livetvrecordings.html +++ b/dashboard-ui/livetvrecordings.html @@ -13,9 +13,17 @@ Series
-
-

Recording Groups

-
+
+ + +
+
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index d419a4667f..218b47fb55 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -1,6 +1,6 @@ var LibraryBrowser = (function (window, document, $, screen, localStorage) { - var defaultBackground = "#555;"; + var defaultBackground = "#444"; return { @@ -590,6 +590,9 @@ if (item.Type == "Person") { return "itembynamedetails.html?person=" + ApiClient.encodeName(item.Name) + "&context=" + itemByNameContext; } + if (item.Type == "Recording") { + return "livetvrecording.html?id=" + id; + } if (item.Type == "MusicArtist") { if (itemByNameContext == "music") { @@ -745,12 +748,22 @@ height = 400; width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null; - imgUrl = ApiClient.getImageUrl(item.Id, { - type: "Primary", - height: height, - width: width, - tag: item.ImageTags.Primary - }); + if (item.Type == "Recording") { + imgUrl = ApiClient.getUrl("LiveTV/Recordings/" + item.Id + "/Images/Primary", { + type: "Primary", + height: height, + width: width, + tag: item.ImageTags.Primary + }); + + } else { + imgUrl = ApiClient.getImageUrl(item.Id, { + type: "Primary", + height: height, + width: width, + tag: item.ImageTags.Primary + }); + } } else if (item.AlbumId && item.AlbumPrimaryImageTag) { @@ -807,16 +820,24 @@ imgUrl = 'css/images/items/list/audio.png'; background = defaultBackground; } else { - background = '#555'; + background = defaultBackground; } } + else if (item.Type == "Recording" || item.Type == "Program") { + + if (item.Name && options.showTitle) { + imgUrl = 'css/images/items/list/collection.png'; + } + + background = defaultBackground; + } else if (item.MediaType == "Video" || item.Type == "Season" || item.Type == "Series") { if (item.Name && options.showTitle) { imgUrl = 'css/images/items/list/video.png'; background = defaultBackground; } else { - background = '#555'; + background = defaultBackground; } } else { @@ -824,7 +845,7 @@ imgUrl = 'css/images/items/list/collection.png'; background = LibraryBrowser.getMetroColor(item.Id); } else { - background = '#555'; + background = defaultBackground; } } @@ -874,7 +895,7 @@ if (options.showParentTitle) { html += "
"; - html += item.SeriesName || item.Album || item.AlbumArtist || " "; + html += item.EpisodeTitle ? item.Name : (item.SeriesName || item.Album || item.AlbumArtist || " "); html += "
"; } @@ -965,7 +986,7 @@ var day = weekday[date.getDay()]; date = date.toLocaleDateString(); - + if (date.toLowerCase().indexOf(day.toLowerCase()) == -1) { return day + " " + date; } @@ -1010,7 +1031,7 @@ getPosterViewDisplayName: function (item, displayAsSpecial) { - var name = item.Name; + var name = item.EpisodeTitle || item.Name; if (displayAsSpecial && item.Type == "Episode" && item.ParentIndexNumber == 0) { @@ -1066,7 +1087,7 @@ } return '
Missing
'; }, - + getUnplayedIndicatorHtml: function (item) { if (item.LocationType == 'Virtual') { diff --git a/dashboard-ui/scripts/livetvrecordings.js b/dashboard-ui/scripts/livetvrecordings.js index 47e2ea5be5..282f9b33df 100644 --- a/dashboard-ui/scripts/livetvrecordings.js +++ b/dashboard-ui/scripts/livetvrecordings.js @@ -18,7 +18,7 @@ }); } - + function loadRecordings(page, elem, groupId) { var contentElem = $('.recordingList', elem).html('
'); @@ -39,7 +39,7 @@ var html = ''; - html += '
'; + html += '
'; html += '

' + group.Name + '

'; @@ -53,6 +53,12 @@ function renderRecordingGroups(page, groups) { + if (groups.length) { + $('#recordingGroups', page).show(); + } else { + $('#recordingGroups', page).hide(); + } + var html = ''; for (var i = 0, length = groups.length; i < length; i++) { @@ -60,7 +66,7 @@ html += getRecordingGroupHtml(groups[i]); } - var elem = $('#items', page).html(html).trigger('create'); + var elem = $('#recordingGroupItems', page).html(html).trigger('create'); $('.recordingGroupCollapsible', elem).on('collapsibleexpand.lazyload', function () { @@ -133,6 +139,25 @@ Dashboard.hideLoadingMsg(); } + + function renderLatestRecordings(page, recordings) { + + if (recordings.length) { + $('#latestRecordings', page).show(); + } else { + $('#latestRecordings', page).hide(); + } + + $('#latestRecordingItems', page).html(LibraryBrowser.getPosterViewHtml({ + items: recordings, + useAverageAspectRatio: true, + shape: "smallBackdrop", + showTitle: true, + showParentTitle: true, + overlayText: true + + })); + } function reload(page) { @@ -147,6 +172,17 @@ renderRecordingGroups(page, result.Items); }); + + apiClient.getLiveTvRecordings({ + + userId: Dashboard.getCurrentUserId(), + limit: 6 + + }).done(function (result) { + + renderLatestRecordings(page, result.Items); + + }); } $(document).on('pagebeforeshow', "#liveTvRecordingsPage", function () {