mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
added a new encoding settings page under advanced
This commit is contained in:
parent
231ed3c315
commit
2704b52493
16 changed files with 267 additions and 136 deletions
11
ApiClient.js
11
ApiClient.js
|
@ -389,6 +389,17 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
|||
});
|
||||
};
|
||||
|
||||
self.getLiveTvGuideInfo = function (options) {
|
||||
|
||||
var url = self.getUrl("LiveTv/GuideInfo", options || {});
|
||||
|
||||
return self.ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "json"
|
||||
});
|
||||
};
|
||||
|
||||
self.getLiveTvChannel = function (id, userId) {
|
||||
|
||||
if (!id) {
|
||||
|
|
|
@ -4,14 +4,19 @@
|
|||
<title>Advanced</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="advancedConfigurationPage" data-role="page" class="page type-interior">
|
||||
<div id="advancedConfigurationPage" data-role="page" class="page type-interior advancedConfigurationPage">
|
||||
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="#" data-role="button" class="ui-btn-active">General</a>
|
||||
<a href="encodingsettings.html" data-role="button">Encoding</a>
|
||||
</div>
|
||||
<form id="advancedConfigurationForm">
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li id="fldRunAtStartup" style="display:none;">
|
||||
<li id="fldRunAtStartup" style="display: none;">
|
||||
<input type="checkbox" id="chkRunAtStartup" name="chkRunAtStartup" data-mini="true" />
|
||||
<label for="chkRunAtStartup">Run server at startup</label>
|
||||
<div id="windowsStartupDescription" class="fieldDescription warningFieldDescription" style="display: none;">
|
||||
|
|
|
@ -42,6 +42,9 @@
|
|||
margin-left: 80px;
|
||||
border-left: 1px solid #444;
|
||||
}
|
||||
.tvProgramCurrentTimeSlot {
|
||||
background-color: green;
|
||||
}
|
||||
|
||||
.tvProgramName {
|
||||
color: #fff;
|
||||
|
@ -171,11 +174,14 @@
|
|||
width: 189px;
|
||||
}
|
||||
|
||||
.channelTimeslotHeader {
|
||||
border-right: 1px solid #4971A7;
|
||||
}
|
||||
|
||||
.channelTimeslotHeader, .timeslotHeader {
|
||||
background: #1d1d1d;
|
||||
border-bottom: 1px solid #333;
|
||||
border-left: 1px solid #333;
|
||||
border-top: 1px solid #333;
|
||||
background: #4971A7;
|
||||
border-bottom: 1px solid #4971A7;
|
||||
border-left: 1px solid #4971A7;
|
||||
}
|
||||
|
||||
.timeslotHeader, .channelTimeslotHeader {
|
||||
|
@ -212,7 +218,7 @@
|
|||
}
|
||||
|
||||
.timeslotCell, .timeslotHeader {
|
||||
width: 180px;
|
||||
width: 190px;
|
||||
}
|
||||
|
||||
.timeslotCellInner {
|
||||
|
@ -228,7 +234,7 @@
|
|||
}
|
||||
|
||||
.timeslotCellInnerWithProgram {
|
||||
z-index: 9999;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
.timeslotCellInnerWithProgram:hover {
|
||||
|
@ -273,8 +279,8 @@
|
|||
max-width: 60px;
|
||||
max-height: 35px;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
right: 7px;
|
||||
top: 7px;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
|
|
57
dashboard-ui/encodingsettings.html
Normal file
57
dashboard-ui/encodingsettings.html
Normal file
|
@ -0,0 +1,57 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Advanced</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="encodingSettingsPage" data-role="page" class="page type-interior advancedConfigurationPage">
|
||||
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="advanced.html" data-role="button">General</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Encoding</a>
|
||||
</div>
|
||||
|
||||
<form class="encodingSettingsForm">
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>Transcoder Quality:</legend>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioAuto" value="Auto">
|
||||
<label for="radioAuto">Auto<br /><span style="font-weight:normal;">The transcoder will decide quality itself.</span></label>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioHighSpeed" value="HighSpeed">
|
||||
<label for="radioHighSpeed">Perfer higher speed encoding<br /><span style="font-weight:normal;">Lower quality, but faster transcodes</span></label>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioHighQuality" value="HighQuality">
|
||||
<label for="radioHighQuality">Prefer higher quality encoding<br /><span style="font-weight:normal;">Higher quality, but slower transcodes</span></label>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioMaxQuality" value="MaxQuality">
|
||||
<label for="radioMaxQuality">Perfer max quality encoding<br /><span style="font-weight:normal;">Best quality with slower transcodes and high CPU usage</span></label>
|
||||
</fieldset>
|
||||
|
||||
<br />
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<input type="checkbox" id="chkEnableDebugEncodingLogging" name="chkEnableDebugEncodingLogging" data-mini="true" />
|
||||
<label for="chkEnableDebugEncodingLogging">Enable debug encoding logging</label>
|
||||
<div class="fieldDescription">This will create very large log files and is only recommended as needed for troubleshooting purposes.</div>
|
||||
</li>
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||
Save
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
|
||||
Cancel
|
||||
</button>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('.encodingSettingsForm').off('submit', EncodingSettingsPage.onSubmit).on('submit', EncodingSettingsPage.onSubmit);
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -23,7 +23,6 @@
|
|||
<p style="margin: 1.5em 0;">
|
||||
<span class="userDataIcons"></span>
|
||||
</p>
|
||||
<p class="currentProgram"></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<div>
|
||||
<div>
|
||||
<select id="selectDate" data-mini="true" data-icon="calendar">
|
||||
<select id="selectDate" data-mini="true" data-icon="calendar" data-inline="true">
|
||||
<option>Today</option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
50
dashboard-ui/scripts/encodingsettings.js
Normal file
50
dashboard-ui/scripts/encodingsettings.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
(function ($, document, window) {
|
||||
|
||||
function loadPage(page, config) {
|
||||
|
||||
$('#chkEnableDebugEncodingLogging', page).checked(config.EnableDebugEncodingLogging).checkboxradio('refresh');
|
||||
|
||||
$('.radioEncodingQuality', page).each(function() {
|
||||
|
||||
this.checked = config.MediaEncodingQuality == this.value;
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
}
|
||||
|
||||
$(document).on('pageshow', "#encodingSettingsPage", function () {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
var page = this;
|
||||
|
||||
ApiClient.getServerConfiguration().done(function(config) {
|
||||
|
||||
loadPage(page, config);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
window.EncodingSettingsPage = {
|
||||
|
||||
onSubmit: function () {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
var form = this;
|
||||
|
||||
ApiClient.getServerConfiguration().done(function (config) {
|
||||
|
||||
config.EnableDebugEncodingLogging = $('#chkEnableDebugEncodingLogging', form).checked();
|
||||
config.MediaEncodingQuality = $('.radioEncodingQuality:checked', form).val();
|
||||
|
||||
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||
});
|
||||
|
||||
// Disable default form submission
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery, document, window);
|
|
@ -853,7 +853,7 @@
|
|||
background = defaultBackground;
|
||||
|
||||
}
|
||||
else if (item.Type == "Recording" || item.Type == "Program") {
|
||||
else if (item.Type == "Recording" || item.Type == "Program" || item.Type == "Channel") {
|
||||
|
||||
if (item.Name && options.showTitle) {
|
||||
imgUrl = 'css/images/items/list/collection.png';
|
||||
|
@ -1098,6 +1098,9 @@
|
|||
|
||||
var name = item.EpisodeTitle || item.Name;
|
||||
|
||||
if (item.Type == "Channel") {
|
||||
return item.Number + ' ' + name;
|
||||
}
|
||||
if (displayAsSpecial && item.Type == "Episode" && item.ParentIndexNumber == 0) {
|
||||
|
||||
name = "Special - " + name;
|
||||
|
@ -1155,6 +1158,9 @@
|
|||
|
||||
getPlayedIndicatorHtml: function (item) {
|
||||
|
||||
if (item.Type == "Channel") {
|
||||
return '';
|
||||
}
|
||||
if (item.Type == "Series" || item.Type == "Season" || item.Type == "BoxSet" || item.MediaType == "Video") {
|
||||
if (item.RecursiveUnplayedItemCount) {
|
||||
return '<div class="unplayedIndicator">' + item.RecursiveUnplayedItemCount + '</div>';
|
||||
|
|
|
@ -9,21 +9,16 @@
|
|||
|
||||
var currentIndexValue;
|
||||
|
||||
var now = new Date();
|
||||
|
||||
for (var i = 0, length = result.Items.length; i < length; i++) {
|
||||
|
||||
var program = result.Items[i];
|
||||
|
||||
var startDate = program.StartDate;
|
||||
var startDateText = '';
|
||||
var startDate = parseISO8601Date(program.StartDate, { toLocal: true });
|
||||
var startDateText = LibraryBrowser.getFutureDateText(startDate);
|
||||
|
||||
try {
|
||||
|
||||
startDate = parseISO8601Date(startDate, { toLocal: true });
|
||||
startDateText = LibraryBrowser.getFutureDateText(startDate);
|
||||
|
||||
} catch (err) {
|
||||
|
||||
}
|
||||
var endDate = parseISO8601Date(program.EndDate, { toLocal: true });
|
||||
|
||||
if (startDateText != currentIndexValue) {
|
||||
|
||||
|
@ -33,11 +28,17 @@
|
|||
|
||||
html += '<a href="livetvprogram.html?id=' + program.Id + '" class="tvProgram">';
|
||||
|
||||
html += '<div class="tvProgramTimeSlot">';
|
||||
var cssClass = "tvProgramTimeSlot";
|
||||
|
||||
if (now >= startDate && now < endDate) {
|
||||
cssClass += " tvProgramCurrentTimeSlot";
|
||||
}
|
||||
|
||||
html += '<div class="' + cssClass + '">';
|
||||
html += '<div class="tvProgramTimeSlotInner">' + LiveTvHelpers.getDisplayTime(startDate) + '</div>';
|
||||
html += '</div>';
|
||||
|
||||
var cssClass = "tvProgramInfo";
|
||||
cssClass = "tvProgramInfo";
|
||||
|
||||
if (program.IsKids) {
|
||||
cssClass += " childProgramInfo";
|
||||
|
@ -54,7 +55,12 @@
|
|||
|
||||
html += '<div class="' + cssClass + '">';
|
||||
|
||||
html += '<div class="tvProgramName">' + program.Name + '</div>';
|
||||
var name = program.Name;
|
||||
|
||||
if (program.IsRepeat) {
|
||||
name += " (R)";
|
||||
}
|
||||
html += '<div class="tvProgramName">' + name + '</div>';
|
||||
|
||||
html += '<div class="tvProgramTime">';
|
||||
|
||||
|
@ -157,12 +163,6 @@
|
|||
|
||||
});
|
||||
|
||||
if (item.CurrentProgram) {
|
||||
$('.currentProgram', page).html('Now playing: <a href="livetvprogram.html?id=' + item.CurrentProgram.Id + '">' + item.CurrentProgram.Name + '</a>').trigger('create');
|
||||
} else {
|
||||
$('.currentProgram', page).html('');
|
||||
}
|
||||
|
||||
loadPrograms(page);
|
||||
|
||||
});
|
||||
|
|
|
@ -1,59 +1,13 @@
|
|||
(function ($, document, apiClient) {
|
||||
|
||||
function getChannelHtml(channel) {
|
||||
|
||||
var html = '';
|
||||
|
||||
html += '<a class="backdropTileItem tileItem" href="livetvchannel.html?id=' + channel.Id + '">';
|
||||
|
||||
var imgUrl;
|
||||
var isDefault;
|
||||
|
||||
if (channel.ImageTags.Primary) {
|
||||
|
||||
|
||||
imgUrl = apiClient.getUrl("LiveTV/Channels/" + channel.Id + "/Images/Primary", {
|
||||
|
||||
tag: channel.ImageTags.Primary,
|
||||
height: 300
|
||||
|
||||
});
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
imgUrl = "css/images/items/list/collection.png";
|
||||
isDefault = true;
|
||||
}
|
||||
|
||||
var cssClass = isDefault ? "tileImage defaultTileImage" : "tileImage";
|
||||
|
||||
html += '<div class="' + cssClass + '" style="background-image: url(\'' + imgUrl + '\');"></div>';
|
||||
|
||||
|
||||
html += '<div class="tileContent">';
|
||||
|
||||
html += '<div class="tileName">' + channel.Number + ' ' + channel.Name + '</div>';
|
||||
|
||||
html += '<p class="userDataIcons">' + LibraryBrowser.getUserDataIconsHtml(channel) + '</p>';
|
||||
|
||||
html += '</div>';
|
||||
|
||||
html += "</a>";
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function getChannelsHtml(channels) {
|
||||
|
||||
var html = [];
|
||||
|
||||
for (var i = 0, length = channels.length; i < length; i++) {
|
||||
|
||||
html.push(getChannelHtml(channels[i]));
|
||||
}
|
||||
|
||||
return html.join('');
|
||||
return LibraryBrowser.getPosterViewHtml({
|
||||
items: channels,
|
||||
useAverageAspectRatio: true,
|
||||
shape: "backdrop",
|
||||
centerText: true
|
||||
});
|
||||
}
|
||||
|
||||
function renderChannels(page, channels) {
|
||||
|
|
|
@ -7,19 +7,10 @@
|
|||
var gridLocalStartDateMs;
|
||||
var gridLocalEndDateMs;
|
||||
|
||||
function formatDigit(i) {
|
||||
return i < 10 ? "0" + i : i;
|
||||
}
|
||||
var currentDate;
|
||||
var channelsPromise;
|
||||
|
||||
function getDateFormat(date) {
|
||||
|
||||
// yyyyMMddHHmmss
|
||||
// Convert to UTC
|
||||
// http://stackoverflow.com/questions/948532/how-do-you-convert-a-javascript-date-to-utc/14610512#14610512
|
||||
var d = new Date(date.getTime());
|
||||
|
||||
return "" + d.getFullYear() + formatDigit(d.getMonth() + 1) + formatDigit(d.getDate()) + formatDigit(d.getHours()) + formatDigit(d.getMinutes()) + formatDigit(d.getSeconds());
|
||||
}
|
||||
var guideInfoPromise;
|
||||
|
||||
function normalizeDateToTimeslot(date) {
|
||||
|
||||
|
@ -37,11 +28,10 @@
|
|||
return date;
|
||||
}
|
||||
|
||||
var currentDate;
|
||||
var channelsPromise;
|
||||
|
||||
function reloadGuide(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
channelsPromise = channelsPromise || apiClient.getLiveTvChannels({
|
||||
|
||||
userId: Dashboard.getCurrentUserId()
|
||||
|
@ -51,14 +41,15 @@
|
|||
var date = currentDate;
|
||||
|
||||
var nextDay = new Date(date.getTime());
|
||||
nextDay.setDate(nextDay.getDate() + 2);
|
||||
nextDay.setHours(1, 0, 0, 0);
|
||||
nextDay.setHours(0, 0, 0, 0);
|
||||
nextDay.setDate(nextDay.getDate() + 1);
|
||||
|
||||
var promise1 = channelsPromise;
|
||||
var promise2 = apiClient.getLiveTvPrograms({
|
||||
|
||||
UserId: Dashboard.getCurrentUserId(),
|
||||
MaxStartDate: getDateFormat(nextDay)
|
||||
MaxStartDate: nextDay.toISOString(),
|
||||
MinEndDate: date.toISOString()
|
||||
|
||||
});
|
||||
|
||||
|
@ -68,6 +59,8 @@
|
|||
var programs = response2[0].Items;
|
||||
|
||||
renderGuide(page, date, channels, programs);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -231,6 +224,10 @@
|
|||
|
||||
html += '<div class="guideProgramName">';
|
||||
html += program.Name;
|
||||
|
||||
if (program.IsRepeat) {
|
||||
html += ' (R)';
|
||||
}
|
||||
html += '</div>';
|
||||
|
||||
html += '<div class="guideProgramTime">';
|
||||
|
@ -339,20 +336,9 @@
|
|||
$('.timeslotHeaders', page).scrollLeft(grid.scrollLeft());
|
||||
}
|
||||
|
||||
$(document).on('pageinit', "#liveTvGuidePage", function () {
|
||||
function changeDate(page, date) {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.programGrid', page).on('scroll', function () {
|
||||
|
||||
onProgramGridScroll(page, this);
|
||||
});
|
||||
|
||||
}).on('pagebeforeshow', "#liveTvGuidePage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
currentDate = normalizeDateToTimeslot(new Date());
|
||||
currentDate = normalizeDateToTimeslot(date);
|
||||
|
||||
gridLocalStartDateMs = currentDate.getTime();
|
||||
|
||||
|
@ -362,6 +348,71 @@
|
|||
gridLocalEndDateMs = clone.getTime() - 1;
|
||||
|
||||
reloadGuide(page);
|
||||
}
|
||||
|
||||
function setDateRange(page, guideInfo) {
|
||||
|
||||
var today = new Date();
|
||||
today.setHours(today.getHours(), 0, 0, 0);
|
||||
|
||||
var start = parseISO8601Date(guideInfo.StartDate, { toLocal: true });
|
||||
var end = parseISO8601Date(guideInfo.EndDate, { toLocal: true });
|
||||
|
||||
start.setHours(0, 0, 0, 0);
|
||||
end.setHours(0, 0, 0, 0);
|
||||
|
||||
start = new Date(Math.max(today, start));
|
||||
|
||||
var html = '';
|
||||
|
||||
while (start <= end) {
|
||||
|
||||
|
||||
html += '<option value="' + start.getTime() + '">' + LibraryBrowser.getFutureDateText(start) + '</option>';
|
||||
|
||||
start.setDate(start.getDate() + 1);
|
||||
start.setHours(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
var elem = $('#selectDate', page).html(html).selectmenu('refresh');
|
||||
|
||||
if (currentDate) {
|
||||
elem.val(currentDate.getTime()).selectmenu('refresh');
|
||||
}
|
||||
|
||||
var val = elem.val();
|
||||
var date = new Date();
|
||||
date.setTime(parseInt(val));
|
||||
|
||||
changeDate(page, date);
|
||||
}
|
||||
|
||||
$(document).on('pageinit', "#liveTvGuidePage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.programGrid', page).on('scroll', function () {
|
||||
|
||||
onProgramGridScroll(page, this);
|
||||
});
|
||||
|
||||
$('#selectDate', page).on('change', function() {
|
||||
|
||||
var date = new Date();
|
||||
date.setTime(parseInt(this.value));
|
||||
|
||||
changeDate(page, date);
|
||||
|
||||
});
|
||||
|
||||
}).on('pagebeforeshow', "#liveTvGuidePage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
apiClient.getLiveTvGuideInfo().done(function (guideInfo) {
|
||||
|
||||
setDateRange(page, guideInfo);
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery, document, ApiClient);
|
|
@ -13,6 +13,10 @@
|
|||
|
||||
var name = item.Name;
|
||||
|
||||
if (item.IsRepeat) {
|
||||
name += ' (R)';
|
||||
}
|
||||
|
||||
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item));
|
||||
|
||||
Dashboard.setPageTitle(name);
|
||||
|
@ -44,7 +48,11 @@
|
|||
ApiClient.sendWebSocketMessage("Context", vals.join('|'));
|
||||
}
|
||||
|
||||
if (!item.TimerId && !item.SeriesTimerId) {
|
||||
$('#recordButtonContainer', page).show();
|
||||
} else {
|
||||
$('#recordButtonContainer', page).hide();
|
||||
}
|
||||
|
||||
if (MediaPlayer.canPlay(item)) {
|
||||
$('#playButtonContainer', page).show();
|
||||
|
|
|
@ -90,9 +90,7 @@
|
|||
LibraryBrowser.loadSavedQueryValues('episodes', query);
|
||||
|
||||
var groupId = getParameterByName('groupid');
|
||||
if (groupId) {
|
||||
query.GroupId = groupId;
|
||||
}
|
||||
|
||||
reloadItems(page);
|
||||
|
||||
|
|
|
@ -766,7 +766,7 @@ var Dashboard = {
|
|||
name: "Advanced",
|
||||
divider: true,
|
||||
href: "advanced.html",
|
||||
selected: pageElem.id == "advancedConfigurationPage"
|
||||
selected: page.hasClass("advancedConfigurationPage")
|
||||
}, {
|
||||
name: "Scheduled Tasks",
|
||||
href: "scheduledtasks.html",
|
||||
|
|
|
@ -1,19 +1,5 @@
|
|||
(function ($, document) {
|
||||
|
||||
function formatDigit(i) {
|
||||
return i < 10 ? "0" + i : i;
|
||||
}
|
||||
|
||||
function getDateFormat(date) {
|
||||
|
||||
// yyyyMMddHHmmss
|
||||
// Convert to UTC
|
||||
// http://stackoverflow.com/questions/948532/how-do-you-convert-a-javascript-date-to-utc/14610512#14610512
|
||||
var d = new Date(date.getTime());
|
||||
|
||||
return "" + d.getFullYear() + formatDigit(d.getMonth() + 1) + formatDigit(d.getDate()) + formatDigit(d.getHours()) + formatDigit(d.getMinutes()) + formatDigit(d.getSeconds());
|
||||
}
|
||||
|
||||
$(document).on('pagebeforeshow', "#tvUpcomingPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
@ -39,7 +25,7 @@
|
|||
yesterday.setDate(yesterday.getDate() - 1);
|
||||
yesterday.setHours(0, 0, 0, 0);
|
||||
|
||||
missedItemsQuery.MinPremiereDate = getDateFormat(yesterday);
|
||||
missedItemsQuery.MinPremiereDate = yesterday.toISOString();
|
||||
|
||||
var unairedQuery = $.extend({
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.218" targetFramework="net45" />
|
||||
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.219" targetFramework="net45" />
|
||||
</packages>
|
Loading…
Add table
Add a link
Reference in a new issue