mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update recording dialogs
This commit is contained in:
parent
315868b6d6
commit
66b4ed053b
20 changed files with 165 additions and 191 deletions
|
@ -148,7 +148,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
|
||||||
|
|
||||||
if (options.shape == 'auto' || options.shape == 'autohome' || options.shape == 'autooverflow' || options.shape == 'autoVertical') {
|
if (options.shape == 'auto' || options.shape == 'autohome' || options.shape == 'autooverflow' || options.shape == 'autoVertical') {
|
||||||
|
|
||||||
if (options.preferThumb || isThumbAspectRatio) {
|
if (options.preferThumb === true || isThumbAspectRatio) {
|
||||||
options.shape = options.shape == 'autooverflow' ? 'overflowBackdrop' : 'backdrop';
|
options.shape = options.shape == 'autooverflow' ? 'overflowBackdrop' : 'backdrop';
|
||||||
} else if (isSquareAspectRatio) {
|
} else if (isSquareAspectRatio) {
|
||||||
options.coverImage = true;
|
options.coverImage = true;
|
||||||
|
@ -163,6 +163,10 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.preferThumb == 'auto') {
|
||||||
|
options.preferThumb = options.shape == 'backdrop' || options.shape == 'overflowBackdrop';
|
||||||
|
}
|
||||||
|
|
||||||
options.uiAspect = getDesiredAspect(options.shape);
|
options.uiAspect = getDesiredAspect(options.shape);
|
||||||
options.primaryImageAspectRatio = primaryImageAspectRatio;
|
options.primaryImageAspectRatio = primaryImageAspectRatio;
|
||||||
|
|
||||||
|
@ -454,34 +458,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
|
||||||
var imgUrl = null;
|
var imgUrl = null;
|
||||||
var coverImage = false;
|
var coverImage = false;
|
||||||
|
|
||||||
if (options.autoThumb && item.ImageTags && item.ImageTags.Primary && item.PrimaryImageAspectRatio && item.PrimaryImageAspectRatio >= 1.34) {
|
if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
|
||||||
|
|
||||||
height = primaryImageAspectRatio ? Math.round(width / primaryImageAspectRatio) : null;
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
|
||||||
type: "Primary",
|
|
||||||
maxHeight: height,
|
|
||||||
maxWidth: width,
|
|
||||||
tag: item.ImageTags.Primary
|
|
||||||
});
|
|
||||||
|
|
||||||
if (primaryImageAspectRatio) {
|
|
||||||
if (uiAspect) {
|
|
||||||
if (Math.abs(primaryImageAspectRatio - uiAspect) <= .2) {
|
|
||||||
coverImage = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (options.autoThumb && item.ImageTags && item.ImageTags.Thumb) {
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: width,
|
|
||||||
tag: item.ImageTags.Thumb
|
|
||||||
});
|
|
||||||
|
|
||||||
} else if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
|
|
||||||
|
|
||||||
imgUrl = apiClient.getScaledImageUrl(item.Id, {
|
imgUrl = apiClient.getScaledImageUrl(item.Id, {
|
||||||
type: "Thumb",
|
type: "Thumb",
|
||||||
|
|
|
@ -92,5 +92,5 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialogBackdropOpened {
|
.dialogBackdropOpened {
|
||||||
opacity: .7;
|
opacity: .8;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialogContentInner {
|
.dialogContentInner {
|
||||||
padding: .5em 1.5em 20em 1.5em;
|
padding: .5em 1em 20em 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialogContentInner-mini {
|
.dialogContentInner-mini {
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 1.5em;
|
padding: 1.25em;
|
||||||
/* Without this emby-checkbox is able to appear on top */
|
/* Without this emby-checkbox is able to appear on top */
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -70,6 +70,11 @@
|
||||||
.formDialogFooterItem {
|
.formDialogFooterItem {
|
||||||
max-width: 80%;
|
max-width: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dialogContentInner {
|
||||||
|
padding-left: 1.5em;
|
||||||
|
padding-right: 1.5em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-width: 1280px) {
|
@media all and (min-width: 1280px) {
|
||||||
|
|
|
@ -367,7 +367,7 @@
|
||||||
if (program.SeriesTimerId) {
|
if (program.SeriesTimerId) {
|
||||||
timerAttributes += ' data-seriestimerid="' + program.SeriesTimerId + '"';
|
timerAttributes += ' data-seriestimerid="' + program.SeriesTimerId + '"';
|
||||||
}
|
}
|
||||||
html += '<button data-action="link"' + timerAttributes + ' data-isfolder="' + program.IsFolder + '" data-id="' + program.Id + '" data-serverid="' + program.ServerId + '" data-type="' + program.Type + '" class="' + cssClass + '" style="left:' + startPercent + '%;width:' + endPercent + '%;">';
|
html += '<button data-action="programdialog"' + timerAttributes + ' data-isfolder="' + program.IsFolder + '" data-id="' + program.Id + '" data-serverid="' + program.ServerId + '" data-type="' + program.Type + '" class="' + cssClass + '" style="left:' + startPercent + '%;width:' + endPercent + '%;">';
|
||||||
|
|
||||||
var guideProgramNameClass = "guideProgramName";
|
var guideProgramNameClass = "guideProgramName";
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
var isPortrait = className.indexOf('portrait') != -1;
|
var isPortrait = className.indexOf('portrait') != -1;
|
||||||
|
|
||||||
var parentName = isSmallItem || isMiniItem || isPortrait ? null : item.SeriesName;
|
var parentName = isSmallItem || isMiniItem || isPortrait ? null : item.SeriesName;
|
||||||
var name = itemHelper.getDisplayName(item);
|
var name = item.EpisodeTitle ? item.Name : itemHelper.getDisplayName(item);
|
||||||
|
|
||||||
html += '<div>';
|
html += '<div>';
|
||||||
var logoHeight = 26;
|
var logoHeight = 26;
|
||||||
|
|
|
@ -6,15 +6,6 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
|
||||||
var miscInfo = [];
|
var miscInfo = [];
|
||||||
var text, date;
|
var text, date;
|
||||||
|
|
||||||
if (item.ChannelName) {
|
|
||||||
|
|
||||||
if (options.interactive && item.ChannelId) {
|
|
||||||
miscInfo.push('<a class="lnkChannel" data-id="' + item.ChannelId + '" data-serverid="' + item.ServerId + '" href="#">' + item.ChannelName + '</a>');
|
|
||||||
} else {
|
|
||||||
miscInfo.push(item.ChannelName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.StartDate) {
|
if (item.StartDate) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -22,7 +13,7 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
|
||||||
|
|
||||||
text = datetime.toLocaleDateString(date);
|
text = datetime.toLocaleDateString(date);
|
||||||
|
|
||||||
text += ', ' + datetime.getDisplayTime(date);
|
text += ' ' + datetime.getDisplayTime(date);
|
||||||
|
|
||||||
if (item.EndDate) {
|
if (item.EndDate) {
|
||||||
date = datetime.parseISO8601Date(item.EndDate);
|
date = datetime.parseISO8601Date(item.EndDate);
|
||||||
|
@ -40,6 +31,15 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
|
||||||
miscInfo.push('CH ' + item.ChannelNumber);
|
miscInfo.push('CH ' + item.ChannelNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.ChannelName) {
|
||||||
|
|
||||||
|
if (options.interactive && item.ChannelId) {
|
||||||
|
miscInfo.push('<a class="lnkChannel" data-id="' + item.ChannelId + '" data-serverid="' + item.ServerId + '" href="#">' + item.ChannelName + '</a>');
|
||||||
|
} else {
|
||||||
|
miscInfo.push(item.ChannelName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (item.SeriesTimerId) {
|
if (item.SeriesTimerId) {
|
||||||
miscInfo.push({
|
miscInfo.push({
|
||||||
html: '<i class="md-icon mediaInfoItem mediaInfoTimerIcon mediaInfoIconItem"></i>'
|
html: '<i class="md-icon mediaInfoItem mediaInfoTimerIcon mediaInfoIconItem"></i>'
|
||||||
|
|
BIN
dashboard-ui/bower_components/emby-webcomponents/recordingcreator/empty.png
vendored
Normal file
BIN
dashboard-ui/bower_components/emby-webcomponents/recordingcreator/empty.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 156 B |
|
@ -9,17 +9,28 @@
|
||||||
.recordingDialog-imageContainer {
|
.recordingDialog-imageContainer {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
padding: 1em 1em 1em 0;
|
padding: 1em 1em 1em 0;
|
||||||
max-width: 30%;
|
max-width: 25%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.recordingDialog-img {
|
.recordingDialog-img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btnPlay-notplayable {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
.recordingDialog-itemName {
|
.recordingDialog-itemName {
|
||||||
margin-top: .5em;
|
margin-top: .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media all and (max-width: 800px) {
|
||||||
|
|
||||||
|
.programDialog-itemName {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media all and (max-height: 1400px) {
|
@media all and (max-height: 1400px) {
|
||||||
|
|
||||||
.layout-tv .recordingDialog .itemOverview {
|
.layout-tv .recordingDialog .itemOverview {
|
||||||
|
|
|
@ -1,46 +1,14 @@
|
||||||
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'shell', 'emby-checkbox', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, shell) {
|
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'datetime', 'imageLoader', 'shell', 'emby-checkbox', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, datetime, imageLoader, shell) {
|
||||||
|
|
||||||
var currentProgramId;
|
var currentProgramId;
|
||||||
var currentServerId;
|
var currentServerId;
|
||||||
var currentDialog;
|
var currentDialog;
|
||||||
var recordingCreated = false;
|
var recordingCreated = false;
|
||||||
|
var closeAction;
|
||||||
function getDaysOfWeek() {
|
|
||||||
|
|
||||||
return [
|
|
||||||
'Sunday',
|
|
||||||
'Monday',
|
|
||||||
'Tuesday',
|
|
||||||
'Wednesday',
|
|
||||||
'Thursday',
|
|
||||||
'Friday',
|
|
||||||
'Saturday'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDays(context) {
|
|
||||||
|
|
||||||
var daysOfWeek = getDaysOfWeek();
|
|
||||||
|
|
||||||
var days = [];
|
|
||||||
|
|
||||||
for (var i = 0, length = daysOfWeek.length; i < length; i++) {
|
|
||||||
|
|
||||||
var day = daysOfWeek[i];
|
|
||||||
|
|
||||||
if (context.querySelector('#chk' + day).checked) {
|
|
||||||
days.push(day);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return days;
|
|
||||||
}
|
|
||||||
|
|
||||||
function hideSeriesRecordingFields(context) {
|
function hideSeriesRecordingFields(context) {
|
||||||
|
|
||||||
slideUpToHide(context.querySelector('.seriesFields'));
|
slideUpToHide(context.querySelector('.seriesFields'));
|
||||||
slideUpToHide(context.querySelector('.seriesDays'));
|
|
||||||
context.querySelector('.btnSubmit').classList.remove('hide');
|
context.querySelector('.btnSubmit').classList.remove('hide');
|
||||||
context.querySelector('.supporterContainer').classList.add('hide');
|
context.querySelector('.supporterContainer').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
@ -68,15 +36,10 @@
|
||||||
|
|
||||||
apiClient.getNewLiveTvTimerDefaults({ programId: currentProgramId }).then(function (item) {
|
apiClient.getNewLiveTvTimerDefaults({ programId: currentProgramId }).then(function (item) {
|
||||||
|
|
||||||
item.PrePaddingSeconds = form.querySelector('#txtPrePaddingMinutes').value * 60;
|
|
||||||
item.PostPaddingSeconds = form.querySelector('#txtPostPaddingMinutes').value * 60;
|
|
||||||
|
|
||||||
item.RecordNewOnly = form.querySelector('#chkNewOnly').checked;
|
item.RecordNewOnly = form.querySelector('#chkNewOnly').checked;
|
||||||
item.RecordAnyChannel = form.querySelector('#chkAllChannels').checked;
|
item.RecordAnyChannel = form.querySelector('#chkAllChannels').checked;
|
||||||
item.RecordAnyTime = form.querySelector('#chkAnyTime').checked;
|
item.RecordAnyTime = form.querySelector('#chkAnyTime').checked;
|
||||||
|
|
||||||
item.Days = getDays(form);
|
|
||||||
|
|
||||||
if (form.querySelector('#chkRecordSeries').checked) {
|
if (form.querySelector('#chkRecordSeries').checked) {
|
||||||
|
|
||||||
apiClient.createLiveTvSeriesTimer(item).then(function () {
|
apiClient.createLiveTvSeriesTimer(item).then(function () {
|
||||||
|
@ -125,25 +88,26 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function showSeriesDays(context) {
|
function setPlayButtonVisible(context, visible) {
|
||||||
|
|
||||||
if (context.querySelector('#chkAnyTime').checked) {
|
var btnPlay = context.querySelector('.btnPlay');
|
||||||
slideUpToHide(context.querySelector('.seriesDays'));
|
|
||||||
|
if (!visible) {
|
||||||
|
btnPlay.classList.add('hide');
|
||||||
} else {
|
} else {
|
||||||
slideDownToShow(context.querySelector('.seriesDays'));
|
btnPlay.classList.remove('hide');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showSeriesRecordingFields(context, apiClient) {
|
function showSeriesRecordingFields(context, apiClient) {
|
||||||
|
|
||||||
slideDownToShow(context.querySelector('.seriesFields'));
|
slideDownToShow(context.querySelector('.seriesFields'));
|
||||||
showSeriesDays(context);
|
|
||||||
context.querySelector('.btnSubmit').classList.remove('hide');
|
|
||||||
|
|
||||||
getRegistration(apiClient, currentProgramId, 'seriesrecordings').then(function (regInfo) {
|
getRegistration(apiClient, currentProgramId, 'seriesrecordings').then(function (regInfo) {
|
||||||
|
|
||||||
if (regInfo.IsRegistered) {
|
if (regInfo.IsRegistered) {
|
||||||
context.querySelector('.btnSubmit').classList.remove('hide');
|
context.querySelector('.btnSubmit').classList.remove('hide');
|
||||||
|
setPlayButtonVisible(context, true);
|
||||||
context.querySelector('.supporterContainer').classList.add('hide');
|
context.querySelector('.supporterContainer').classList.add('hide');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -151,18 +115,18 @@
|
||||||
context.querySelector('.supporterContainerText').innerHTML = globalize.translate('sharedcomponents#MessageActiveSubscriptionRequiredSeriesRecordings');
|
context.querySelector('.supporterContainerText').innerHTML = globalize.translate('sharedcomponents#MessageActiveSubscriptionRequiredSeriesRecordings');
|
||||||
context.querySelector('.supporterContainer').classList.remove('hide');
|
context.querySelector('.supporterContainer').classList.remove('hide');
|
||||||
context.querySelector('.btnSubmit').classList.add('hide');
|
context.querySelector('.btnSubmit').classList.add('hide');
|
||||||
|
setPlayButtonVisible(context, false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function showSingleRecordingFields(context, apiClient) {
|
function showSingleRecordingFields(context, apiClient) {
|
||||||
|
|
||||||
context.querySelector('.btnSubmit').classList.remove('hide');
|
|
||||||
|
|
||||||
getRegistration(apiClient, currentProgramId, 'dvr').then(function (regInfo) {
|
getRegistration(apiClient, currentProgramId, 'dvr').then(function (regInfo) {
|
||||||
|
|
||||||
if (regInfo.IsRegistered) {
|
if (regInfo.IsRegistered) {
|
||||||
context.querySelector('.btnSubmit').classList.remove('hide');
|
context.querySelector('.btnSubmit').classList.remove('hide');
|
||||||
|
setPlayButtonVisible(context, true);
|
||||||
context.querySelector('.supporterContainer').classList.add('hide');
|
context.querySelector('.supporterContainer').classList.add('hide');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -170,6 +134,7 @@
|
||||||
context.querySelector('.supporterContainerText').innerHTML = globalize.translate('sharedcomponents#DvrSubscriptionRequired');
|
context.querySelector('.supporterContainerText').innerHTML = globalize.translate('sharedcomponents#DvrSubscriptionRequired');
|
||||||
context.querySelector('.supporterContainer').classList.remove('hide');
|
context.querySelector('.supporterContainer').classList.remove('hide');
|
||||||
context.querySelector('.btnSubmit').classList.add('hide');
|
context.querySelector('.btnSubmit').classList.add('hide');
|
||||||
|
setPlayButtonVisible(context, false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -231,14 +196,16 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
context.querySelector('.btnCancel').addEventListener('click', function () {
|
context.querySelector('.btnPlay').addEventListener('click', function () {
|
||||||
|
|
||||||
|
closeAction = 'play';
|
||||||
closeDialog(false);
|
closeDialog(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
context.querySelector('#chkAnyTime').addEventListener('change', function () {
|
context.querySelector('.btnCancel').addEventListener('click', function () {
|
||||||
|
|
||||||
showSeriesDays(context);
|
closeAction = null;
|
||||||
|
closeDialog(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
context.querySelector('form', context).addEventListener('submit', onSubmit);
|
context.querySelector('form', context).addEventListener('submit', onSubmit);
|
||||||
|
@ -256,24 +223,6 @@
|
||||||
|
|
||||||
context.querySelector('#chkConvertRecordings').checked = config.EnableRecordingEncoding;
|
context.querySelector('#chkConvertRecordings').checked = config.EnableRecordingEncoding;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
|
||||||
context.querySelector('.advanced').classList.add('hide');
|
|
||||||
} else {
|
|
||||||
context.querySelector('.advanced').classList.remove('hide');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function selectDays(page, days) {
|
|
||||||
|
|
||||||
var daysOfWeek = getDaysOfWeek();
|
|
||||||
|
|
||||||
for (var i = 0, length = daysOfWeek.length; i < length; i++) {
|
|
||||||
|
|
||||||
var day = daysOfWeek[i];
|
|
||||||
|
|
||||||
page.querySelector('#chk' + day).checked = days.indexOf(day) != -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getImageUrl(item, apiClient, imageHeight) {
|
function getImageUrl(item, apiClient, imageHeight) {
|
||||||
|
@ -310,16 +259,27 @@
|
||||||
var imageContainer = context.querySelector('.recordingDialog-imageContainer');
|
var imageContainer = context.querySelector('.recordingDialog-imageContainer');
|
||||||
|
|
||||||
if (imgUrl) {
|
if (imgUrl) {
|
||||||
imageContainer.innerHTML = '<img src="' + imgUrl + '" class="recordingDialog-img" />';
|
imageContainer.innerHTML = '<img src="' + require.toUrl('.').split('?')[0] + '/empty.png" data-src="' + imgUrl + '" class="recordingDialog-img lazy" />';
|
||||||
imageContainer.classList.remove('hide');
|
imageContainer.classList.remove('hide');
|
||||||
|
|
||||||
|
imageLoader.lazyChildren(imageContainer);
|
||||||
} else {
|
} else {
|
||||||
imageContainer.innerHTML = '';
|
imageContainer.innerHTML = '';
|
||||||
imageContainer.classList.add('hide');
|
imageContainer.classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
context.querySelector('.recordingDialog-itemName').innerHTML = program.Name;
|
context.querySelector('.recordingDialog-itemName').innerHTML = program.Name;
|
||||||
|
context.querySelector('.formDialogHeaderTitle').innerHTML = program.Name;
|
||||||
context.querySelector('.itemGenres').innerHTML = (program.Genres || []).join(' / ');
|
context.querySelector('.itemGenres').innerHTML = (program.Genres || []).join(' / ');
|
||||||
|
|
||||||
|
var btnPlay = context.querySelector('.btnPlay');
|
||||||
|
var now = new Date();
|
||||||
|
if (now >= datetime.parseISO8601Date(program.StartDate, true) && now < datetime.parseISO8601Date(program.EndDate, true)) {
|
||||||
|
btnPlay.classList.remove('btnPlay-notplayable');
|
||||||
|
} else {
|
||||||
|
btnPlay.classList.add('btnPlay-notplayable');
|
||||||
|
}
|
||||||
|
|
||||||
context.querySelector('.itemMiscInfoPrimary').innerHTML = mediaInfo.getPrimaryMediaInfoHtml(program);
|
context.querySelector('.itemMiscInfoPrimary').innerHTML = mediaInfo.getPrimaryMediaInfoHtml(program);
|
||||||
context.querySelector('.itemMiscInfoSecondary').innerHTML = mediaInfo.getSecondaryMediaInfoHtml(program);
|
context.querySelector('.itemMiscInfoSecondary').innerHTML = mediaInfo.getSecondaryMediaInfoHtml(program);
|
||||||
|
|
||||||
|
@ -327,17 +287,12 @@
|
||||||
context.querySelector('#chkAllChannels').checked = defaultTimer.RecordAnyChannel;
|
context.querySelector('#chkAllChannels').checked = defaultTimer.RecordAnyChannel;
|
||||||
context.querySelector('#chkAnyTime').checked = defaultTimer.RecordAnyTime;
|
context.querySelector('#chkAnyTime').checked = defaultTimer.RecordAnyTime;
|
||||||
|
|
||||||
context.querySelector('#txtPrePaddingMinutes').value = defaultTimer.PrePaddingSeconds / 60;
|
|
||||||
context.querySelector('#txtPostPaddingMinutes').value = defaultTimer.PostPaddingSeconds / 60;
|
|
||||||
|
|
||||||
if (program.IsSeries) {
|
if (program.IsSeries) {
|
||||||
context.querySelector('#eligibleForSeriesFields').classList.remove('hide');
|
context.querySelector('#eligibleForSeriesFields').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
context.querySelector('#eligibleForSeriesFields').classList.add('hide');
|
context.querySelector('#eligibleForSeriesFields').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
selectDays(context, defaultTimer.Days);
|
|
||||||
|
|
||||||
context.querySelector('.convertRecordingsContainer').classList.remove('hide');
|
context.querySelector('.convertRecordingsContainer').classList.remove('hide');
|
||||||
showConvertRecordingsUnlockMessage(context, apiClient);
|
showConvertRecordingsUnlockMessage(context, apiClient);
|
||||||
|
|
||||||
|
@ -386,6 +341,23 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function executeCloseAction(action, programId, serverId) {
|
||||||
|
|
||||||
|
if (action == 'play') {
|
||||||
|
|
||||||
|
require(['playbackManager'], function (playbackManager) {
|
||||||
|
|
||||||
|
var apiClient = connectionManager.getApiClient(serverId);
|
||||||
|
|
||||||
|
apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId()).then(function (item) {
|
||||||
|
|
||||||
|
playbackManager.play(item.ChannelId, serverId);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function showEditor(itemId, serverId) {
|
function showEditor(itemId, serverId) {
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
@ -423,6 +395,8 @@
|
||||||
|
|
||||||
dlg.addEventListener('close', function () {
|
dlg.addEventListener('close', function () {
|
||||||
|
|
||||||
|
executeCloseAction(closeAction, currentProgramId, currentServerId);
|
||||||
|
|
||||||
if (recordingCreated) {
|
if (recordingCreated) {
|
||||||
require(['toast'], function (toast) {
|
require(['toast'], function (toast) {
|
||||||
toast(globalize.translate('sharedcomponents#RecordingScheduled'));
|
toast(globalize.translate('sharedcomponents#RecordingScheduled'));
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
<div class="formDialogHeader">
|
<div class="formDialogHeader">
|
||||||
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon"></i></button>
|
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon"></i></button>
|
||||||
<h3 class="formDialogHeaderTitle">
|
<h3 class="formDialogHeaderTitle"></h3>
|
||||||
${HeaderNewRecording}
|
|
||||||
</h3>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="formDialogContent smoothScrollY">
|
<div class="formDialogContent smoothScrollY">
|
||||||
<form class="dialogContentInner dialog-content-centered">
|
<form class="dialogContentInner dialog-content-centered">
|
||||||
|
@ -12,7 +10,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div style="flex-grow:1;">
|
<div style="flex-grow:1;">
|
||||||
<h1 class="recordingDialog-itemName dialogContentTitle"></h1>
|
<h1 class="programDialog-itemName recordingDialog-itemName dialogContentTitle"></h1>
|
||||||
<p class="itemMiscInfoPrimary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
<p class="itemMiscInfoPrimary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
||||||
<p class="itemMiscInfoSecondary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
<p class="itemMiscInfoSecondary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
||||||
<p class="itemGenres"></p>
|
<p class="itemGenres"></p>
|
||||||
|
@ -21,7 +19,7 @@
|
||||||
|
|
||||||
<div id="eligibleForSeriesFields" class="hide">
|
<div id="eligibleForSeriesFields" class="hide">
|
||||||
<br />
|
<br />
|
||||||
<label class="checkboxContainer">
|
<label>
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkRecordSeries" />
|
<input type="checkbox" is="emby-checkbox" id="chkRecordSeries" />
|
||||||
<span>${RecordSeries}</span>
|
<span>${RecordSeries}</span>
|
||||||
</label>
|
</label>
|
||||||
|
@ -44,6 +42,7 @@
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<br />
|
||||||
<div class="convertRecordingsContainer hide checkboxContainer checkboxContainer-withDescription">
|
<div class="convertRecordingsContainer hide checkboxContainer checkboxContainer-withDescription">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkConvertRecordings" />
|
<input type="checkbox" is="emby-checkbox" id="chkConvertRecordings" />
|
||||||
|
@ -54,56 +53,6 @@
|
||||||
<a href="#" class="accent lnkPremiere">${FeatureRequiresEmbyPremiere}</a>
|
<a href="#" class="accent lnkPremiere">${FeatureRequiresEmbyPremiere}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="advanced hide">
|
|
||||||
<div is="emby-collapse" title="${Advanced}">
|
|
||||||
<div class="collapseContent">
|
|
||||||
<div class="seriesDays hide">
|
|
||||||
<div>
|
|
||||||
<h1>${Days}</h1>
|
|
||||||
</div>
|
|
||||||
<div class="checkboxList">
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkSunday" />
|
|
||||||
<span>${Sunday}</span>
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkMonday" />
|
|
||||||
<span>${Monday}</span>
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkTuesday" />
|
|
||||||
<span>${Tuesday}</span>
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkWednesday" />
|
|
||||||
<span>${Wednesday}</span>
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkThursday" />
|
|
||||||
<span>${Thursday}</span>
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkFriday" />
|
|
||||||
<span>${Friday}</span>
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkSaturday" />
|
|
||||||
<span>${Saturday}</span>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div class="inputContainer">
|
|
||||||
<input is="emby-input" type="number" id="txtPrePaddingMinutes" pattern="[0-9]*" required="required" min="0" step="1" label="${LabelPrePaddingMinutes}" />
|
|
||||||
</div>
|
|
||||||
<div class="inputContainer">
|
|
||||||
<input is="emby-input" type="number" id="txtPostPaddingMinutes" pattern="[0-9]*" required="required" min="0" step="1" label="${LabelPostPaddingMinutes}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<br />
|
<br />
|
||||||
<div class="formDialogFooter">
|
<div class="formDialogFooter">
|
||||||
<div class="supporterContainer hide formDialogFooterItem">
|
<div class="supporterContainer hide formDialogFooterItem">
|
||||||
|
@ -113,8 +62,10 @@
|
||||||
<span>${HeaderBecomeProjectSupporter}</span>
|
<span>${HeaderBecomeProjectSupporter}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit">
|
<button is="emby-button" type="button" class="raised btnPlay btnPlay-notplayable hide block formDialogFooterItem button-submit">
|
||||||
<i class="md-icon recordingDialogSubmitIcon">fiber_manual_record</i>
|
<span>${Play}</span>
|
||||||
|
</button>
|
||||||
|
<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit" style="background:#cc3333;">
|
||||||
<span>${Record}</span>
|
<span>${Record}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'scrollStyles', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper) {
|
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'imageLoader', 'scrollStyles', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, imageLoader) {
|
||||||
|
|
||||||
var currentDialog;
|
var currentDialog;
|
||||||
var recordingUpdated = false;
|
var recordingUpdated = false;
|
||||||
|
@ -66,8 +66,10 @@
|
||||||
var imageContainer = context.querySelector('.recordingDialog-imageContainer');
|
var imageContainer = context.querySelector('.recordingDialog-imageContainer');
|
||||||
|
|
||||||
if (imgUrl) {
|
if (imgUrl) {
|
||||||
imageContainer.innerHTML = '<img src="' + imgUrl + '" class="recordingDialog-img" />';
|
imageContainer.innerHTML = '<img src="' + require.toUrl('.').split('?')[0] + '/empty.png" data-src="' + imgUrl + '" class="recordingDialog-img lazy" />';
|
||||||
imageContainer.classList.remove('hide');
|
imageContainer.classList.remove('hide');
|
||||||
|
|
||||||
|
imageLoader.lazyChildren(imageContainer);
|
||||||
} else {
|
} else {
|
||||||
imageContainer.innerHTML = '';
|
imageContainer.innerHTML = '';
|
||||||
imageContainer.classList.add('hide');
|
imageContainer.classList.add('hide');
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
<h1 class="recordingDialog-itemName dialogContentTitle"></h1>
|
<h1 class="recordingDialog-itemName dialogContentTitle"></h1>
|
||||||
<p class="itemMiscInfoPrimary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
<p class="itemMiscInfoPrimary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
||||||
<p class="itemMiscInfoSecondary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
<p class="itemMiscInfoSecondary" style="display: flex; align-items: center; flex-wrap: wrap;"></p>
|
||||||
<p class="itemGenres"></p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p class="itemGenres"></p>
|
||||||
<p class="itemOverview"></p>
|
<p class="itemOverview"></p>
|
||||||
|
|
||||||
<p style="margin-top: 2em;" class="timerStatus hide">
|
<p style="margin-top: 2em;" class="timerStatus hide">
|
||||||
|
|
|
@ -91,6 +91,19 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
|
||||||
embyRouter.showItem(item, options);
|
embyRouter.showItem(item, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showProgramDialog(item) {
|
||||||
|
|
||||||
|
if (item.TimerId) {
|
||||||
|
showItem(item);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
require(['recordingCreator'], function (recordingCreator) {
|
||||||
|
|
||||||
|
recordingCreator.show(item.Id, item.ServerId);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function getItem(button) {
|
function getItem(button) {
|
||||||
|
|
||||||
button = dom.parentWithAttribute(button, 'data-id');
|
button = dom.parentWithAttribute(button, 'data-id');
|
||||||
|
@ -168,6 +181,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
|
||||||
return {
|
return {
|
||||||
Type: card.getAttribute('data-type'),
|
Type: card.getAttribute('data-type'),
|
||||||
Id: card.getAttribute('data-id'),
|
Id: card.getAttribute('data-id'),
|
||||||
|
TimerId: card.getAttribute('data-timerid'),
|
||||||
CollectionType: card.getAttribute('data-collectiontype'),
|
CollectionType: card.getAttribute('data-collectiontype'),
|
||||||
ChannelId: card.getAttribute('data-channelid'),
|
ChannelId: card.getAttribute('data-channelid'),
|
||||||
SeriesId: card.getAttribute('data-seriesid'),
|
SeriesId: card.getAttribute('data-seriesid'),
|
||||||
|
@ -217,6 +231,11 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (action == 'programdialog') {
|
||||||
|
|
||||||
|
showProgramDialog(item);
|
||||||
|
}
|
||||||
|
|
||||||
else if (action == 'instantmix') {
|
else if (action == 'instantmix') {
|
||||||
playbackManager.instantMix(id, serverId);
|
playbackManager.instantMix(id, serverId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,13 @@
|
||||||
type: 'MusicArtist'
|
type: 'MusicArtist'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (item.ProgramCount) {
|
||||||
|
|
||||||
|
sections.push({
|
||||||
|
name: Globalize.translate('HeaderUpcomingOnTV'),
|
||||||
|
type: 'Program'
|
||||||
|
});
|
||||||
|
}
|
||||||
if (item.MovieCount) {
|
if (item.MovieCount) {
|
||||||
|
|
||||||
sections.push({
|
sections.push({
|
||||||
|
@ -108,6 +114,24 @@
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
|
||||||
|
case 'Program':
|
||||||
|
loadItems(element, item, type, {
|
||||||
|
MediaTypes: "",
|
||||||
|
IncludeItemTypes: "Program",
|
||||||
|
PersonTypes: "",
|
||||||
|
ArtistIds: "",
|
||||||
|
Limit: 10
|
||||||
|
}, {
|
||||||
|
shape: "backdrop",
|
||||||
|
showTitle: true,
|
||||||
|
centerText: true,
|
||||||
|
overlayMoreButton: true,
|
||||||
|
preferThumb: true,
|
||||||
|
overlayText: false,
|
||||||
|
showProgramAirInfo: true
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
case 'Movie':
|
case 'Movie':
|
||||||
loadItems(element, item, type, {
|
loadItems(element, item, type, {
|
||||||
MediaTypes: "",
|
MediaTypes: "",
|
||||||
|
@ -119,7 +143,8 @@
|
||||||
shape: "portrait",
|
shape: "portrait",
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
centerText: true,
|
centerText: true,
|
||||||
overlayMoreButton: true
|
overlayMoreButton: true,
|
||||||
|
overlayText: false
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -565,7 +565,8 @@
|
||||||
var itemMiscInfo = page.querySelectorAll('.itemMiscInfo');
|
var itemMiscInfo = page.querySelectorAll('.itemMiscInfo');
|
||||||
for (i = 0, length = itemMiscInfo.length; i < length; i++) {
|
for (i = 0, length = itemMiscInfo.length; i < length; i++) {
|
||||||
mediaInfo.fillPrimaryMediaInfo(itemMiscInfo[i], item, {
|
mediaInfo.fillPrimaryMediaInfo(itemMiscInfo[i], item, {
|
||||||
interactive: true
|
interactive: true,
|
||||||
|
episodeTitle: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
var itemGenres = page.querySelectorAll('.itemGenres');
|
var itemGenres = page.querySelectorAll('.itemGenres');
|
||||||
|
|
|
@ -89,7 +89,8 @@
|
||||||
showChannelName: true,
|
showChannelName: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
cardLayout: true,
|
cardLayout: true,
|
||||||
action: 'edit'
|
action: 'edit',
|
||||||
|
cardFooterAside: 'none'
|
||||||
|
|
||||||
});
|
});
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
|
@ -84,7 +84,9 @@
|
||||||
coverImage: true,
|
coverImage: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
cardLayout: true,
|
cardLayout: true,
|
||||||
allowBottomPadding: !enableScrollX()
|
allowBottomPadding: !enableScrollX(),
|
||||||
|
preferThumb: 'auto'
|
||||||
|
|
||||||
}, cardOptions || {}));
|
}, cardOptions || {}));
|
||||||
|
|
||||||
ImageLoader.lazyChildren(recordingItems);
|
ImageLoader.lazyChildren(recordingItems);
|
||||||
|
@ -117,7 +119,8 @@
|
||||||
Limit: enableScrollX() ? 12 : 8,
|
Limit: enableScrollX() ? 12 : 8,
|
||||||
IsInProgress: false,
|
IsInProgress: false,
|
||||||
Fields: 'CanDelete,PrimaryImageAspectRatio,BasicSyncInfo',
|
Fields: 'CanDelete,PrimaryImageAspectRatio,BasicSyncInfo',
|
||||||
EnableTotalRecordCount: false
|
EnableTotalRecordCount: false,
|
||||||
|
EnableImageTypes: "Primary,Thumb"
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
IsAiring: true,
|
IsAiring: true,
|
||||||
limit: limit,
|
limit: limit,
|
||||||
ImageTypeLimit: 1,
|
ImageTypeLimit: 1,
|
||||||
EnableImageTypes: "Primary",
|
EnableImageTypes: "Primary,Thumb",
|
||||||
Fields: "ChannelInfo"
|
Fields: "ChannelInfo"
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
@ -53,7 +53,8 @@
|
||||||
IsKids: false,
|
IsKids: false,
|
||||||
IsSeries: true,
|
IsSeries: true,
|
||||||
EnableTotalRecordCount: false,
|
EnableTotalRecordCount: false,
|
||||||
Fields: "ChannelInfo"
|
Fields: "ChannelInfo",
|
||||||
|
EnableImageTypes: "Primary,Thumb"
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
|
@ -68,7 +69,8 @@
|
||||||
limit: getLimit(),
|
limit: getLimit(),
|
||||||
IsMovie: true,
|
IsMovie: true,
|
||||||
EnableTotalRecordCount: false,
|
EnableTotalRecordCount: false,
|
||||||
Fields: "ChannelInfo"
|
Fields: "ChannelInfo",
|
||||||
|
EnableImageTypes: "Primary,Thumb"
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
|
@ -83,7 +85,8 @@
|
||||||
limit: getLimit(),
|
limit: getLimit(),
|
||||||
IsSports: true,
|
IsSports: true,
|
||||||
EnableTotalRecordCount: false,
|
EnableTotalRecordCount: false,
|
||||||
Fields: "ChannelInfo"
|
Fields: "ChannelInfo",
|
||||||
|
EnableImageTypes: "Primary,Thumb"
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
|
@ -98,7 +101,8 @@
|
||||||
limit: getLimit(),
|
limit: getLimit(),
|
||||||
IsKids: true,
|
IsKids: true,
|
||||||
EnableTotalRecordCount: false,
|
EnableTotalRecordCount: false,
|
||||||
Fields: "ChannelInfo"
|
Fields: "ChannelInfo",
|
||||||
|
EnableImageTypes: "Primary,Thumb"
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
|
|
|
@ -457,8 +457,8 @@
|
||||||
centerText: true,
|
centerText: true,
|
||||||
overlayText: false,
|
overlayText: false,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
autoThumb: true,
|
|
||||||
transition: false,
|
transition: false,
|
||||||
|
preferThumb: true,
|
||||||
allowBottomPadding: !enableScrollX()
|
allowBottomPadding: !enableScrollX()
|
||||||
});
|
});
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
|
@ -2136,5 +2136,6 @@
|
||||||
"Sports": "Sports",
|
"Sports": "Sports",
|
||||||
"HeaderForKids": "For Kids",
|
"HeaderForKids": "For Kids",
|
||||||
"HeaderRecordingGroups": "Recording Groups",
|
"HeaderRecordingGroups": "Recording Groups",
|
||||||
"LabelConvertRecordingsTo": "Convert recordings to:"
|
"LabelConvertRecordingsTo": "Convert recordings to:",
|
||||||
|
"HeaderUpcomingOnTV": "Upcoming On TV"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue