1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/scripts/livetvchannel.js

72 lines
2 KiB
JavaScript
Raw Normal View History

2016-09-07 16:11:16 -04:00
define(['datetime', 'listView'], function (datetime, listView) {
2016-09-07 16:11:16 -04:00
function isSameDay(date1, date2) {
2013-11-25 15:39:23 -05:00
2016-09-07 16:11:16 -04:00
return date1.toDateString() === date2.toDateString();
}
2013-11-25 15:39:23 -05:00
2016-09-07 16:11:16 -04:00
function renderPrograms(page, result) {
2013-11-25 15:39:23 -05:00
2016-09-07 16:11:16 -04:00
var html = '';
var currentItems = [];
var currentStartDate = null;
2013-11-25 15:39:23 -05:00
for (var i = 0, length = result.Items.length; i < length; i++) {
2016-09-07 16:11:16 -04:00
var item = result.Items[i];
2013-11-25 16:53:06 -05:00
2016-09-07 16:11:16 -04:00
var itemStartDate = datetime.parseISO8601Date(item.StartDate);
if (!currentStartDate || !isSameDay(currentStartDate, itemStartDate)) {
2013-11-25 15:39:23 -05:00
2016-09-07 16:11:16 -04:00
if (currentItems.length) {
2013-11-25 15:39:23 -05:00
2016-09-16 08:21:22 -04:00
html += '<h1>' + datetime.toLocaleDateString(itemStartDate, { weekday: 'long', month: 'long', day: 'numeric' }) + '</h1>';
2016-09-07 16:11:16 -04:00
html += '<div is="emby-itemscontainer" class="vertical-list">' + listView.getListViewHtml({
items: currentItems,
enableUserDataButtons: false,
showParentTitle: true,
image: false,
2016-10-03 02:28:45 -04:00
showProgramTime: true,
mediaInfo: false,
parentTitleWithTitle: true
2016-09-07 16:11:16 -04:00
}) + '</div>';
}
2013-11-25 15:39:23 -05:00
2016-09-07 16:11:16 -04:00
currentStartDate = itemStartDate;
currentItems = [];
2013-11-25 15:39:23 -05:00
}
2013-12-17 01:08:06 -05:00
2016-09-07 16:11:16 -04:00
currentItems.push(item);
2013-12-20 15:09:49 -05:00
}
2016-03-19 18:31:00 -04:00
2016-05-05 22:55:15 -04:00
page.querySelector('#childrenContent').innerHTML = html;
2013-11-25 15:39:23 -05:00
}
2015-08-18 00:22:45 -04:00
function loadPrograms(page, channelId) {
2013-11-25 15:39:23 -05:00
ApiClient.getLiveTvPrograms({
2013-12-17 01:08:06 -05:00
2015-08-18 00:22:45 -04:00
ChannelIds: channelId,
2015-08-25 22:13:28 -04:00
UserId: Dashboard.getCurrentUserId(),
HasAired: false,
2016-09-07 16:11:16 -04:00
SortBy: "StartDate",
2016-09-17 13:01:58 -04:00
EnableTotalRecordCount: false,
EnableImages: false,
ImageTypeLimit: 0,
EnableUserData: false
2013-11-25 15:39:23 -05:00
2015-12-14 10:43:03 -05:00
}).then(function (result) {
2013-11-25 15:39:23 -05:00
renderPrograms(page, result);
2013-11-26 16:36:11 -05:00
Dashboard.hideLoadingMsg();
2013-11-25 15:39:23 -05:00
});
}
return {
2015-08-18 00:22:45 -04:00
renderPrograms: loadPrograms
};
});