mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge remote-tracking branch 'upstream/master' into nowplaying-hotfixes
This commit is contained in:
commit
33d0329e5c
14 changed files with 76 additions and 39 deletions
|
@ -193,9 +193,14 @@ button::-moz-focus-inner {
|
||||||
|
|
||||||
/* Needed in case this is a button */
|
/* Needed in case this is a button */
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
/* Needed in case this is a button */
|
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
|
border: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
cursor: pointer;
|
||||||
|
color: inherit;
|
||||||
|
width: 100%;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
|
||||||
/* Needed in safari */
|
/* Needed in safari */
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -204,19 +209,12 @@ button::-moz-focus-inner {
|
||||||
contain: strict;
|
contain: strict;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardContent-button {
|
.cardContent:not(.defaultCardBackground) {
|
||||||
border: 0 !important;
|
background-color: transparent;
|
||||||
padding: 0 !important;
|
|
||||||
cursor: pointer;
|
|
||||||
color: inherit;
|
|
||||||
width: 100%;
|
|
||||||
vertical-align: middle;
|
|
||||||
font-family: inherit;
|
|
||||||
font-size: inherit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardContent-button:not(.defaultCardBackground) {
|
.cardBox:not(.visualCardBox) .cardPadder {
|
||||||
background-color: transparent;
|
background-color: #242424;
|
||||||
}
|
}
|
||||||
|
|
||||||
.visualCardBox .cardContent {
|
.visualCardBox .cardContent {
|
||||||
|
@ -224,7 +222,8 @@ button::-moz-focus-inner {
|
||||||
border-bottom-right-radius: 0;
|
border-bottom-right-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardContent-shadow {
|
.cardContent-shadow,
|
||||||
|
.cardBox:not(.visualCardBox) .cardPadder {
|
||||||
box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37);
|
box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1367,9 +1367,6 @@ import 'programStyles';
|
||||||
let cardScalableClose = '';
|
let cardScalableClose = '';
|
||||||
|
|
||||||
let cardContentClass = 'cardContent';
|
let cardContentClass = 'cardContent';
|
||||||
if (!options.cardLayout) {
|
|
||||||
cardContentClass += ' cardContent-shadow';
|
|
||||||
}
|
|
||||||
|
|
||||||
let blurhashAttrib = '';
|
let blurhashAttrib = '';
|
||||||
if (blurhash && blurhash.length > 0) {
|
if (blurhash && blurhash.length > 0) {
|
||||||
|
@ -1377,21 +1374,20 @@ import 'programStyles';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
if (layoutManager.tv) {
|
||||||
|
|
||||||
// Don't use the IMG tag with safari because it puts a white border around it
|
// Don't use the IMG tag with safari because it puts a white border around it
|
||||||
cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + ' lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + '">');
|
cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + ' lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + '">');
|
||||||
|
|
||||||
cardImageContainerClose = '</div>';
|
cardImageContainerClose = '</div>';
|
||||||
} else {
|
} else {
|
||||||
// Don't use the IMG tag with safari because it puts a white border around it
|
// Don't use the IMG tag with safari because it puts a white border around it
|
||||||
cardImageContainerOpen = imgUrl ? ('<button data-action="' + action + '" class="cardContent-button ' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<button data-action="' + action + '" class="cardContent-button ' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction">');
|
cardImageContainerOpen = imgUrl ? ('<button data-action="' + action + '" class="' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<button data-action="' + action + '" class="' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction">');
|
||||||
|
|
||||||
cardImageContainerClose = '</button>';
|
cardImageContainerClose = '</button>';
|
||||||
}
|
}
|
||||||
|
|
||||||
let cardScalableClass = 'cardScalable';
|
let cardScalableClass = 'cardScalable';
|
||||||
|
|
||||||
cardImageContainerOpen = '<div class="' + cardBoxClass + '"><div class="' + cardScalableClass + '"><div class="cardPadder-' + shape + '"></div>' + cardImageContainerOpen;
|
cardImageContainerOpen = '<div class="' + cardBoxClass + '"><div class="' + cardScalableClass + '"><div class="cardPadder cardPadder-' + shape + '"></div>' + cardImageContainerOpen;
|
||||||
cardBoxClose = '</div>';
|
cardBoxClose = '</div>';
|
||||||
cardScalableClose = '</div>';
|
cardScalableClose = '</div>';
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
.lazy-image-fadein {
|
.lazy-image-fadein {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transition: opacity 0.7s;
|
transition: opacity 0.5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lazy-image-fadein-fast {
|
.lazy-image-fadein-fast {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transition: opacity 0.2s;
|
transition: opacity 0.1s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lazy-hidden {
|
.lazy-hidden {
|
||||||
|
|
|
@ -241,6 +241,15 @@ import connectionManager from 'connectionManager';
|
||||||
navigator.mediaSession.setActionHandler('seekforward', function () {
|
navigator.mediaSession.setActionHandler('seekforward', function () {
|
||||||
execute('fastForward');
|
execute('fastForward');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* eslint-disable-next-line compat/compat */
|
||||||
|
navigator.mediaSession.setActionHandler('seekto', function (object) {
|
||||||
|
let item = playbackManager.getPlayerState(currentPlayer).NowPlayingItem;
|
||||||
|
// Convert to ms
|
||||||
|
let duration = parseInt(item.RunTimeTicks ? (item.RunTimeTicks / 10000) : 0);
|
||||||
|
let wantedTime = object.seekTime * 1000;
|
||||||
|
playbackManager.seekPercent(wantedTime / duration * 100, currentPlayer);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
events.on(playbackManager, 'playerchange', function () {
|
events.on(playbackManager, 'playerchange', function () {
|
||||||
|
|
|
@ -227,7 +227,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
context.querySelector('.nowPlayingPageImage').classList.remove('nowPlayingPageImageAudio');
|
context.querySelector('.nowPlayingPageImage').classList.remove('nowPlayingPageImageAudio');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
imgContainer.innerHTML = '<div class="nowPlayingPageImageContainerNoAlbum"><button data-action="link" class="cardContent-button cardImageContainer coveredImage ' + cardBuilder.getDefaultBackgroundClass(item.Name) + ' cardContent cardContent-shadow itemAction"><span class="cardImageIcon material-icons album"></span></button></div>';
|
imgContainer.innerHTML = '<div class="nowPlayingPageImageContainerNoAlbum"><button data-action="link" class="cardImageContainer coveredImage ' + cardBuilder.getDefaultBackgroundClass(item.Name) + ' cardContent cardContent-shadow itemAction"><span class="cardImageIcon material-icons album"></span></button></div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,8 +65,6 @@ class TimeSyncManager {
|
||||||
this.pings = 0; // number of pings
|
this.pings = 0; // number of pings
|
||||||
this.measurement = null; // current time sync
|
this.measurement = null; // current time sync
|
||||||
this.measurements = [];
|
this.measurements = [];
|
||||||
|
|
||||||
this.startPing();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -834,6 +834,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
var headerAudioPlayerButton;
|
var headerAudioPlayerButton;
|
||||||
var headerSyncButton;
|
var headerSyncButton;
|
||||||
var enableLibraryNavDrawer = layoutManager.desktop;
|
var enableLibraryNavDrawer = layoutManager.desktop;
|
||||||
|
var enableLibraryNavDrawerHome = !layoutManager.tv;
|
||||||
var skinHeader = document.querySelector('.skinHeader');
|
var skinHeader = document.querySelector('.skinHeader');
|
||||||
var requiresUserRefresh = true;
|
var requiresUserRefresh = true;
|
||||||
var lastOpenTime = new Date().getTime();
|
var lastOpenTime = new Date().getTime();
|
||||||
|
@ -920,7 +921,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
refreshDashboardInfoInDrawer(apiClient);
|
refreshDashboardInfoInDrawer(apiClient);
|
||||||
} else {
|
} else {
|
||||||
if (mainDrawerButton) {
|
if (mainDrawerButton) {
|
||||||
if (enableLibraryNavDrawer || isHomePage) {
|
if (enableLibraryNavDrawer || (isHomePage && enableLibraryNavDrawerHome)) {
|
||||||
mainDrawerButton.classList.remove('hide');
|
mainDrawerButton.classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
mainDrawerButton.classList.add('hide');
|
mainDrawerButton.classList.add('hide');
|
||||||
|
|
|
@ -1573,10 +1573,18 @@
|
||||||
"EnableBlurhashHelp": "Bilder, die noch nicht fertig geladen wurden, werden mit einem verschwommenen Platzhalter dargestellt",
|
"EnableBlurhashHelp": "Bilder, die noch nicht fertig geladen wurden, werden mit einem verschwommenen Platzhalter dargestellt",
|
||||||
"EnableBlurhash": "Verschwommene Platzhalter für Bilder erlauben",
|
"EnableBlurhash": "Verschwommene Platzhalter für Bilder erlauben",
|
||||||
"EnableFasterAnimations": "Schnellere Animationen",
|
"EnableFasterAnimations": "Schnellere Animationen",
|
||||||
"EnableDecodingColorDepth10Vp9": "Aktiviere 10-Bit-Hardware-Dekodierung für Vp9",
|
"EnableDecodingColorDepth10Vp9": "Aktiviere 10-Bit-Hardware-Dekodierung für VP9",
|
||||||
"EnableDecodingColorDepth10Hevc": "Aktiviere 10-Bit-Hardware-Dekodierung für HEVC",
|
"EnableDecodingColorDepth10Hevc": "Aktiviere 10-Bit-Hardware-Dekodierung für HEVC",
|
||||||
"MessageNoGenresAvailable": "Aktiviere einige Metadaten-Anbieter um Genres aus dem Internet zu holen.",
|
"MessageNoGenresAvailable": "Aktiviere einige Metadaten-Anbieter um Genres aus dem Internet zu holen.",
|
||||||
"EnableFasterAnimationsHelp": "Benutze schnellere Animationen und Übergänge",
|
"EnableFasterAnimationsHelp": "Benutze schnellere Animationen und Übergänge",
|
||||||
"ButtonCast": "Besetzung",
|
"ButtonCast": "Besetzung",
|
||||||
"ButtonSyncPlay": "SyncPlay"
|
"ButtonSyncPlay": "SyncPlay",
|
||||||
|
"TabRepositories": "Repositories",
|
||||||
|
"MessageAddRepository": "Wenn Sie ein Repository hinzufügen möchten, klicken Sie auf die Schaltfläche neben der Kopfzeile und füllen Sie die angeforderten Informationen aus.",
|
||||||
|
"LabelRepositoryUrlHelp": "Der Speicherort des Repository-Manifests, das Sie aufnehmen möchten.",
|
||||||
|
"LabelRepositoryNameHelp": "Ein benutzerdefinierter Name zur Unterscheidung dieses Repositorys von den anderen, die zu Ihrem Server hinzugefügt wurden.",
|
||||||
|
"LabelRepositoryName": "Name des Repository",
|
||||||
|
"LabelRepositoryUrl": "URL des Repository",
|
||||||
|
"HeaderNewRepository": "Neues Repository",
|
||||||
|
"MessageNoRepositories": "Keine Repositories."
|
||||||
}
|
}
|
||||||
|
|
|
@ -543,5 +543,9 @@
|
||||||
"LabelAllowServerAutoRestart": "Leyfa netþjóni að endurræsa sig sjálfkrafa til þess að uppfæra sig",
|
"LabelAllowServerAutoRestart": "Leyfa netþjóni að endurræsa sig sjálfkrafa til þess að uppfæra sig",
|
||||||
"LabelAllowHWTranscoding": "Leyfa vélbúnaðarumkóðun",
|
"LabelAllowHWTranscoding": "Leyfa vélbúnaðarumkóðun",
|
||||||
"Label3DFormat": "3D snið:",
|
"Label3DFormat": "3D snið:",
|
||||||
"HeaderIdentification": "Auðkenning"
|
"HeaderIdentification": "Auðkenning",
|
||||||
|
"ConfirmDeleteItems": "Ef þessum skrám er eytt verða þær fjarlægðar úr bæði stýrikerfinu og miðlasafninu. Ertu viss um að þú viljir halda áfram?",
|
||||||
|
"CommunityRating": "Mat samfélagsins",
|
||||||
|
"ButtonStart": "Byrja",
|
||||||
|
"BoxSet": "Kassasett"
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,8 +122,8 @@ html {
|
||||||
}
|
}
|
||||||
|
|
||||||
.paperList,
|
.paperList,
|
||||||
.visualCardBox {
|
.visualCardBox,
|
||||||
background-color: #fff;
|
.cardBox:not(.visualCardBox) .cardPadder {
|
||||||
background-color: rgba(0, 0, 0, 0.1);
|
background-color: rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,7 +459,6 @@ html {
|
||||||
border-color: #00a4dc !important;
|
border-color: #00a4dc !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardContent-button,
|
|
||||||
.itemDetailImage,
|
.itemDetailImage,
|
||||||
.cardOverlayContainer {
|
.cardOverlayContainer {
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
|
|
|
@ -454,6 +454,10 @@ html {
|
||||||
color: #4285f4 !important;
|
color: #4285f4 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cardBox:not(.visualCardBox) .cardPadder {
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
.card:focus .cardBox.visualCardBox,
|
.card:focus .cardBox.visualCardBox,
|
||||||
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
||||||
border-color: #00a4dc !important;
|
border-color: #00a4dc !important;
|
||||||
|
|
|
@ -436,6 +436,10 @@ html {
|
||||||
color: #4285f4 !important;
|
color: #4285f4 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cardBox:not(.visualCardBox) .cardPadder {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.card:focus .cardBox.visualCardBox,
|
.card:focus .cardBox.visualCardBox,
|
||||||
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
||||||
border-color: #00a4dc !important;
|
border-color: #00a4dc !important;
|
||||||
|
|
|
@ -552,15 +552,25 @@ a[data-role=button] {
|
||||||
}
|
}
|
||||||
|
|
||||||
.personCard .cardScalable {
|
.personCard .cardScalable {
|
||||||
border-radius: 50%;
|
border-radius: 50% !important;
|
||||||
border: 1px solid rgb(255, 255, 255);
|
border: 1px solid rgb(255, 255, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cardBox:not(.visualCardBox) .cardPadder {
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
border-radius: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
.card:focus .cardBox.visualCardBox,
|
.card:focus .cardBox.visualCardBox,
|
||||||
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
||||||
border-color: #ff77f1 !important;
|
border-color: #ff77f1 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card.show-focus:not(.show-animation) .cardBox.visualCardBox,
|
||||||
|
.card.show-focus:not(.show-animation) .cardBox:not(.visualCardBox) .cardScalable {
|
||||||
|
border-radius: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
.layout-desktop,
|
.layout-desktop,
|
||||||
.scrollY {
|
.scrollY {
|
||||||
scrollbar-width: thin;
|
scrollbar-width: thin;
|
||||||
|
@ -606,12 +616,6 @@ a[data-role=button] {
|
||||||
width: 40vw;
|
width: 40vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.personCard .cardPadder-overflowPortrait,
|
|
||||||
.personCard .cardPadder-portrait {
|
|
||||||
padding-bottom: 100%;
|
|
||||||
contain: strict;
|
|
||||||
}
|
|
||||||
|
|
||||||
.personCard .coveredImage {
|
.personCard .coveredImage {
|
||||||
clip-path: circle(50% at 50% 50%);
|
clip-path: circle(50% at 50% 50%);
|
||||||
}
|
}
|
||||||
|
@ -623,3 +627,10 @@ a[data-role=button] {
|
||||||
.personCard .cardOverlayButton-br {
|
.personCard .cardOverlayButton-br {
|
||||||
right: 20%;
|
right: 20%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.personCard .cardPadder-overflowPortrait,
|
||||||
|
.personCard .cardPadder-portrait {
|
||||||
|
padding-bottom: 100%;
|
||||||
|
contain: strict;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
}
|
||||||
|
|
|
@ -434,6 +434,10 @@ html {
|
||||||
color: #4285f4 !important;
|
color: #4285f4 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cardBox:not(.visualCardBox) .cardPadder {
|
||||||
|
background-color: #0f3562;
|
||||||
|
}
|
||||||
|
|
||||||
.card:focus .cardBox.visualCardBox,
|
.card:focus .cardBox.visualCardBox,
|
||||||
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
.card:focus .cardBox:not(.visualCardBox) .cardScalable {
|
||||||
border-color: #fff !important;
|
border-color: #fff !important;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue