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

live tv updates

This commit is contained in:
Luke Pulverenti 2013-12-22 12:16:24 -05:00
parent ab99669e2d
commit 17ae566950
45 changed files with 337 additions and 336 deletions

View file

@ -9,7 +9,7 @@
SortOrder: "Ascending",
IncludeItemTypes: "Episode",
Recursive: true,
Fields: "DateCreated,SeriesInfo",
Fields: "DateCreated,SeriesInfo,PrimaryImageAspectRatio",
StartIndex: 0,
IsMissing: false,
IsVirtualUnaired: false
@ -38,7 +38,8 @@
useAverageAspectRatio: true,
shape: "backdrop",
showTitle: true,
showParentTitle: true
showParentTitle: true,
overlayText: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');

View file

@ -135,8 +135,6 @@
}).checkboxradio('refresh');
$('#selectView', page).val(view).selectmenu('refresh');
$('#chkTrailer', page).checked(query.HasTrailer == true).checkboxradio('refresh');
$('#chkThemeSong', page).checked(query.HasThemeSong == true).checkboxradio('refresh');
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true).checkboxradio('refresh');
@ -188,21 +186,6 @@
reloadItems(page);
});
$('#selectView', this).on('change', function () {
view = this.value;
if (view == "Timeline") {
query.SortBy = "PremiereDate";
query.StartIndex = 0;
$('#radioPremiereDate', page)[0].click();
} else {
reloadItems(page);
}
});
$('#chkTrailer', this).on('change', function () {
query.StartIndex = 0;

View file

@ -484,7 +484,7 @@
var isPlaying = MediaPlayer.isPlaying();
if (!isPlaying && !resumePositionTicks && mediaType != "Audio") {
MediaPlayer.playById(itemId);
MediaPlayer.playById(itemId, itemType);
return;
}
@ -498,7 +498,7 @@
if (itemType == "MusicArtist") {
html += '<li><a href="#" onclick="MediaPlayer.playArtist(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
} else if (itemType != "MusicGenre") {
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\', \'' + itemType + '\');LibraryBrowser.closePlayMenu();">Play</a></li>';
}
if (itemType == "Audio") {
@ -518,7 +518,7 @@
}
if (resumePositionTicks) {
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\', ' + resumePositionTicks + ');LibraryBrowser.closePlayMenu();">Resume</a></li>';
html += '<li><a href="#" onclick="MediaPlayer.playById(\'' + itemId + '\', \'' + itemType + '\', ' + resumePositionTicks + ');LibraryBrowser.closePlayMenu();">Resume</a></li>';
}
if (isPlaying) {
@ -693,22 +693,22 @@
var width = null;
var height = null;
var forceName = false;
if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Backdrop",
height: 198,
width: 352,
maxwidth: 576,
tag: item.BackdropImageTags[0]
});
}
else if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
imgUrl = ApiClient.getImageUrl(item, {
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.ImageTags.Thumb
});
@ -717,8 +717,7 @@
imgUrl = ApiClient.getImageUrl(item.SeriesId, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.SeriesThumbImageTag
});
@ -727,15 +726,24 @@
imgUrl = ApiClient.getThumbImageUrl(item, {
type: "Thumb",
height: 198,
width: 352
maxwidth: 576
});
}
else if (options.preferThumb && item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Backdrop",
maxwidth: 576,
tag: item.BackdropImageTags[0]
});
forceName = true;
}
else if (item.ImageTags && item.ImageTags.Primary) {
height = 300;
width = primaryImageAspectRatio ? (height * primaryImageAspectRatio).toFixed(0) : null;
height = 400;
width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null;
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Primary",
@ -747,8 +755,8 @@
}
else if (item.AlbumId && item.AlbumPrimaryImageTag) {
height = 300;
width = primaryImageAspectRatio ? (height * primaryImageAspectRatio).toFixed(0) : null;
height = 400;
width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null;
imgUrl = ApiClient.getImageUrl(item.AlbumId, {
type: "Primary",
@ -762,8 +770,7 @@
imgUrl = ApiClient.getImageUrl(item.Id, {
type: "Backdrop",
height: 198,
width: 352,
maxwidth: 576,
tag: item.BackdropImageTags[0]
});
@ -772,8 +779,7 @@
imgUrl = ApiClient.getImageUrl(item, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.ImageTags.Thumb
});
@ -782,8 +788,7 @@
imgUrl = ApiClient.getImageUrl(item.SeriesId, {
type: "Thumb",
height: 198,
width: 352,
maxwidth: 576,
tag: item.SeriesThumbImageTag
});
@ -792,8 +797,7 @@
imgUrl = ApiClient.getThumbImageUrl(item, {
type: "Thumb",
height: 198,
width: 352
maxwidth: 576
});
}
@ -863,16 +867,22 @@
html += "</div>";
}
var overlayText = forceName || options.overlayText;
if (overlayText) {
html += '<div class="posterItemTextOverlay">';
}
var cssclass = options.centerText ? "posterItemText posterItemTextCentered" : "posterItemText";
if (options.showParentTitle) {
html += "<div class='" + cssclass + "'><b>";
html += "<div class='" + cssclass + "'>";
html += item.SeriesName || item.Album || "&nbsp;";
html += "</b></div>";
html += "</div>";
}
if (options.showTitle) {
if (options.showTitle || forceName) {
html += "<div class='" + cssclass + "'>";
html += name;
@ -902,6 +912,10 @@
html += "</div>";
}
if (overlayText) {
html += "</div>";
}
if (item.LocationType == "Offline" || item.LocationType == "Virtual") {
if (options.showLocationTypeIndicator !== false) {
html += LibraryBrowser.getOfflineIndicatorHtml(item);
@ -1002,14 +1016,14 @@
}
else if (item.Type == "Episode" && item.IndexNumber != null && item.ParentIndexNumber != null) {
var displayIndexNumber = item.IndexNumber < 10 ? "0" + item.IndexNumber : item.IndexNumber;
var displayIndexNumber = item.IndexNumber;
var number = item.ParentIndexNumber + "x" + displayIndexNumber;
var number = "S" + item.ParentIndexNumber + ", E" + displayIndexNumber;
if (item.IndexNumberEnd) {
displayIndexNumber = item.IndexNumberEnd < 10 ? "0" + item.IndexNumberEnd : item.IndexNumberEnd;
number += "-x" + displayIndexNumber;
displayIndexNumber = item.IndexNumberEnd;
number += "-" + displayIndexNumber;
}
name = number + " - " + name;
@ -1325,9 +1339,9 @@
return html;
},
getPagingHtml: function (query, totalRecordCount) {
getPagingHtml: function (query, totalRecordCount, updatePageSizeSetting) {
if (query.Limit) {
if (query.Limit && updatePageSizeSetting !== false) {
localStorage.setItem('pagesize', query.Limit);
}
@ -1435,7 +1449,7 @@
return html;
},
getItemProgressBarHtml: function (item) {
getItemProgressBarHtml: function (item, includeText) {
var html = '';
@ -1466,7 +1480,9 @@
html += '<progress title="' + tooltip + '" class="itemProgressBar" min="0" max="100" value="' + pct + '">';
html += '</progress>';
html += '<span class="itemProgressText">' + tooltip + '</span>';
if (includeText) {
html += '<span class="itemProgressText">' + tooltip + '</span>';
}
}
return html;
@ -1477,7 +1493,7 @@
var html = '';
if (item.Type != "Audio" && item.Type != "Season" && item.Type != "Series") {
html += LibraryBrowser.getItemProgressBarHtml(item);
html += LibraryBrowser.getItemProgressBarHtml(item, true);
}
var userData = item.UserData || {};
@ -2048,7 +2064,7 @@
if (item.Type == "Audio") {
miscInfo.push(Dashboard.getDisplayTime(item.RunTimeTicks));
} else {
minutes = item.RunTimeTicks / 600000000;

View file

@ -100,7 +100,7 @@
} else {
html += minutes;
}
if (program.SeriesTimerId) {
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
@ -245,8 +245,8 @@
return date;
},
renderMiscProgramInfo: function(elem, obj) {
renderMiscProgramInfo: function (elem, obj) {
var html = [];
@ -261,7 +261,7 @@
html.push('<span class="liveTvProgram">LIVE</span>');
}
if (obj.ChannelId) {
html.push('<a class="textlink" href="livetvchannel.html?id=' + obj.ChannelId + '">' + obj.ChannelName + '</a>');
}
@ -278,11 +278,27 @@
}
elem.html(html.join('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;')).trigger('create');
html = html.join('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
if (obj.SeriesTimerId) {
html += '<a href="livetvseriestimer.html?id=' + obj.SeriesTimerId + '" title="View Series Recording">';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '</a>';
}
else if (obj.TimerId) {
html += '<a href="livetvtimer.html?id=' + obj.TimerId + '">';
html += '<div class="timerCircle"></div>';
html += '</a>';
}
elem.html(html).trigger('create');
},
renderOriginalAirDate: function(elem, item) {
renderOriginalAirDate: function (elem, item) {
var airDate = item.OriginalAirDate;
if (airDate) {

View file

@ -26,26 +26,25 @@
var context = 'livetv';
currentItem = item;
$('.itemName', page).html(item.Name);
$('.itemChannelNumber', page).html('Channel:&nbsp;&nbsp;&nbsp;<a href="livetvchannel.html?id=' + item.ChannelId + '">' + item.ChannelName + '</a>').trigger('create');
var programInfo = item.ProgramInfo || {};
if (item.EpisodeTitle) {
$('.itemEpisodeName', page).html('Episode:&nbsp;&nbsp;&nbsp;' + item.EpisodeTitle);
} else {
$('.itemEpisodeName', page).html('');
}
$('.itemName', page).html(programInfo.Name);
$('.itemEpisodeName', page).html(programInfo.EpisodeTitle || '');
if (item.CommunityRating) {
$('.itemCommunityRating', page).html(LibraryBrowser.getRatingHtml(item)).show();
if (programInfo.CommunityRating) {
$('.itemCommunityRating', page).html(LibraryBrowser.getRatingHtml(programInfo)).show();
} else {
$('.itemCommunityRating', page).hide();
}
LibraryBrowser.renderGenres($('.itemGenres', page), item, context);
LibraryBrowser.renderOverview($('.itemOverview', page), item);
LibraryBrowser.renderGenres($('.itemGenres', page), programInfo, context);
LibraryBrowser.renderOverview($('.itemOverview', page), programInfo);
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
LiveTvHelpers.renderMiscProgramInfo($('.miscTvProgramInfo', page), programInfo);
$('#txtPrePaddingSeconds', page).val(item.PrePaddingSeconds / 60);
$('#txtPostPaddingSeconds', page).val(item.PostPaddingSeconds / 60);
$('#chkPrePaddingRequired', page).checked(item.IsPrePaddingRequired).checkboxradio('refresh');
@ -53,14 +52,6 @@
$('.status', page).html('Status:&nbsp;&nbsp;&nbsp;' + item.Status);
if (item.SeriesTimerId) {
$('.seriesTimerLink', page).html('<a href="livetvseriestimer.html?id=' + item.SeriesTimerId + '">View Series</a>').show().trigger('create');
} else {
$('.seriesTimerLink', page).hide();
}
Dashboard.hideLoadingMsg();
}

View file

@ -33,7 +33,7 @@
html += '<th>Name</th>';
html += '<th class="desktopColumn">Channel</th>';
html += '<th>Date</th>';
html += '<th>Start</th>';
html += '<th>Time</th>';
html += '<th class="tabletColumn">Length</th>';
html += '<th class="tabletColumn">Status</th>';
html += '<th class="desktopColumn">Series</th>';
@ -97,8 +97,10 @@
html += '<td class="desktopColumn">';
if (timer.SeriesTimerId) {
html += '<a href="livetvseriestimer.html?id=' + timer.SeriesTimerId + '">';
html += 'View';
html += '<a href="livetvseriestimer.html?id=' + timer.SeriesTimerId + '" title="View Series Recording">';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '<div class="timerCircle seriesTimerCircle"></div>';
html += '</a>';
}

View file

@ -661,7 +661,7 @@
currentItem = item;
curentDurationTicks = item.RunTimeTicks;
alert(JSON.stringify(item));
return videoElement[0];
};
@ -980,7 +980,29 @@
return ApiClient.getItems(userId, query);
};
self.playById = function (id, startPositionTicks) {
self.playById = function (id, itemType, startPositionTicks) {
if (itemType == "Recording") {
ApiClient.getLiveTvRecording(id, Dashboard.getCurrentUserId()).done(function (item) {
self.play([item], startPositionTicks);
});
return;
}
if (itemType == "Channel") {
ApiClient.getLiveTvChannel(id, Dashboard.getCurrentUserId()).done(function (item) {
self.play([item], startPositionTicks);
});
return;
}
ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {

View file

@ -9,7 +9,7 @@
SortOrder: "Ascending",
IncludeItemTypes: "Movie",
Recursive: true,
Fields: "DateCreated",
Fields: "DateCreated,PrimaryImageAspectRatio",
StartIndex: 0
};
@ -31,20 +31,21 @@
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Backdrop") {
html += LibraryBrowser.getPosterDetailViewHtml({
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferBackdrop: true,
context: "movies",
shape: "backdrop"
shape: "backdrop",
preferThumb: true,
context: 'movies'
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Poster") {
html += LibraryBrowser.getPosterDetailViewHtml({
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
context: "movies",
shape: "poster"
shape: "portrait",
context: 'movies',
useAverageAspectRatio: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}

View file

@ -32,9 +32,9 @@
SortOrder: "Descending",
IncludeItemTypes: "Movie",
Filters: "IsResumable",
Limit: 6,
Limit: 3,
Recursive: true,
Fields: "PrimaryImageAspectRatio,DateCreated,UserData"
Fields: "DateCreated,UserData"
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -47,8 +47,11 @@
$('#resumableItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
useAverageAspectRatio: true,
showProgressBar: true
showProgressBar: true,
preferBackdrop: true,
shape: 'backdrop',
overlayText: true,
showTitle: true
}));
});

View file

@ -108,8 +108,6 @@
}).checkboxradio('refresh');
$('#selectView', page).val(view).selectmenu('refresh');
$('.alphabetPicker', page).alphaValue(query.NameStartsWith);
}
@ -146,13 +144,6 @@
reloadItems(page);
});
$('#selectView', this).on('change', function () {
view = this.value;
reloadItems(page);
});
$('.alphabetPicker', this).on('alphaselect', function (e, character) {
query.NameStartsWithOrGreater = character;

View file

@ -130,8 +130,6 @@
}).checkboxradio('refresh');
$('#selectView', page).val(view).selectmenu('refresh');
$('#chk3D', page).checked(query.Is3D == true).checkboxradio('refresh');
$('#chkSubtitle', page).checked(query.HasSubtitles == true).checkboxradio('refresh');
@ -193,22 +191,6 @@
reloadItems(page);
});
$('#selectView', this).on('change', function () {
view = this.value;
if (view == "Timeline") {
query.SortBy = "PremiereDate";
query.StartIndex = 0;
$('#radioPremiereDate', page)[0].click();
} else {
reloadItems(page);
}
});
$('#chk3D', this).on('change', function () {
query.StartIndex = 0;

View file

@ -43,7 +43,7 @@
var html = '';
$('.listTopPaging', page).html(LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, true)).trigger('create');
$('.listTopPaging', page).html(LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false)).trigger('create');
updateFilterControls(page);
@ -58,7 +58,7 @@
sortOrder: query.SortOrder
});
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount);
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false);
$('#items', page).html(html).trigger('create');

View file

@ -27,7 +27,8 @@
useAverageAspectRatio: true,
shape: "backdrop",
showTitle: true,
showParentTitle: true
showParentTitle: true,
overlayText: true
}));

View file

@ -24,7 +24,8 @@
showNewIndicator: false,
shape: "backdrop",
showTitle: true,
showParentTitle: true
showParentTitle: true,
overlayText: true
}));
});
@ -55,7 +56,8 @@
shape: "backdrop",
showTitle: true,
showParentTitle: true,
showProgressBar: true
showProgressBar: true,
overlayText: true
}));
});

View file

@ -1,6 +1,6 @@
(function ($, document) {
var view = "Poster";
var view = "Thumb";
// The base query options
var query = {
@ -9,7 +9,7 @@
SortOrder: "Ascending",
IncludeItemTypes: "Series",
Recursive: true,
Fields: "SeriesInfo,DateCreated",
Fields: "SeriesInfo,DateCreated,PrimaryImageAspectRatio",
StartIndex: 0
};
@ -31,27 +31,35 @@
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Backdrop") {
html += LibraryBrowser.getPosterDetailViewHtml({
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferBackdrop: true,
context: "tv"
shape: "backdrop",
preferThumb: true,
context: 'tv'
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Poster") {
html += LibraryBrowser.getPosterDetailViewHtml({
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
context: "tv"
shape: "portrait",
context: 'tv',
useAverageAspectRatio: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Timeline") {
html += LibraryBrowser.getPosterDetailViewHtml({
items: result.Items,
context: "tv",
timeline: true
});
$('.itemsContainer', page).addClass('timelineItemsContainer');
}