diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index e3288fe54f..e6c40abde6 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -911,6 +911,15 @@ return html; }, + isYesterday: function (date1) { + + var today = new Date(); + today.setDate(today.getDate() - 1); + + return date1.getFullYear() == today.getFullYear() && date1.getDate() == today.getDate(); + + }, + isSameDay: function (date1, date2) { return date1.getFullYear() == date2.getFullYear() && date1.getDate() == date2.getDate(); @@ -934,6 +943,10 @@ return "Today"; } + if (LibraryBrowser.isYesterday(date)) { + return "Yesterday"; + } + return weekday[date.getDay()] + " " + date.toLocaleDateString(); }, @@ -2396,7 +2409,7 @@ var counts = response1[0]; var liveTvServices = response2[0]; - + insertViews(page, user, counts, liveTvServices); diff --git a/dashboard-ui/scripts/tvupcoming.js b/dashboard-ui/scripts/tvupcoming.js index 02f10c3ce4..54743a6743 100644 --- a/dashboard-ui/scripts/tvupcoming.js +++ b/dashboard-ui/scripts/tvupcoming.js @@ -1,28 +1,69 @@ (function ($, document) { + function formatDigit(i) { + return i < 10 ? "0" + i : i; + } + + function getDateFormat(date) { + + // yyyyMMddHHmmss + var d = date; + + return "" + d.getFullYear() + formatDigit(d.getMonth() + 1) + formatDigit(d.getDate()) + formatDigit(d.getHours()) + formatDigit(d.getMinutes()) + formatDigit(d.getSeconds()); + } + $(document).on('pagebeforeshow', "#tvUpcomingPage", function () { var page = this; - var options = { + var query = { SortBy: "PremiereDate,AirTime,SortName", SortOrder: "Ascending", IncludeItemTypes: "Episode", Limit: 30, Recursive: true, - Fields: "SeriesInfo,UserData", - IsUnaired: true + Fields: "SeriesInfo,UserData" }; - ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) { + var missedItemsQuery = $.extend({ - if (!result.Items.length) { + }, query); + + var yesterday = new Date(); + + yesterday.setHours(23, 50, 0, 0); + yesterday.setDate(yesterday.getDate() - 1); + missedItemsQuery.MaxPremiereDate = getDateFormat(yesterday); + + yesterday.setHours(0, 0, 0, 0); + missedItemsQuery.MinPremiereDate = getDateFormat(yesterday); + + var unairedQuery = $.extend({ + + IsUnaired: true + + }, query); + + var promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), missedItemsQuery); + var promise2 = ApiClient.getItems(Dashboard.getCurrentUserId(), unairedQuery); + + $.when(promise1, promise2).done(function (response1, response2) { + + var missedItems = response1[0].Items; + var unairedItems = response2[0].Items; + + for (var i = 0, length = unairedItems.length; i < length; i++) { + missedItems.push(unairedItems[i]); + } + + if (!missedItems.length) { $('#upcomingItems', page).html("

Nothing here. Please ensure downloading of internet metadata is enabled.

").trigger('create'); return; } + $('#upcomingItems', page).html(LibraryBrowser.getPosterViewHtml({ - items: result.Items, + items: missedItems, showLocationTypeIndicator: false, showNewIndicator: false, shape: "backdrop", @@ -32,7 +73,6 @@ showPremiereDateIndex: true, preferThumb: true })); - }); });