mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
sync updates
This commit is contained in:
parent
e4e3ca4c5c
commit
69083dde3b
4 changed files with 21 additions and 8 deletions
|
@ -76,6 +76,12 @@
|
||||||
<div class="latestItemsList">
|
<div class="latestItemsList">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div data-role="controlgroup">
|
||||||
|
<label for="chkHidePlayedFromLatest">${OptionHideWatchedContentFromLatestMedia}</label>
|
||||||
|
<input id="chkHidePlayedFromLatest" type="checkbox" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -950,11 +950,11 @@
|
||||||
|
|
||||||
// Can't autoplay in these browsers so we need to use the full controls
|
// Can't autoplay in these browsers so we need to use the full controls
|
||||||
if (requiresNativeControls) {
|
if (requiresNativeControls) {
|
||||||
html += '<video class="itemVideo" id="itemVideo" preload="none" autoplay="autoplay" controls="controls">';
|
html += '<video class="itemVideo" id="itemVideo" preload="none" autoplay="autoplay" crossorigin="anonymous" controls="controls">';
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Chrome 35 won't play with preload none
|
// Chrome 35 won't play with preload none
|
||||||
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay>';
|
html += '<video class="itemVideo" id="itemVideo" preload="metadata" crossorigin="anonymous" autoplay>';
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '<source type="' + contentType + '" src="' + videoUrl + '" />';
|
html += '<source type="' + contentType + '" src="' + videoUrl + '" />';
|
||||||
|
@ -967,7 +967,6 @@
|
||||||
|
|
||||||
var textStream = textStreams[i];
|
var textStream = textStreams[i];
|
||||||
var textStreamUrl = textStream.DeliveryUrl;
|
var textStreamUrl = textStream.DeliveryUrl;
|
||||||
|
|
||||||
var defaultAttribute = textStream.Index == mediaSource.DefaultSubtitleStreamIndex ? ' default' : '';
|
var defaultAttribute = textStream.Index == mediaSource.DefaultSubtitleStreamIndex ? ' default' : '';
|
||||||
|
|
||||||
html += '<track kind="subtitles" src="' + textStreamUrl + '" srclang="' + (textStream.Language || 'und') + '"' + defaultAttribute + '></track>';
|
html += '<track kind="subtitles" src="' + textStreamUrl + '" srclang="' + (textStream.Language || 'und') + '"' + defaultAttribute + '></track>';
|
||||||
|
|
|
@ -399,6 +399,7 @@
|
||||||
var currentSrc = element.currentSrc;
|
var currentSrc = element.currentSrc;
|
||||||
|
|
||||||
var playSessionId = getParameterByName('PlaySessionId', currentSrc);
|
var playSessionId = getParameterByName('PlaySessionId', currentSrc);
|
||||||
|
var liveStreamId = getParameterByName('LiveStreamId', currentSrc);
|
||||||
|
|
||||||
if (params.AudioStreamIndex == null && params.SubtitleStreamIndex == null && params.Bitrate == null) {
|
if (params.AudioStreamIndex == null && params.SubtitleStreamIndex == null && params.Bitrate == null) {
|
||||||
|
|
||||||
|
@ -419,14 +420,14 @@
|
||||||
subtitleStreamIndex = parseInt(subtitleStreamIndex);
|
subtitleStreamIndex = parseInt(subtitleStreamIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPlaybackInfo(self.currentItem.Id, deviceProfile, ticks, self.currentMediaSource, audioStreamIndex, subtitleStreamIndex).done(function (result) {
|
getPlaybackInfo(self.currentItem.Id, deviceProfile, ticks, self.currentMediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId).done(function (result) {
|
||||||
|
|
||||||
if (validatePlaybackInfoResult(result)) {
|
if (validatePlaybackInfoResult(result)) {
|
||||||
|
|
||||||
self.currentMediaSource = result.MediaSources[0];
|
self.currentMediaSource = result.MediaSources[0];
|
||||||
self.currentSubtitleStreamIndex = subtitleStreamIndex;
|
self.currentSubtitleStreamIndex = subtitleStreamIndex;
|
||||||
|
|
||||||
currentSrc = ApiClient.getUrl(self.currentMediaSource.TranscodingUrl);
|
currentSrc = self.currentMediaSource.TranscodingUrl;
|
||||||
changeStreamToUrl(element, playSessionId, currentSrc, ticks);
|
changeStreamToUrl(element, playSessionId, currentSrc, ticks);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -660,7 +661,7 @@
|
||||||
})[0];
|
})[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPlaybackInfo(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex) {
|
function getPlaybackInfo(itemId, deviceProfile, startPosition, mediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId) {
|
||||||
|
|
||||||
var postData = {
|
var postData = {
|
||||||
DeviceProfile: deviceProfile
|
DeviceProfile: deviceProfile
|
||||||
|
@ -680,6 +681,9 @@
|
||||||
if (mediaSource) {
|
if (mediaSource) {
|
||||||
query.MediaSourceId = mediaSource.Id;
|
query.MediaSourceId = mediaSource.Id;
|
||||||
}
|
}
|
||||||
|
if (liveStreamId) {
|
||||||
|
query.LiveStreamId = liveStreamId;
|
||||||
|
}
|
||||||
|
|
||||||
return ApiClient.ajax({
|
return ApiClient.ajax({
|
||||||
url: ApiClient.getUrl('Items/' + itemId + '/PlaybackInfo', query),
|
url: ApiClient.getUrl('Items/' + itemId + '/PlaybackInfo', query),
|
||||||
|
@ -750,7 +754,7 @@
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
startTimeTicksOffset = startPosition || 0;
|
startTimeTicksOffset = startPosition || 0;
|
||||||
mediaUrl = ApiClient.getUrl(mediaSource.TranscodingUrl);
|
mediaUrl = mediaSource.TranscodingUrl;
|
||||||
|
|
||||||
if (mediaSource.TranscodingSubProtocol == 'hls') {
|
if (mediaSource.TranscodingSubProtocol == 'hls') {
|
||||||
|
|
||||||
|
@ -789,7 +793,7 @@
|
||||||
|
|
||||||
contentType = 'audio/' + mediaSource.TranscodingContainer;
|
contentType = 'audio/' + mediaSource.TranscodingContainer;
|
||||||
|
|
||||||
mediaUrl = ApiClient.getUrl(mediaSource.TranscodingUrl);
|
mediaUrl = mediaSource.TranscodingUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
startTimeTicksOffset = startPosition || 0;
|
startTimeTicksOffset = startPosition || 0;
|
||||||
|
|
|
@ -133,6 +133,8 @@
|
||||||
$('#chkDisplayCollectionView', page).checked(user.Configuration.DisplayCollectionsView || false).checkboxradio("refresh");
|
$('#chkDisplayCollectionView', page).checked(user.Configuration.DisplayCollectionsView || false).checkboxradio("refresh");
|
||||||
$('#chkDisplayFolderView', page).checked(user.Configuration.DisplayFoldersView || false).checkboxradio("refresh");
|
$('#chkDisplayFolderView', page).checked(user.Configuration.DisplayFoldersView || false).checkboxradio("refresh");
|
||||||
|
|
||||||
|
$('#chkHidePlayedFromLatest', page).checked(user.Configuration.HidePlayedInLatest || false).checkboxradio("refresh");
|
||||||
|
|
||||||
var promise1 = ApiClient.getItems(user.Id, {
|
var promise1 = ApiClient.getItems(user.Id, {
|
||||||
sortBy: "SortName"
|
sortBy: "SortName"
|
||||||
});
|
});
|
||||||
|
@ -163,6 +165,8 @@
|
||||||
user.Configuration.DisplayCollectionsView = $('#chkDisplayCollectionView', page).checked();
|
user.Configuration.DisplayCollectionsView = $('#chkDisplayCollectionView', page).checked();
|
||||||
user.Configuration.DisplayFoldersView = $('#chkDisplayFolderView', page).checked();
|
user.Configuration.DisplayFoldersView = $('#chkDisplayFolderView', page).checked();
|
||||||
|
|
||||||
|
user.Configuration.HidePlayedInLatest = $('#chkHidePlayedFromLatest', page).checked();
|
||||||
|
|
||||||
user.Configuration.IncludeTrailersInSuggestions = $('#chkDisplayTrailersWithinMovieSuggestions', page).checked();
|
user.Configuration.IncludeTrailersInSuggestions = $('#chkDisplayTrailersWithinMovieSuggestions', page).checked();
|
||||||
|
|
||||||
user.Configuration.LatestItemsExcludes = $(".chkIncludeInLatest:not(:checked)", page).get().map(function (i) {
|
user.Configuration.LatestItemsExcludes = $(".chkIncludeInLatest:not(:checked)", page).get().map(function (i) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue