(function ($, document, apiClient) { var currentItem; var programs; function cancelRecording(page, id) { } function scheduleRecording(page, id) { } function renderPrograms(page, result) { var html = ''; //var cssClass = "detailTable"; //html += '
'; //html += ''; //html += ''; //html += ''; //html += ''; //html += ''; //html += ''; //html += ''; var currentIndexValue; for (var i = 0, length = result.Items.length; i < length; i++) { var program = result.Items[i]; var startDate = program.StartDate; var startDateText = ''; try { startDate = parseISO8601Date(startDate, { toLocal: true }); startDateText = LibraryBrowser.getFutureDateText(startDate); } catch (err) { } if (startDateText != currentIndexValue) { html += '

' + startDateText + '

'; currentIndexValue = startDateText; } html += ''; html += '
'; html += '
' + LiveTvHelpers.getDisplayTime(startDate) + '
'; html += '
'; var cssClass = "tvProgramInfo"; if (program.IsKids) { cssClass += " childProgramInfo"; } else if (program.IsSports) { cssClass += " sportsProgramInfo"; } else if (program.IsNews) { cssClass += " newsProgramInfo"; } else if (program.IsMovie) { cssClass += " movieProgramInfo"; } html += '
'; html += '
' + program.Name + '
'; html += '
'; if (program.IsLive) { html += 'LIVE  '; } else if (program.IsPremiere) { html += 'PREMIERE  '; } else if (program.IsSeries && !program.IsRepeat) { html += 'NEW  '; } var minutes = program.RunTimeTicks / 600000000; minutes = Math.round(minutes || 1) + ' min'; if (program.EpisodeTitle) { html += program.EpisodeTitle + '  (' + minutes + ')'; } else { html += minutes; } html += '
'; html += '
'; //html += '
'; //html += ''; //var startDate = program.StartDate; //try { // startDate = parseISO8601Date(startDate, { toLocal: true }); //} catch (err) { //} //html += ''; //html += ''; //html += ''; //html += ''; html += ''; } //html += '
 DateStartEndName
'; //if (program.RecordingId) { // html += ''; //} else { // html += 'Record'; //} //html += '' + startDate.toLocaleDateString() + '' + LiveTvHelpers.getDisplayTime(program.StartDate) + '' + LiveTvHelpers.getDisplayTime(program.EndDate) + ''; //if (program.Name) { // //html += ''; // html += program.Name; // //html += ''; //} //html += '
'; $('#programList', page).html(html).trigger('create'); } function loadPrograms(page) { ApiClient.getLiveTvPrograms({ ChannelIds: currentItem.Id, UserId: Dashboard.getCurrentUserId() }).done(function (result) { renderPrograms(page, result); programs = result.Items; Dashboard.hideLoadingMsg(); }); } function reload(page) { Dashboard.showLoadingMsg(); ApiClient.getLiveTvChannel(getParameterByName('id'), Dashboard.getCurrentUserId()).done(function (item) { currentItem = item; var name = item.Name; $('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item)); Dashboard.setPageTitle(name); $('.itemName', page).html(name); $('.itemChannelNumber', page).html(item.Number); $('.userDataIcons', page).html(LibraryBrowser.getUserDataIconsHtml(item)); if (ApiClient.isWebSocketOpen()) { var vals = [item.Type, item.Id, item.Name]; vals.push('livetv'); ApiClient.sendWebSocketMessage("Context", vals.join('|')); } if (MediaPlayer.canPlay(item)) { $('#playButtonContainer', page).show(); } else { $('#playButtonContainer', page).hide(); } Dashboard.getCurrentUser().done(function (user) { if (user.Configuration.IsAdministrator && item.LocationType !== "Offline") { $('#editButtonContainer', page).show(); } else { $('#editButtonContainer', page).hide(); } }); loadPrograms(page); }); } window.LiveTvHelpers = { getDisplayTime: function (date) { if ((typeof date).toString().toLowerCase() === 'string') { try { date = parseISO8601Date(date, { toLocal: true }); } catch (err) { return date; } } date = date.toLocaleTimeString(); date = date.replace('0:00', '0').replace(':00 ', '').replace(' ', ''); return date; } }; $(document).on('pageinit', "#liveTvChannelPage", function () { var page = this; $('#btnPlay', page).on('click', function () { var userdata = currentItem.UserData || {}; LibraryBrowser.showPlayMenu(this, currentItem.Name, currentItem.Type, currentItem.MediaType, userdata.PlaybackPositionTicks); }); $('#btnRemote', page).on('click', function () { RemoteControl.showMenuForItem({ item: currentItem, context: 'livetv' }); }); $('#btnEdit', page).on('click', function () { Dashboard.navigate("edititemmetadata.html?channelid=" + currentItem.Id); }); }).on('pageshow', "#liveTvChannelPage", function () { var page = this; reload(page); }).on('pagehide', "#liveTvChannelPage", function () { currentItem = null; programs = null; }); })(jQuery, document, ApiClient);