mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update client sync
This commit is contained in:
parent
a2d603a31e
commit
e96f1d7e00
13 changed files with 62 additions and 55 deletions
|
@ -251,7 +251,7 @@
|
||||||
|
|
||||||
logger.log("Reconnect attempt failed to " + url);
|
logger.log("Reconnect attempt failed to " + url);
|
||||||
|
|
||||||
if (currentRetryCount <= 5) {
|
if (currentRetryCount < 5) {
|
||||||
|
|
||||||
var newConnectionMode = switchConnectionMode(connectionMode);
|
var newConnectionMode = switchConnectionMode(connectionMode);
|
||||||
|
|
||||||
|
|
|
@ -322,7 +322,7 @@
|
||||||
|
|
||||||
function saveUserInfoIntoCredentials(server, user) {
|
function saveUserInfoIntoCredentials(server, user) {
|
||||||
|
|
||||||
var info = new {
|
var info = {
|
||||||
Id: user.Id,
|
Id: user.Id,
|
||||||
IsSignedInOffline: true
|
IsSignedInOffline: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,12 @@
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function saveOfflineUser(user) {
|
||||||
|
var deferred = DeferredBuilder.Deferred();
|
||||||
|
deferred.resolve();
|
||||||
|
return deferred.promise();
|
||||||
|
}
|
||||||
|
|
||||||
function getCameraPhotos() {
|
function getCameraPhotos() {
|
||||||
var deferred = DeferredBuilder.Deferred();
|
var deferred = DeferredBuilder.Deferred();
|
||||||
deferred.resolveWith(null, [[]]);
|
deferred.resolveWith(null, [[]]);
|
||||||
|
|
42
dashboard-ui/cordova/android/vlcplayer.js
vendored
42
dashboard-ui/cordova/android/vlcplayer.js
vendored
|
@ -92,39 +92,39 @@
|
||||||
|
|
||||||
function getPlaybackStartInfoForVideoActivity(videoUrl, mediaSource, item) {
|
function getPlaybackStartInfoForVideoActivity(videoUrl, mediaSource, item) {
|
||||||
|
|
||||||
var state = {
|
var playbackStartInfo = {
|
||||||
PlayState: {}
|
QueueableMediaTypes: item.MediaType,
|
||||||
|
ItemId: item.Id,
|
||||||
|
NowPlayingItem: {},
|
||||||
|
MediaSourceId: mediaSource.Id
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (mediaSource.RunTimeTicks) {
|
||||||
|
playbackStartInfo.NowPlayingItem.RunTimeTicks = mediaSource.RunTimeTicks;
|
||||||
|
}
|
||||||
|
|
||||||
var audioStreamIndex = getParameterByName('AudioStreamIndex', videoUrl);
|
var audioStreamIndex = getParameterByName('AudioStreamIndex', videoUrl);
|
||||||
|
|
||||||
if (audioStreamIndex) {
|
if (audioStreamIndex) {
|
||||||
state.PlayState.AudioStreamIndex = parseInt(audioStreamIndex);
|
playbackStartInfo.AudioStreamIndex = parseInt(audioStreamIndex);
|
||||||
|
}
|
||||||
|
if (self.currentSubtitleStreamIndex != null) {
|
||||||
|
playbackStartInfo.SubtitleStreamIndex = self.currentSubtitleStreamIndex;
|
||||||
}
|
}
|
||||||
state.PlayState.SubtitleStreamIndex = self.currentSubtitleStreamIndex;
|
|
||||||
|
|
||||||
state.PlayState.PlayMethod = getParameterByName('static', videoUrl) == 'true' ?
|
playbackStartInfo.PlayMethod = getParameterByName('static', videoUrl) == 'true' ?
|
||||||
'DirectStream' :
|
'DirectStream' :
|
||||||
'Transcode';
|
'Transcode';
|
||||||
|
|
||||||
state.PlayState.LiveStreamId = getParameterByName('LiveStreamId', videoUrl);
|
playbackStartInfo.LiveStreamId = getParameterByName('LiveStreamId', videoUrl);
|
||||||
state.PlayState.PlaySessionId = getParameterByName('PlaySessionId', videoUrl);
|
playbackStartInfo.PlaySessionId = getParameterByName('PlaySessionId', videoUrl);
|
||||||
|
|
||||||
state.PlayState.MediaSourceId = mediaSource.Id;
|
// Seeing some deserialization errors around this property
|
||||||
|
if (mediaSource.RunTimeTicks && mediaSource.RunTimeTicks > 0) {
|
||||||
|
playbackStartInfo.CanSeek = true;
|
||||||
|
}
|
||||||
|
|
||||||
state.NowPlayingItem = {
|
return playbackStartInfo;
|
||||||
RunTimeTicks: mediaSource.RunTimeTicks
|
|
||||||
};
|
|
||||||
|
|
||||||
state.PlayState.CanSeek = mediaSource.RunTimeTicks && mediaSource.RunTimeTicks > 0;
|
|
||||||
|
|
||||||
var playbackStartInfo = {
|
|
||||||
QueueableMediaTypes: item.MediaType,
|
|
||||||
ItemId: item.Id,
|
|
||||||
NowPlayingItem: state.NowPlayingItem
|
|
||||||
};
|
|
||||||
|
|
||||||
return $.extend(playbackStartInfo, state.PlayState);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.setCurrentSrc = function (val, item, mediaSource, tracks) {
|
self.setCurrentSrc = function (val, item, mediaSource, tracks) {
|
||||||
|
|
|
@ -211,10 +211,6 @@
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hack for safari because it doesn't allow clickable content over the video surface. */
|
|
||||||
/*.itemVideo { (;top: 9%!important;height: 91% !important;); }
|
|
||||||
.itemVideo { [;top: 9%!important;height: 91% !important;]; }*/
|
|
||||||
|
|
||||||
#videoPlayer .inactive {
|
#videoPlayer .inactive {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
</h1>
|
</h1>
|
||||||
<div class="detailSectionContent">
|
<div class="detailSectionContent">
|
||||||
|
|
||||||
<div>
|
<div class="fldSyncPath hide">
|
||||||
<paper-input type="text" id="txtSyncPath" label="${LabelSyncPath}" style="display:inline-block;width:80%;" readonly></paper-input>
|
<paper-input type="text" id="txtSyncPath" label="${LabelSyncPath}" style="display:inline-block;width:80%;" readonly></paper-input>
|
||||||
<paper-icon-button class="btnSelectSyncPath" icon="search"></paper-icon-button>
|
<paper-icon-button class="btnSelectSyncPath" icon="search"></paper-icon-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -109,13 +109,13 @@
|
||||||
|
|
||||||
this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
|
this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
|
||||||
|
|
||||||
}).checkboxradio('refresh');
|
});
|
||||||
|
|
||||||
$('.radioSortOrder', page).each(function () {
|
$('.radioSortOrder', page).each(function () {
|
||||||
|
|
||||||
this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
|
this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
|
||||||
|
|
||||||
}).checkboxradio('refresh');
|
});
|
||||||
|
|
||||||
$('.chkStandardFilter', page).each(function () {
|
$('.chkStandardFilter', page).each(function () {
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
|
|
||||||
this.checked = filters.toLowerCase().indexOf(',' + filterName.toLowerCase()) != -1;
|
this.checked = filters.toLowerCase().indexOf(',' + filterName.toLowerCase()) != -1;
|
||||||
|
|
||||||
}).checkboxradio('refresh');
|
});
|
||||||
|
|
||||||
$('.chkVideoTypeFilter', page).each(function () {
|
$('.chkVideoTypeFilter', page).each(function () {
|
||||||
|
|
||||||
|
@ -133,21 +133,21 @@
|
||||||
|
|
||||||
this.checked = filters.indexOf(',' + filterName) != -1;
|
this.checked = filters.indexOf(',' + filterName) != -1;
|
||||||
|
|
||||||
}).checkboxradio('refresh');
|
});
|
||||||
|
|
||||||
$('#selectView', page).val(view);
|
$('#selectView', page).val(view);
|
||||||
|
|
||||||
$('#chkHD', page).checked(query.IsHD == true).checkboxradio('refresh');
|
$('#chkHD', page).checked(query.IsHD == true);
|
||||||
$('#chkSD', page).checked(query.IsHD == false).checkboxradio('refresh');
|
$('#chkSD', page).checked(query.IsHD == false);
|
||||||
|
|
||||||
$('#chkSubtitle', page).checked(query.HasSubtitles == true).checkboxradio('refresh');
|
$('#chkSubtitle', page).checked(query.HasSubtitles == true);
|
||||||
$('#chkTrailer', page).checked(query.HasTrailer == true).checkboxradio('refresh');
|
$('#chkTrailer', page).checked(query.HasTrailer == true);
|
||||||
$('#chkThemeSong', page).checked(query.HasThemeSong == true).checkboxradio('refresh');
|
$('#chkThemeSong', page).checked(query.HasThemeSong == true);
|
||||||
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true).checkboxradio('refresh');
|
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true);
|
||||||
$('#chkSpecialFeature', page).checked(query.ParentIndexNumber == 0).checkboxradio('refresh');
|
$('#chkSpecialFeature', page).checked(query.ParentIndexNumber == 0);
|
||||||
|
|
||||||
$('#chkMissingEpisode', page).checked(query.IsMissing == true).checkboxradio('refresh');
|
$('#chkMissingEpisode', page).checked(query.IsMissing == true);
|
||||||
$('#chkFutureEpisode', page).checked(query.IsUnaired == true).checkboxradio('refresh');
|
$('#chkFutureEpisode', page).checked(query.IsUnaired == true);
|
||||||
|
|
||||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
||||||
$('#selectPageSize', page).val(query.Limit);
|
$('#selectPageSize', page).val(query.Limit);
|
||||||
|
|
|
@ -130,7 +130,7 @@
|
||||||
var profile = {};
|
var profile = {};
|
||||||
|
|
||||||
profile.MaxStreamingBitrate = bitrateSetting;
|
profile.MaxStreamingBitrate = bitrateSetting;
|
||||||
profile.MaxStaticBitrate = 4000000;
|
profile.MaxStaticBitrate = 8000000;
|
||||||
profile.MusicStreamingTranscodingBitrate = Math.min(bitrateSetting, 192000);
|
profile.MusicStreamingTranscodingBitrate = Math.min(bitrateSetting, 192000);
|
||||||
|
|
||||||
profile.DirectPlayProfiles = [];
|
profile.DirectPlayProfiles = [];
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
$('.lnkMyProfile', page).attr('href', 'myprofile.html?userId=' + userId);
|
$('.lnkMyProfile', page).attr('href', 'myprofile.html?userId=' + userId);
|
||||||
$('.lnkSync', page).attr('href', 'mysyncsettings.html?userId=' + userId);
|
$('.lnkSync', page).attr('href', 'mysyncsettings.html?userId=' + userId);
|
||||||
|
|
||||||
if (AppInfo.supportsSyncPathSetting) {
|
if (Dashboard.capabilities().SupportsSync) {
|
||||||
page.querySelector('.lnkSync').classList.remove('hide');
|
page.querySelector('.lnkSync').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
page.querySelector('.lnkSync').classList.add('hide');
|
page.querySelector('.lnkSync').classList.add('hide');
|
||||||
|
|
|
@ -64,6 +64,12 @@
|
||||||
|
|
||||||
loadForm(page, user);
|
loadForm(page, user);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (AppInfo.supportsSyncPathSetting) {
|
||||||
|
page.querySelector('.fldSyncPath').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
page.querySelector('.fldSyncPath').classList.add('hide');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery, window, document);
|
})(jQuery, window, document);
|
|
@ -122,7 +122,9 @@ var Dashboard = {
|
||||||
|
|
||||||
if (!Dashboard.getUserPromise) {
|
if (!Dashboard.getUserPromise) {
|
||||||
|
|
||||||
Dashboard.getUserPromise = window.ApiClient.getCurrentUser().fail(Dashboard.logout);
|
Dashboard.getUserPromise = window.ApiClient.getCurrentUser().fail(function () {
|
||||||
|
Dashboard.getUserPromise = null;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return Dashboard.getUserPromise;
|
return Dashboard.getUserPromise;
|
||||||
|
|
|
@ -2,6 +2,11 @@
|
||||||
font-family: San Francisco, Helvetica Neue;
|
font-family: San Francisco, Helvetica Neue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.backdropContainer {
|
||||||
|
/* This isn't implemented right and ends up looking terrible */
|
||||||
|
background-attachment: initial;
|
||||||
|
}
|
||||||
|
|
||||||
.background-theme-b {
|
.background-theme-b {
|
||||||
background-color: #1c1c1c;
|
background-color: #1c1c1c;
|
||||||
}
|
}
|
||||||
|
|
14
dashboard-ui/thirdparty/paper-button-style.css
vendored
14
dashboard-ui/thirdparty/paper-button-style.css
vendored
|
@ -98,11 +98,11 @@ paper-button[raised].cancelDark {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-page-theme-b paper-button.subdued:not([disabled]) {
|
.ui-page-theme-b paper-button.subdued:not([disabled]) {
|
||||||
color: #484848;
|
color: #404040;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-page-theme-b paper-button[raised].subdued:not([disabled]) {
|
.ui-page-theme-b paper-button[raised].subdued:not([disabled]) {
|
||||||
background: #484848;
|
background: #404040;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,14 +114,6 @@ paper-button.hover:hover {
|
||||||
background: #eee;
|
background: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
paper-button.ripple::shadow paper-ripple {
|
|
||||||
color: var(--paper-pink-a200);
|
|
||||||
}
|
|
||||||
|
|
||||||
paper-button.ripple paper-ripple {
|
|
||||||
color: var(--paper-pink-a200);
|
|
||||||
}
|
|
||||||
|
|
||||||
paper-button span {
|
paper-button span {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
@ -287,7 +279,7 @@ paper-fab {
|
||||||
}
|
}
|
||||||
|
|
||||||
paper-fab.subdued {
|
paper-fab.subdued {
|
||||||
background: #484848;
|
background: #404040;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue