Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
926b30b8ce | ||
|
|
5b672cef42 | ||
|
|
ceccbf4ded | ||
|
|
9cba2a0755 | ||
|
|
af036a9aa4 | ||
|
|
cfefd2d2d3 | ||
|
|
8e7299508b | ||
|
|
fc7aa36f41 | ||
|
|
fc9896048f | ||
|
|
572c4d9ace | ||
|
|
2572e085f6 | ||
|
|
8297f989fd | ||
|
|
636aaa2a4a | ||
|
|
5e70621e93 |
@@ -38,18 +38,9 @@
|
||||
</label>
|
||||
<div class="fieldDescription">Automatically select the season based on the date.</div>
|
||||
</div>
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableClientSideToggle" name="EnableClientSideToggle" type="checkbox"
|
||||
is="emby-checkbox" />
|
||||
<span>Allow Client-Side Toggle</span>
|
||||
</label>
|
||||
<div class="fieldDescription">If enabled, users will see a settings icon in the header to toggle
|
||||
animations for their browser.</div>
|
||||
</div>
|
||||
<div class="selectContainer">
|
||||
<label class="selectLabel" for="SelectedSeason">Selected Season</label>
|
||||
<select is="emby-select" id="SelectedSeason" name="SelectedSeason" class="emby-select-withcolor emby-select">
|
||||
<select id="SelectedSeason" name="SelectedSeason" class="emby-select">
|
||||
<option value="none">None</option>
|
||||
<option value="snowflakes">Snowflakes</option>
|
||||
<option value="snowfall">Snowfall</option>
|
||||
@@ -72,6 +63,15 @@
|
||||
</select>
|
||||
<div class="fieldDescription">The season to display if automation is disabled.</div>
|
||||
</div>
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableClientSideToggle" name="EnableClientSideToggle" type="checkbox"
|
||||
is="emby-checkbox" />
|
||||
<span>Allow Client-Side Toggle</span>
|
||||
</label>
|
||||
<div class="fieldDescription">If enabled, users will see a settings icon in the header to toggle
|
||||
animations for their browser.</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<details>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> -->
|
||||
<Title>Jellyfin Seasonals Plugin</Title>
|
||||
<Authors>CodeDevMLH</Authors>
|
||||
<Version>1.6.2.0</Version>
|
||||
<Version>1.6.9.0</Version>
|
||||
<RepositoryUrl>https://github.com/CodeDevMLH/Jellyfin-Seasonals</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
BIN
Jellyfin.Plugin.Seasonals/Web/assets/logo_SW_24x24.png
Normal file
BIN
Jellyfin.Plugin.Seasonals/Web/assets/logo_SW_24x24.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
Jellyfin.Plugin.Seasonals/Web/assets/logo_SW_48x48.png
Normal file
BIN
Jellyfin.Plugin.Seasonals/Web/assets/logo_SW_48x48.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.4 KiB |
@@ -243,7 +243,8 @@ function createSettingsIcon() {
|
||||
button.type = 'button';
|
||||
button.className = 'paper-icon-button-light headerButton seasonal-settings-button';
|
||||
button.title = 'Seasonal Settings';
|
||||
button.innerHTML = '<span class="material-icons">ac_unit</span>';
|
||||
// button.innerHTML = '<span class="material-icons">ac_unit</span>';
|
||||
button.innerHTML = '<img src="/Seasonals/Resources/assets/logo_SW_24x24.png" style="width: 24px; height: 24px; vertical-align: middle;">';
|
||||
button.style.verticalAlign = 'middle';
|
||||
|
||||
button.addEventListener('click', (e) => {
|
||||
@@ -265,29 +266,38 @@ function createSettingsPopup(anchorElement) {
|
||||
position: 'fixed',
|
||||
zIndex: '10000',
|
||||
backgroundColor: '#202020',
|
||||
padding: '1.5em',
|
||||
borderRadius: '1em',
|
||||
padding: '1em',
|
||||
borderRadius: '0.3em',
|
||||
boxShadow: '0 0 20px rgba(0,0,0,0.5)',
|
||||
minWidth: '250px',
|
||||
minWidth: '200px',
|
||||
color: '#fff',
|
||||
maxWidth: '300px'
|
||||
maxWidth: '250px'
|
||||
});
|
||||
|
||||
const rect = anchorElement.getBoundingClientRect();
|
||||
|
||||
let rightPos = window.innerWidth - rect.right;
|
||||
if (window.innerWidth < 450 || (window.innerWidth - rightPos) < 260) {
|
||||
popup.style.right = '1rem';
|
||||
popup.style.left = 'auto';
|
||||
} else {
|
||||
popup.style.right = `${rightPos}px`;
|
||||
popup.style.left = 'auto';
|
||||
}
|
||||
|
||||
popup.style.top = `${rect.bottom + 10}px`;
|
||||
popup.style.right = `${window.innerWidth - rect.right}px`;
|
||||
|
||||
popup.innerHTML = `
|
||||
<div class="checkboxContainer checkboxContainer-withDescription" style="margin-bottom: 1.5em;">
|
||||
<div class="checkboxContainer checkboxContainer-withDescription" style="margin-bottom: 0.5em;">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="seasonal-enable-toggle" type="checkbox" is="emby-checkbox" class="emby-checkbox" />
|
||||
<span class="checkboxLabel">Enable Seasonals</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="selectContainer">
|
||||
<div class="selectContainer" style="margin-bottom: 0.5em;">
|
||||
<label class="selectLabel" for="seasonal-theme-select" style="margin-bottom: 0.5em; display: block; color: inherit;">Force Theme</label>
|
||||
<select is="emby-select" id="seasonal-theme-select" class="emby-select-withcolor emby-select" style="width: 100%; padding: 0.5em; background-color: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.1); color: inherit; border-radius: 4px;">
|
||||
<select id="seasonal-theme-select" class="emby-select" style="width: 100%; padding: 0.5em; background-color: #333; border: 1px solid #444; color: #fff; border-radius: 4px;">
|
||||
<option value="auto">Auto (Date Based)</option>
|
||||
</select>
|
||||
</div>
|
||||
@@ -310,7 +320,6 @@ function createSettingsPopup(anchorElement) {
|
||||
|
||||
themeSelect.value = getSavedSetting('seasonals-theme', 'auto');
|
||||
|
||||
// Event Listeners
|
||||
enabledCheckbox.addEventListener('change', (e) => {
|
||||
setSavedSetting('seasonals-enabled', e.target.checked);
|
||||
location.reload();
|
||||
@@ -321,7 +330,6 @@ function createSettingsPopup(anchorElement) {
|
||||
location.reload();
|
||||
});
|
||||
|
||||
// Close on click outside
|
||||
const closeHandler = (e) => {
|
||||
if (!popup.contains(e.target) && e.target !== anchorElement && !anchorElement.contains(e.target)) {
|
||||
popup.remove();
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
"imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Jellyfin-Seasonals-Plugin/raw/branch/main/logo.png",
|
||||
"versions": [
|
||||
{
|
||||
"version": "1.6.2.0",
|
||||
"version": "1.6.9.0",
|
||||
"changelog": "- feat: Add client-side toggle option for seasonal settings",
|
||||
"targetAbi": "10.11.0.0",
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Jellyfin-Seasonals-Plugin/releases/download/v1.6.2.0/Jellyfin.Plugin.Seasonals.zip",
|
||||
"checksum": "22e876cf0a20118e14f8e2a2c35bdd50",
|
||||
"timestamp": "2026-02-03T18:18:34Z"
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/Jellyfin-Seasonals-Plugin/releases/download/v1.6.9.0/Jellyfin.Plugin.Seasonals.zip",
|
||||
"checksum": "0785f56fc853e12a968fe5cec85d1c93",
|
||||
"timestamp": "2026-02-03T20:30:55Z"
|
||||
},
|
||||
{
|
||||
"version": "1.5.1.0",
|
||||
|
||||
Reference in New Issue
Block a user