mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update recording scheduler
This commit is contained in:
parent
7790a5b573
commit
65f5de02c1
14 changed files with 130 additions and 271 deletions
|
@ -24,6 +24,7 @@
|
|||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), false, context);
|
||||
LibraryBrowser.renderParentName(item, $('.parentName', page), context);
|
||||
LibraryMenu.setTitle(item.Name);
|
||||
|
||||
Dashboard.getCurrentUser().done(function (user) {
|
||||
|
||||
|
@ -39,7 +40,17 @@
|
|||
LibraryBrowser.renderDetailPageBackdrop(page, item);
|
||||
}
|
||||
|
||||
if (MediaController.canPlay(item)) {
|
||||
if (item.Type == 'Program') {
|
||||
|
||||
var now = new Date();
|
||||
|
||||
if (now >= parseISO8601Date(item.StartDate, { toLocal: true }) && now < parseISO8601Date(item.EndDate, { toLocal: true })) {
|
||||
$('.btnPlay', page).removeClass('hide');
|
||||
} else {
|
||||
$('.btnPlay', page).addClass('hide');
|
||||
}
|
||||
}
|
||||
else if (MediaController.canPlay(item)) {
|
||||
$('.btnPlay', page).removeClass('hide');
|
||||
}
|
||||
else {
|
||||
|
@ -64,6 +75,18 @@
|
|||
$('.btnShare', page).addClass('hide');
|
||||
}
|
||||
|
||||
if (item.Type == 'Program' && item.TimerId) {
|
||||
$('.btnCancelRecording', page).removeClass('hide');
|
||||
} else {
|
||||
$('.btnCancelRecording', page).addClass('hide');
|
||||
}
|
||||
|
||||
if (item.Type == 'Program' && (!item.TimerId && !item.SeriesTimerId)) {
|
||||
$('.btnRecord', page).removeClass('hide');
|
||||
} else {
|
||||
$('.btnRecord', page).addClass('hide');
|
||||
}
|
||||
|
||||
if (!item.LocalTrailerCount && item.RemoteTrailers.length && item.PlayAccess == 'Full') {
|
||||
|
||||
$('.btnPlayExternalTrailer', page).removeClass('hide').attr('href', item.RemoteTrailers[0].Url);
|
||||
|
@ -90,6 +113,8 @@
|
|||
} else {
|
||||
$('.chapterSettingsButton', page).hide();
|
||||
}
|
||||
|
||||
LiveTvHelpers.renderOriginalAirDate($('.airDate', page), item);
|
||||
});
|
||||
|
||||
if (item.LocationType == "Offline") {
|
||||
|
@ -1548,20 +1573,54 @@
|
|||
}
|
||||
}
|
||||
|
||||
function playCurrentItem(button) {
|
||||
|
||||
if (currentItem.Type == 'Program') {
|
||||
|
||||
ApiClient.getLiveTvChannel(currentItem.ChannelId, Dashboard.getCurrentUserId()).done(function (channel) {
|
||||
|
||||
LibraryBrowser.showPlayMenu(null, channel.Id, channel.Type, false, channel.MediaType, (channel.UserData || {}).PlaybackPositionTicks);
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var userdata = currentItem.UserData || {};
|
||||
|
||||
var mediaType = currentItem.MediaType;
|
||||
|
||||
if (currentItem.Type == "MusicArtist" || currentItem.Type == "MusicAlbum") {
|
||||
mediaType = "Audio";
|
||||
}
|
||||
|
||||
LibraryBrowser.showPlayMenu(button, currentItem.Id, currentItem.Type, currentItem.IsFolder, mediaType, userdata.PlaybackPositionTicks);
|
||||
}
|
||||
|
||||
function deleteTimer(page, id) {
|
||||
|
||||
Dashboard.confirm(Globalize.translate('MessageConfirmRecordingCancellation'), Globalize.translate('HeaderConfirmRecordingCancellation'), function (result) {
|
||||
|
||||
if (result) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.cancelLiveTvTimer(id).done(function () {
|
||||
|
||||
Dashboard.alert(Globalize.translate('MessageRecordingCancelled'));
|
||||
|
||||
reload(page);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('pageinitdepends', "#itemDetailPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.btnPlay', page).on('click', function () {
|
||||
var userdata = currentItem.UserData || {};
|
||||
|
||||
var mediaType = currentItem.MediaType;
|
||||
|
||||
if (currentItem.Type == "MusicArtist" || currentItem.Type == "MusicAlbum") {
|
||||
mediaType = "Audio";
|
||||
}
|
||||
|
||||
LibraryBrowser.showPlayMenu(this, currentItem.Id, currentItem.Type, currentItem.IsFolder, mediaType, userdata.PlaybackPositionTicks);
|
||||
playCurrentItem(this);
|
||||
});
|
||||
|
||||
$('.btnPlayTrailer', page).on('click', function () {
|
||||
|
@ -1580,6 +1639,19 @@
|
|||
});
|
||||
});
|
||||
|
||||
$('.btnRecord', page).on('click', function () {
|
||||
|
||||
var id = getParameterByName('id');
|
||||
|
||||
Dashboard.navigate('livetvnewrecording.html?programid=' + id);
|
||||
|
||||
});
|
||||
|
||||
$('.btnCancelRecording', page).on('click', function () {
|
||||
|
||||
deleteTimer(page, currentItem.TimerId);
|
||||
});
|
||||
|
||||
$('.btnShare', page).on('click', function () {
|
||||
|
||||
require(['sharingmanager'], function () {
|
||||
|
|
|
@ -197,7 +197,6 @@
|
|||
tabs.alignBottom = true;
|
||||
tabs.classList.add('bottomTabs');
|
||||
}
|
||||
tabs.noink = true;
|
||||
|
||||
if (LibraryBrowser.enableFullPaperTabs()) {
|
||||
|
||||
|
@ -207,8 +206,8 @@
|
|||
|
||||
// Not very iOS-like I suppose
|
||||
tabs.noSlide = true;
|
||||
tabs.noink = true;
|
||||
tabs.noBar = true;
|
||||
tabs.noink = true;
|
||||
}
|
||||
else {
|
||||
LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages);
|
||||
|
@ -219,7 +218,6 @@
|
|||
} else {
|
||||
|
||||
tabs.noSlide = true;
|
||||
tabs.noink = true;
|
||||
tabs.noBar = true;
|
||||
tabs.scrollable = true;
|
||||
|
||||
|
@ -801,7 +799,7 @@
|
|||
return "channelitems.html?id=" + item.ChannelId + '&folderId=' + item.Id;
|
||||
}
|
||||
if (item.Type == "Program") {
|
||||
return "livetvprogram.html?id=" + id;
|
||||
return "itemdetails.html?id=" + id;
|
||||
}
|
||||
if (item.Type == "Series") {
|
||||
return "itemdetails.html?id=" + id + contextSuffix;
|
||||
|
@ -2302,6 +2300,8 @@
|
|||
|
||||
} else if (item.Album) {
|
||||
html.push(item.Album);
|
||||
} else if (item.Type == 'Program' && item.EpisodeTitle) {
|
||||
html.push(item.Name);
|
||||
}
|
||||
|
||||
if (html.length) {
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
html += '<paper-icon-button icon="person" class="headerButton headerButtonRight headerUserButton" onclick="return Dashboard.showUserFlyout(this);"></paper-icon-button>';
|
||||
}
|
||||
|
||||
if (!$.browser.mobile && !AppInfo.isNativeApp) {
|
||||
if (!$.browser.mobile && !Dashboard.isConnectMode()) {
|
||||
html += '<paper-icon-button icon="settings" class="headerButton headerButtonRight dashboardEntryHeaderButton hide" onclick="return LibraryMenu.onSettingsClicked(event);"></paper-icon-button>';
|
||||
}
|
||||
|
||||
|
@ -469,7 +469,7 @@
|
|||
}
|
||||
|
||||
function showUserAtTop() {
|
||||
return AppInfo.isNativeApp;
|
||||
return Dashboard.isConnectMode();
|
||||
}
|
||||
|
||||
var requiresLibraryMenuRefresh = false;
|
||||
|
@ -797,7 +797,7 @@
|
|||
document.body.classList.add('hideMainDrawer');
|
||||
}
|
||||
|
||||
if (!AppInfo.isNativeApp) {
|
||||
if (!Dashboard.isConnectMode()) {
|
||||
darkDrawer = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
currentIndexValue = startDateText;
|
||||
}
|
||||
|
||||
html += '<a href="livetvprogram.html?id=' + program.Id + '" class="tvProgram">';
|
||||
html += '<a href="itemdetails.html?id=' + program.Id + '" class="tvProgram">';
|
||||
|
||||
var cssClass = "tvProgramTimeSlot";
|
||||
|
||||
|
|
|
@ -214,7 +214,7 @@
|
|||
cssClass += " plainProgramInfo";
|
||||
}
|
||||
|
||||
html += '<a href="livetvprogram.html?id=' + program.Id + '" class="' + cssClass + '" data-programid="' + program.Id + '">';
|
||||
html += '<a href="itemdetails.html?id=' + program.Id + '" class="' + cssClass + '" data-programid="' + program.Id + '">';
|
||||
|
||||
html += '<div class="guideProgramName">';
|
||||
html += program.Name;
|
||||
|
|
|
@ -163,7 +163,7 @@
|
|||
|
||||
var programId = getParameterByName('programid');
|
||||
|
||||
Dashboard.navigate('livetvprogram.html?id=' + programId);
|
||||
Dashboard.navigate('itemdetails.html?id=' + programId);
|
||||
|
||||
});
|
||||
|
||||
|
|
|
@ -1,135 +0,0 @@
|
|||
(function ($, document) {
|
||||
|
||||
var currentItem;
|
||||
|
||||
function deleteTimer(page, id) {
|
||||
|
||||
Dashboard.confirm(Globalize.translate('MessageConfirmRecordingCancellation'), Globalize.translate('HeaderConfirmRecordingCancellation'), function (result) {
|
||||
|
||||
if (result) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.cancelLiveTvTimer(id).done(function () {
|
||||
|
||||
Dashboard.alert(Globalize.translate('MessageRecordingCancelled'));
|
||||
|
||||
reload(page);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.getLiveTvProgram(getParameterByName('id'), Dashboard.getCurrentUserId()).done(function (item) {
|
||||
|
||||
var context = 'livetv';
|
||||
currentItem = item;
|
||||
|
||||
var name = item.Name;
|
||||
|
||||
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item));
|
||||
|
||||
Dashboard.setPageTitle(name);
|
||||
|
||||
$('.itemName', page).html(name);
|
||||
|
||||
$('.itemEpisodeName', page).html(item.EpisodeTitle || '');
|
||||
|
||||
$('.itemCommunityRating', page).html(LibraryBrowser.getRatingHtml(item));
|
||||
|
||||
$('.userDataIcons', page).html(LibraryBrowser.getUserDataIconsHtml(item));
|
||||
|
||||
LibraryBrowser.renderGenres($('.itemGenres', page), item, context);
|
||||
LibraryBrowser.renderOverview(page.querySelectorAll('.itemOverview'), item);
|
||||
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
|
||||
|
||||
LiveTvHelpers.renderMiscProgramInfo($('.miscTvProgramInfo', page), item);
|
||||
|
||||
Events.trigger(page, 'displayingitem', [{
|
||||
|
||||
item: item,
|
||||
context: 'livetv'
|
||||
}]);
|
||||
|
||||
if (item.TimerId) {
|
||||
$('#cancelRecordingButtonContainer', page).show();
|
||||
} else {
|
||||
$('#cancelRecordingButtonContainer', page).hide();
|
||||
}
|
||||
|
||||
if (!item.TimerId && !item.SeriesTimerId) {
|
||||
$('#recordButtonContainer', page).show();
|
||||
} else {
|
||||
$('#recordButtonContainer', page).hide();
|
||||
}
|
||||
|
||||
var startDateLocal = parseISO8601Date(item.StartDate, { toLocal: true });
|
||||
var endDateLocal = parseISO8601Date(item.EndDate, { toLocal: true });
|
||||
var now = new Date();
|
||||
|
||||
if (now >= startDateLocal && now < endDateLocal) {
|
||||
$('#playButtonContainer', page).show();
|
||||
} else {
|
||||
$('#playButtonContainer', page).hide();
|
||||
}
|
||||
|
||||
Dashboard.getCurrentUser().done(function (user) {
|
||||
|
||||
if (user.Policy.IsAdministrator && item.LocationType !== "Offline") {
|
||||
$('#editButtonContainer', page).show();
|
||||
} else {
|
||||
$('#editButtonContainer', page).hide();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
LiveTvHelpers.renderOriginalAirDate($('.airDate', page), item);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('pageinitdepends', "#liveTvProgramPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.btnRecord', page).on('click', function() {
|
||||
|
||||
var id = getParameterByName('id');
|
||||
|
||||
Dashboard.navigate('livetvnewrecording.html?programid=' + id);
|
||||
|
||||
});
|
||||
|
||||
$('.btnPlay', page).on('click', function () {
|
||||
|
||||
ApiClient.getLiveTvChannel(currentItem.ChannelId, Dashboard.getCurrentUserId()).done(function (channel) {
|
||||
|
||||
var userdata = channel.UserData || {};
|
||||
|
||||
LibraryBrowser.showPlayMenu(null, channel.Id, channel.Type, false, channel.MediaType, userdata.PlaybackPositionTicks);
|
||||
});
|
||||
});
|
||||
|
||||
$('.btnCancelRecording', page).on('click', function () {
|
||||
|
||||
deleteTimer(page, currentItem.TimerId);
|
||||
});
|
||||
|
||||
}).on('pagebeforeshowready', "#liveTvProgramPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
|
||||
}).on('pagebeforehide', "#liveTvProgramPage", function () {
|
||||
|
||||
currentItem = null;
|
||||
});
|
||||
|
||||
})(jQuery, document);
|
|
@ -387,7 +387,7 @@
|
|||
var menuItems = [];
|
||||
|
||||
menuItems.push({
|
||||
name: 'Schedules Direct (USA / Canada)',
|
||||
name: 'Schedules Direct',
|
||||
id: 'SchedulesDirect'
|
||||
});
|
||||
|
||||
|
|
|
@ -63,9 +63,9 @@
|
|||
$('.manualLoginForm', page).show();
|
||||
|
||||
if (focusPassword) {
|
||||
$('#txtManualPassword', page).focus();
|
||||
$('#txtManualPassword input', page).focus();
|
||||
} else {
|
||||
$('#txtManualName', page).focus();
|
||||
$('#txtManualName input', page).focus();
|
||||
}
|
||||
|
||||
if (showCancel) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue