From e281f5c5798916c6049b93d3fb76458b0eea5a15 Mon Sep 17 00:00:00 2001 From: CodeDevMLH <145071728+CodeDevMLH@users.noreply.github.com> Date: Tue, 3 Feb 2026 19:08:02 +0100 Subject: [PATCH] test other ui design --- Jellyfin.Plugin.Seasonals/Web/seasonals.js | 94 ++++++++++------------ 1 file changed, 42 insertions(+), 52 deletions(-) diff --git a/Jellyfin.Plugin.Seasonals/Web/seasonals.js b/Jellyfin.Plugin.Seasonals/Web/seasonals.js index c338d0b..c81ae6d 100644 --- a/Jellyfin.Plugin.Seasonals/Web/seasonals.js +++ b/Jellyfin.Plugin.Seasonals/Web/seasonals.js @@ -265,63 +265,44 @@ function createSettingsPopup(anchorElement) { position: 'fixed', zIndex: '10000', backgroundColor: '#202020', - padding: '1em', - borderRadius: '4px', + padding: '1.5em', + borderRadius: '1em', boxShadow: '0 0 20px rgba(0,0,0,0.5)', - minWidth: '200px', - color: '#fff' + minWidth: '250px', + color: '#fff', + maxWidth: '300px' }); const rect = anchorElement.getBoundingClientRect(); popup.style.top = `${rect.bottom + 10}px`; popup.style.right = `${window.innerWidth - rect.right}px`; - const enabledContainer = document.createElement('div'); - enabledContainer.style.marginBottom = '1em'; - enabledContainer.style.display = 'flex'; - enabledContainer.style.alignItems = 'center'; - enabledContainer.style.justifyContent = 'space-between'; + popup.innerHTML = ` +

Seasonals

+ +
+ +
- const enabledLabel = document.createElement('label'); - enabledLabel.textContent = 'Enable Seasonals'; - enabledLabel.style.marginRight = '10px'; +
+ + +
+ +
+ +
+ `; - const enabledCheckbox = document.createElement('input'); - enabledCheckbox.type = 'checkbox'; - enabledCheckbox.checked = getSavedSetting('seasonals-enabled', 'true') === 'true'; - enabledCheckbox.addEventListener('change', (e) => { - setSavedSetting('seasonals-enabled', e.target.checked); - location.reload(); - }); - - enabledContainer.appendChild(enabledLabel); - enabledContainer.appendChild(enabledCheckbox); - popup.appendChild(enabledContainer); - - // Theme Selector - const themeContainer = document.createElement('div'); - themeContainer.style.display = 'flex'; - themeContainer.style.flexDirection = 'column'; - - const themeLabel = document.createElement('label'); - themeLabel.textContent = 'Force Theme'; - themeLabel.style.marginBottom = '0.5em'; - - const themeSelect = document.createElement('select'); - themeSelect.style.width = '100%'; - themeSelect.style.padding = '0.5em'; - themeSelect.style.backgroundColor = '#333'; - themeSelect.style.color = '#fff'; - themeSelect.style.border = '1px solid #444'; - themeSelect.style.borderRadius = '4px'; - - // Add Auto option - const autoOption = document.createElement('option'); - autoOption.value = 'auto'; - autoOption.textContent = 'Auto (Date Based)'; - themeSelect.appendChild(autoOption); - - // Add available themes + // Populate Select Options + const themeSelect = popup.querySelector('#seasonal-theme-select'); Object.keys(themeConfigs).forEach(key => { if (key === 'none') return; const option = document.createElement('option'); @@ -331,17 +312,26 @@ function createSettingsPopup(anchorElement) { themeSelect.appendChild(option); }); - // Set current value + // Set Initial Values + const enabledCheckbox = popup.querySelector('#seasonal-enable-toggle'); + enabledCheckbox.checked = getSavedSetting('seasonals-enabled', 'true') === 'true'; + themeSelect.value = getSavedSetting('seasonals-theme', 'auto'); + // Event Listeners + enabledCheckbox.addEventListener('change', (e) => { + setSavedSetting('seasonals-enabled', e.target.checked); + location.reload(); + }); + themeSelect.addEventListener('change', (e) => { setSavedSetting('seasonals-theme', e.target.value); location.reload(); }); - themeContainer.appendChild(themeLabel); - themeContainer.appendChild(themeSelect); - popup.appendChild(themeContainer); + popup.querySelector('#seasonal-close-btn').addEventListener('click', () => { + popup.remove(); + }); // Close on click outside const closeHandler = (e) => {