1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge remote-tracking branch 'upstream/master' into modern-osd

This commit is contained in:
MrTimscampi 2020-08-30 13:41:17 +02:00
commit 4fcf7f1805
18 changed files with 81 additions and 57 deletions

View file

@ -60,8 +60,8 @@ _define('resize-observer-polyfill', function() {
});
// swiper
const swiper = require('swiper/js/swiper');
require('swiper/css/swiper.min.css');
const swiper = require('swiper/swiper-bundle');
require('swiper/swiper-bundle.css');
_define('swiper', function() {
return swiper;
});

View file

@ -701,7 +701,7 @@ import 'emby-ratingbutton';
const player = this;
currentRuntimeTicks = playbackManager.duration(player);
updateTimeDisplay(playbackManager.currentTime(player), currentRuntimeTicks, playbackManager.getBufferedRanges(player));
updateTimeDisplay(playbackManager.currentTime(player) * 10000, currentRuntimeTicks, playbackManager.getBufferedRanges(player));
}
function releaseCurrentPlayer() {

View file

@ -1618,11 +1618,7 @@ class PlaybackManager {
player = player || self._currentPlayer;
if (player && !enableLocalPlaylistManagement(player)) {
if (player.isLocalPlayer) {
return player.seek((ticks || 0) / 10000);
} else {
return player.seek(ticks);
}
return player.seek(ticks);
}
changeStream(player, ticks);
@ -1631,11 +1627,7 @@ class PlaybackManager {
self.seekRelative = function (offsetTicks, player) {
player = player || self._currentPlayer;
if (player && !enableLocalPlaylistManagement(player) && player.seekRelative) {
if (player.isLocalPlayer) {
return player.seekRelative((ticks || 0) / 10000);
} else {
return player.seekRelative(ticks);
}
return player.seekRelative(ticks);
}
const ticks = getCurrentTicks(player) + offsetTicks;
@ -3219,7 +3211,7 @@ class PlaybackManager {
return player.currentTime();
}
return this.getCurrentTicks(player);
return this.getCurrentTicks(player) / 10000;
}
nextItem(player = this._currentPlayer) {

View file

@ -619,7 +619,7 @@ export default function () {
lastUpdateTime = now;
const player = this;
currentRuntimeTicks = playbackManager.duration(player);
updateTimeDisplay(playbackManager.currentTime(player), currentRuntimeTicks);
updateTimeDisplay(playbackManager.currentTime(player) * 10000, currentRuntimeTicks);
}
}

View file

@ -26,7 +26,8 @@
});
}
window.addEventListener('notificationclick', function (event) {
/* eslint-disable-next-line no-restricted-globals -- self is valid in a serviceworker environment */
self.addEventListener('notificationclick', function (event) {
var notification = event.notification;
notification.close();

View file

@ -256,7 +256,7 @@ export default function (options) {
/**
* Handles zoom changes.
*/
function onZoomChange(scale, imageEl, slideEl) {
function onZoomChange(swiper, scale, imageEl, slideEl) {
const zoomImage = slideEl.querySelector('.swiper-zoom-fakeimg');
if (zoomImage) {

View file

@ -741,7 +741,7 @@ class SyncPlayManager {
const playAtTime = this.lastCommand.When;
const currentPositionTicks = playbackManager.currentTime();
const currentPositionTicks = playbackManager.currentTime() * 10000;
// Estimate PositionTicks on server
const serverPositionTicks = this.lastCommand.PositionTicks + ((currentTime - playAtTime) + this.timeOffsetWithServer) * 10000;
// Measure delay that needs to be recovered

View file

@ -178,7 +178,7 @@ import 'flexStyles';
const runtimeTicks = playbackManager.duration(options.player);
if (runtimeTicks) {
const timeRemainingTicks = runtimeTicks - playbackManager.currentTime(options.player);
const timeRemainingTicks = runtimeTicks - playbackManager.currentTime(options.player) * 10000;
return Math.round(timeRemainingTicks / 10000);
}

View file

@ -586,7 +586,7 @@ import 'css!assets/css/videoosd';
lastUpdateTime = now;
const player = this;
currentRuntimeTicks = playbackManager.duration(player);
const currentTime = playbackManager.currentTime(player);
const currentTime = playbackManager.currentTime(player) * 10000;
updateTimeDisplay(currentTime, currentRuntimeTicks, playbackManager.playbackStartTime(player), playbackManager.getBufferedRanges(player));
const item = currentItem;
refreshProgramInfoIfNeeded(player, item);

View file

@ -0,0 +1,34 @@
// Polyfill for vendor prefixed style properties
(function () {
const vendorProperties = {
'transform': ['webkitTransform'],
'transition': ['webkitTransition']
};
const elem = document.createElement('div');
function polyfillProperty(name) {
if (!(name in elem.style)) {
(vendorProperties[name] || []).every((vendorName) => {
if (vendorName in elem.style) {
console.debug(`polyfill '${name}' with '${vendorName}'`);
Object.defineProperty(CSSStyleDeclaration.prototype, name, {
get: function () { return this[vendorName]; },
set: function (val) { this[vendorName] = val; }
});
return false;
}
return true;
});
}
}
if (elem.style instanceof CSSStyleDeclaration) {
polyfillProperty('transform');
polyfillProperty('transition');
}
})();

View file

@ -950,12 +950,12 @@ class ChromecastPlayer {
currentTime(val) {
if (val != null) {
return this.seek(val);
return this.seek(val * 10000);
}
let state = this.lastPlayerData || {};
state = state.PlayState || {};
return state.PositionTicks;
return state.PositionTicks / 10000;
}
duration() {

View file

@ -132,10 +132,7 @@ class HtmlAudioPlayer {
return new Promise(function (resolve, reject) {
requireHlsPlayer(function () {
const hls = new Hls({
manifestLoadingTimeOut: 20000,
xhrSetup: function (xhr, url) {
xhr.withCredentials = true;
}
manifestLoadingTimeOut: 20000
});
hls.loadSource(val);
hls.attachMedia(elem);

View file

@ -393,10 +393,7 @@ function tryRemoveElement(elem) {
return new Promise((resolve, reject) => {
requireHlsPlayer(() => {
const hls = new Hls({
manifestLoadingTimeOut: 20000,
xhrSetup(xhr) {
xhr.withCredentials = true;
}
manifestLoadingTimeOut: 20000
});
hls.loadSource(url);
hls.attachMedia(elem);

View file

@ -322,12 +322,12 @@ class SessionPlayer {
currentTime(val) {
if (val != null) {
return this.seek(val);
return this.seek(val * 10000);
}
let state = this.lastPlayerData || {};
state = state.PlayState || {};
return state.PositionTicks;
return state.PositionTicks / 10000;
}
duration() {

View file

@ -35,7 +35,8 @@
// Promise() being missing on some legacy browser, and a funky one
// is Promise() present but buggy on WebOS 2
window.Promise = undefined;
window.Promise = undefined;
/* eslint-disable-next-line no-restricted-globals -- Explicit check on self needed */
self.Promise = undefined;
}
if (!window.Promise) {

View file

@ -222,6 +222,7 @@ function initClient() {
});
require(['mouseManager']);
require(['focusPreventScroll']);
require(['vendorStyles']);
require(['autoFocuser'], function(autoFocuser) {
autoFocuser.enable();
});
@ -655,6 +656,7 @@ function initClient() {
});
define('slideshow', [componentsPath + '/slideshow/slideshow'], returnFirstDependency);
define('focusPreventScroll', ['legacy/focusPreventScroll'], returnFirstDependency);
define('vendorStyles', ['legacy/vendorStyles'], returnFirstDependency);
define('userdataButtons', [componentsPath + '/userdatabuttons/userdatabuttons'], returnFirstDependency);
define('listView', [componentsPath + '/listview/listview'], returnFirstDependency);
define('indicators', [componentsPath + '/indicators/indicators'], returnFirstDependency);