Compare commits
21 Commits
v1.7.2.13
...
c30300d1ba
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c30300d1ba | ||
|
|
387f0dd26f | ||
|
|
71d9cddebb | ||
|
|
9abcdf522d | ||
|
|
8c703ce171 | ||
|
|
a40ee4a40d | ||
|
|
d7e9238e21 | ||
|
|
a296caf70d | ||
|
|
86e9968243 | ||
|
|
e9fe356cee | ||
|
|
e25a99439a | ||
|
|
ba2ad8f2cc | ||
|
|
5274e61204 | ||
|
|
93919c08ef | ||
|
|
c80de82a76 | ||
|
|
c541e1e543 | ||
|
|
2c7dae4d6d | ||
|
|
3869a089a1 | ||
|
|
014c908a1e | ||
|
|
f6cecf6a9e | ||
|
|
81e4643652 |
@@ -259,7 +259,7 @@
|
||||
<input type="file" id="overlayImageInput" accept="image/png, image/jpeg, image/gif, image/webp" style="display: none;">
|
||||
<img id="overlayImagePreview" style="display: none; max-width: 100%; max-height: 150px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 4px; z-index: 2;" />
|
||||
<!-- A semi-transparent overlay to clear the image -->
|
||||
<button type="button" id="clearOverlayImageBtn" is="paper-icon-button-light" style="display: none; position: absolute; top: 10px; right: 10px; z-index: 3; color: #a94442;" title="Clear Image">
|
||||
<button type="button" id="clearOverlayImageBtn" class="clear-btn" is="paper-icon-button-light" style="display: none; position: absolute; top: 10px; right: 10px; z-index: 3; color: #a94442;" title="Clear Image">
|
||||
<i class="material-icons">delete</i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -1026,7 +1026,7 @@
|
||||
' <span style="font-size: 0.85em; color: rgba(255,255,255,0.7);">Upload seasonal image</span>' +
|
||||
' <input type="file" class="seasonal-file-input" accept="image/png, image/jpeg, image/gif, image/webp" style="display: none;">' +
|
||||
' <img class="seasonal-preview-img" style="display: none; max-width: 100%; max-height: 100%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 4px; z-index: 2; object-fit: contain;" />' +
|
||||
' <button type="button" is="paper-icon-button-light" class="seasonal-clear-btn remove-img" title="Clear Image" style="display: none; color: #a94442;"><i class="material-icons">delete</i></button>' +
|
||||
' <button type="button" is="paper-icon-button-light" class="seasonal-clear-btn remove-img" title="Clear Image" style="background: transparent; border: none; padding: 0; cursor: pointer; display: none; position: absolute; top: 10px; right: 10px; z-index: 3; color: #a94442;"><i class="material-icons">delete</i></button>' +
|
||||
' </div>' +
|
||||
' </div>' +
|
||||
'</div>';
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> -->
|
||||
<Title>Jellyfin Media Bar Enhanced Plugin</Title>
|
||||
<Authors>CodeDevMLH</Authors>
|
||||
<Version>1.7.2.13</Version>
|
||||
<Version>1.8.1.2</Version>
|
||||
<RepositoryUrl>https://github.com/CodeDevMLH/jellyfin-plugin-media-bar-enhanced</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -749,6 +749,15 @@
|
||||
left: 50%;
|
||||
transform: translateX(-50%) scale(0.8);
|
||||
background-color: #ffffff00;
|
||||
width: max-content;
|
||||
max-width: 90vw;
|
||||
flex-wrap: nowrap;
|
||||
overflow: hidden;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.dot {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.dot.active {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Jellyfin Slideshow by M0RPH3US v4.0.1
|
||||
* Modified by CodeDevMLH
|
||||
*
|
||||
@@ -340,6 +340,15 @@ const initLoadingScreen = () => {
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Global Failsafe, force remove loading screen after 15 seconds to prevent infinite lockouts
|
||||
setTimeout(() => {
|
||||
const loader = document.querySelector(".bar-loading");
|
||||
if (loader) {
|
||||
console.warn("🎬 Media Bar:", "Loading screen timed out! Forcing removal as a failsafe.");
|
||||
finishLoading();
|
||||
}
|
||||
}, 15000);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -2363,8 +2372,17 @@ const SlideshowManager = {
|
||||
|
||||
const totalItems = STATE.slideshow.totalItems || 0;
|
||||
|
||||
// dynamically lower the max dots threshold on small screens
|
||||
let effectiveMaxDots = CONFIG.maxPaginationDots;
|
||||
if (window.matchMedia("(max-width: 767px) and (orientation: portrait)").matches) {
|
||||
const availableWidth = window.innerWidth * 0.9;
|
||||
const dotWidth = 18; // approximate width per dot
|
||||
const fittingDots = Math.floor(availableWidth / dotWidth) - 1;
|
||||
effectiveMaxDots = Math.min(effectiveMaxDots, fittingDots);
|
||||
}
|
||||
|
||||
// Switch to counter style if too many items
|
||||
if (totalItems > CONFIG.maxPaginationDots) {
|
||||
if (totalItems > effectiveMaxDots) {
|
||||
const counter = document.createElement("span");
|
||||
counter.className = "slide-counter";
|
||||
counter.id = "slide-counter";
|
||||
@@ -3892,8 +3910,16 @@ const slidesInit = async () => {
|
||||
homeSections.style.top = '0';
|
||||
homeSections.style.marginTop = '0';
|
||||
}
|
||||
const container = document.getElementById('slides-container');
|
||||
if (container) container.style.display = 'none';
|
||||
let container = document.getElementById('slides-container');
|
||||
if (container) {
|
||||
container.style.display = 'none';
|
||||
} else {
|
||||
// Create dummy container so loading screen's interval can trigger its own cleanup
|
||||
container = document.createElement('div');
|
||||
container.id = 'slides-container';
|
||||
container.style.display = 'none';
|
||||
document.body.appendChild(container);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -9,12 +9,20 @@
|
||||
"imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/raw/branch/main/logo.png",
|
||||
"versions": [
|
||||
{
|
||||
"version": "1.7.2.13",
|
||||
"version": "1.8.1.2",
|
||||
"changelog": "fix pagination dot issue on mobile when showing more than 10 dots (should now dynamically adjust the max dots threshold based on screen size)",
|
||||
"targetAbi": "10.11.0.0",
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.8.1.2/Jellyfin.Plugin.MediaBarEnhanced.zip",
|
||||
"checksum": "5ca1f5b5ad5dd20d521533b815aec656",
|
||||
"timestamp": "2026-03-23T17:35:37Z"
|
||||
},
|
||||
{
|
||||
"version": "1.8.0.0",
|
||||
"changelog": "feat: add custom text/image overlay option\n- feat: add option to disable pagination dots/counter\n- feat: add exclude seasonal content from random fetching option\n- Add hide arrows on mobile option \n- fix button issue on mobile when using ElegantFin Theme",
|
||||
"targetAbi": "10.11.0.0",
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.7.2.13/Jellyfin.Plugin.MediaBarEnhanced.zip",
|
||||
"checksum": "60f05a0b795c860675970c51ef41a2e7",
|
||||
"timestamp": "2026-03-11T00:13:26Z"
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.8.0.0/Jellyfin.Plugin.MediaBarEnhanced.zip",
|
||||
"checksum": "0aac723796d41fc15987c94ac0476584",
|
||||
"timestamp": "2026-03-11T01:38:43Z"
|
||||
},
|
||||
{
|
||||
"version": "1.7.0.14",
|
||||
|
||||
Reference in New Issue
Block a user