Add upstream trailer layout feature and update version to 1.5.0.11
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 52s

This commit is contained in:
CodeDevMLH
2026-02-09 15:55:14 +01:00
parent df1cee0eeb
commit 535c0e17bf
6 changed files with 122 additions and 22 deletions

View File

@@ -36,6 +36,7 @@ namespace Jellyfin.Plugin.MediaBarEnhanced.Configuration
public bool EnableSeasonalContent { get; set; } = false;
public bool IsEnabled { get; set; } = true;
public bool EnableClientSideSettings { get; set; } = false;
public bool EnableUpstreamTrailerLayout { get; set; } = false;
public string SortBy { get; set; } = "Random";
public string SortOrder { get; set; } = "Ascending";
}

View File

@@ -73,6 +73,14 @@
</label>
<div class="fieldDescription">Delay slide transition until trailer finishes.</div>
</div>
<div id="UpstreamTrailerLayoutContainer" class="checkboxContainer checkboxContainer-withDescription">
<label>
<input is="emby-checkbox" type="checkbox" id="EnableUpstreamTrailerLayout"
name="EnableUpstreamTrailerLayout" />
<span>Enable Upstream Trailer Layout</span>
</label>
<div class="fieldDescription">Use the upstream (original) layout for trailers. This renders the video inside a container overlaying the backdrop, instead of replacing it to support full-width video.</div>
</div>
<div class="checkboxContainer checkboxContainer-withDescription">
<label>
<input is="emby-checkbox" type="checkbox" id="EnableMobileVideo"
@@ -406,7 +414,7 @@
'ShowTrailerButton', 'AlwaysShowArrows', 'EnableKeyboardControls',
'EnableCustomMediaIds', 'CustomMediaIds', 'EnableLoadingScreen',
'EnableSeasonalContent', 'EnableClientSideSettings', 'SortBy', 'SortOrder',
'PreferLocalTrailers'
'PreferLocalTrailers', 'EnableUpstreamTrailerLayout'
];
keys.forEach(function (key) {
@@ -443,12 +451,15 @@
// Handle Prefer Local Trailers visibility
var enableVideoBackdropCheckbox = page.querySelector('#EnableVideoBackdrop');
var preferLocalContainer = page.querySelector('#PreferLocalTrailersContainer');
var upstreamLayoutContainer = page.querySelector('#UpstreamTrailerLayoutContainer');
function updatePreferLocalVisibility() {
if (enableVideoBackdropCheckbox && enableVideoBackdropCheckbox.checked) {
if (preferLocalContainer) preferLocalContainer.style.display = 'block';
if (upstreamLayoutContainer) upstreamLayoutContainer.style.display = 'block';
} else {
if (preferLocalContainer) preferLocalContainer.style.display = 'none';
if (upstreamLayoutContainer) upstreamLayoutContainer.style.display = 'none';
}
}
@@ -473,7 +484,7 @@
'ShowTrailerButton', 'AlwaysShowArrows', 'EnableKeyboardControls',
'EnableCustomMediaIds', 'CustomMediaIds', 'EnableLoadingScreen',
'EnableSeasonalContent', 'EnableClientSideSettings', 'SortBy', 'SortOrder',
'PreferLocalTrailers'
'PreferLocalTrailers', 'EnableUpstreamTrailerLayout'
];
keys.forEach(function (key) {