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) => {