feat: Bump version to 1.1.0.0 and add advanced configuration options for seasonal effects
Enhanced JavaScript files for autumn, christmas, easter, fireworks, halloween, hearts, santa, snowfall, snowflakes, and snowstorm to support configuration options via window.SeasonalsPluginConfig. Added automatic theme selection based on date in README.md.
This commit is contained in:
@@ -14,6 +14,17 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
{
|
||||
SelectedSeason = "none";
|
||||
AutomateSeasonSelection = true;
|
||||
|
||||
Autumn = new AutumnOptions();
|
||||
Snowflakes = new SnowflakesOptions();
|
||||
Snowfall = new SnowfallOptions();
|
||||
Snowstorm = new SnowstormOptions();
|
||||
Fireworks = new FireworksOptions();
|
||||
Halloween = new HalloweenOptions();
|
||||
Hearts = new HeartsOptions();
|
||||
Christmas = new ChristmasOptions();
|
||||
Santa = new SantaOptions();
|
||||
Easter = new EasterOptions();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -25,4 +36,118 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
/// Gets or sets a value indicating whether to automate season selection.
|
||||
/// </summary>
|
||||
public bool AutomateSeasonSelection { get; set; }
|
||||
|
||||
public AutumnOptions Autumn { get; set; }
|
||||
public SnowflakesOptions Snowflakes { get; set; }
|
||||
public SnowfallOptions Snowfall { get; set; }
|
||||
public SnowstormOptions Snowstorm { get; set; }
|
||||
public FireworksOptions Fireworks { get; set; }
|
||||
public HalloweenOptions Halloween { get; set; }
|
||||
public HeartsOptions Hearts { get; set; }
|
||||
public ChristmasOptions Christmas { get; set; }
|
||||
public SantaOptions Santa { get; set; }
|
||||
public EasterOptions Easter { get; set; }
|
||||
}
|
||||
|
||||
public class AutumnOptions
|
||||
{
|
||||
public int LeafCount { get; set; } = 25;
|
||||
public bool EnableAutumn { get; set; } = true;
|
||||
public bool EnableRandomLeaves { get; set; } = true;
|
||||
public bool EnableRandomLeavesMobile { get; set; } = false;
|
||||
public bool EnableDifferentDuration { get; set; } = true;
|
||||
public bool EnableRotation { get; set; } = false;
|
||||
}
|
||||
|
||||
public class SnowflakesOptions
|
||||
{
|
||||
public int SnowflakeCount { get; set; } = 25;
|
||||
public bool EnableSnowflakes { get; set; } = true;
|
||||
public bool EnableRandomSnowflakes { get; set; } = true;
|
||||
public bool EnableRandomSnowflakesMobile { get; set; } = false;
|
||||
public bool EnableColoredSnowflakes { get; set; } = true;
|
||||
public bool EnableDifferentDuration { get; set; } = true;
|
||||
}
|
||||
|
||||
public class SnowfallOptions
|
||||
{
|
||||
public int SnowflakesCount { get; set; } = 500;
|
||||
public int SnowflakesCountMobile { get; set; } = 250;
|
||||
public double Speed { get; set; } = 3;
|
||||
public bool EnableSnowfall { get; set; } = true;
|
||||
}
|
||||
|
||||
public class SnowstormOptions
|
||||
{
|
||||
public int SnowflakesCount { get; set; } = 500;
|
||||
public int SnowflakesCountMobile { get; set; } = 250;
|
||||
public double Speed { get; set; } = 6;
|
||||
public bool EnableSnowstorm { get; set; } = true;
|
||||
public double HorizontalWind { get; set; } = 4;
|
||||
public double VerticalVariation { get; set; } = 2;
|
||||
}
|
||||
|
||||
public class FireworksOptions
|
||||
{
|
||||
public int ParticleCount { get; set; } = 50;
|
||||
public int LaunchInterval { get; set; } = 3200;
|
||||
public bool EnableFireworks { get; set; } = true;
|
||||
public bool ScrollFireworks { get; set; } = true;
|
||||
public int MinFireworks { get; set; } = 3;
|
||||
public int MaxFireworks { get; set; } = 6;
|
||||
}
|
||||
|
||||
public class HalloweenOptions
|
||||
{
|
||||
public int SymbolCount { get; set; } = 25;
|
||||
public bool EnableHalloween { get; set; } = true;
|
||||
public bool EnableRandomSymbols { get; set; } = true;
|
||||
public bool EnableRandomSymbolsMobile { get; set; } = false;
|
||||
public bool EnableDifferentDuration { get; set; } = true;
|
||||
}
|
||||
|
||||
public class HeartsOptions
|
||||
{
|
||||
public int SymbolCount { get; set; } = 25;
|
||||
public bool EnableHearts { get; set; } = true;
|
||||
public bool EnableRandomSymbols { get; set; } = true;
|
||||
public bool EnableRandomSymbolsMobile { get; set; } = false;
|
||||
public bool EnableDifferentDuration { get; set; } = true;
|
||||
}
|
||||
|
||||
public class ChristmasOptions
|
||||
{
|
||||
public int SymbolCount { get; set; } = 25;
|
||||
public bool EnableChristmas { get; set; } = true;
|
||||
public bool EnableRandomChristmas { get; set; } = true;
|
||||
public bool EnableRandomChristmasMobile { get; set; } = false;
|
||||
public bool EnableDifferentDuration { get; set; } = true;
|
||||
}
|
||||
|
||||
public class SantaOptions
|
||||
{
|
||||
public int SnowflakesCount { get; set; } = 500;
|
||||
public int SnowflakesCountMobile { get; set; } = 250;
|
||||
public double SantaSpeed { get; set; } = 10;
|
||||
public double SantaSpeedMobile { get; set; } = 8;
|
||||
public bool EnableSanta { get; set; } = true;
|
||||
public double SnowFallSpeed { get; set; } = 3;
|
||||
public double MaxSantaRestTime { get; set; } = 8;
|
||||
public double MinSantaRestTime { get; set; } = 3;
|
||||
public double MaxPresentFallSpeed { get; set; } = 5;
|
||||
public double MinPresentFallSpeed { get; set; } = 2;
|
||||
}
|
||||
|
||||
public class EasterOptions
|
||||
{
|
||||
public int EggCount { get; set; } = 20;
|
||||
public bool EnableEaster { get; set; } = true;
|
||||
public bool EnableRandomEaster { get; set; } = true;
|
||||
public bool EnableRandomEasterMobile { get; set; } = false;
|
||||
public bool EnableDifferentDuration { get; set; } = true;
|
||||
public bool EnableBunny { get; set; } = true;
|
||||
public int BunnyDuration { get; set; } = 12000;
|
||||
public int HopHeight { get; set; } = 12;
|
||||
public int MinBunnyRestTime { get; set; } = 2000;
|
||||
public int MaxBunnyRestTime { get; set; } = 5000;
|
||||
}
|
||||
|
||||
@@ -33,9 +33,357 @@
|
||||
</select>
|
||||
<div class="fieldDescription">The season to display if automation is disabled.</div>
|
||||
</div>
|
||||
|
||||
<div is="emby-collapse" title="Advanced Configuration">
|
||||
<div class="collapseContent">
|
||||
<h3>Autumn</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableAutumn" name="EnableAutumn" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Autumn</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="AutumnLeafCount">Leaf Count</label>
|
||||
<input is="emby-input" type="number" id="AutumnLeafCount" name="AutumnLeafCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomLeaves" name="EnableRandomLeaves" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Leaves</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomLeavesMobile" name="EnableRandomLeavesMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Leaves on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationAutumn" name="EnableDifferentDurationAutumn" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRotation" name="EnableRotation" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Rotation</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Snowflakes</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSnowflakes" name="EnableSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Snowflakes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowflakesCount">Snowflake Count</label>
|
||||
<input is="emby-input" type="number" id="SnowflakesCount" name="SnowflakesCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomSnowflakes" name="EnableRandomSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Snowflakes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomSnowflakesMobile" name="EnableRandomSnowflakesMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Snowflakes on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableColoredSnowflakes" name="EnableColoredSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Colored Snowflakes</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationSnowflakes" name="EnableDifferentDurationSnowflakes" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Snowfall</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSnowfall" name="EnableSnowfall" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Snowfall</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowfallCount">Snowflake Count</label>
|
||||
<input is="emby-input" type="number" id="SnowfallCount" name="SnowfallCount" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowfallCountMobile">Snowflake Count (Mobile)</label>
|
||||
<input is="emby-input" type="number" id="SnowfallCountMobile" name="SnowfallCountMobile" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowfallSpeed">Speed</label>
|
||||
<input is="emby-input" type="number" id="SnowfallSpeed" name="SnowfallSpeed" step="0.1" />
|
||||
</div>
|
||||
|
||||
<h3>Snowstorm</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSnowstorm" name="EnableSnowstorm" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Snowstorm</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormCount">Snowflake Count</label>
|
||||
<input is="emby-input" type="number" id="SnowstormCount" name="SnowstormCount" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormCountMobile">Snowflake Count (Mobile)</label>
|
||||
<input is="emby-input" type="number" id="SnowstormCountMobile" name="SnowstormCountMobile" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormSpeed">Speed</label>
|
||||
<input is="emby-input" type="number" id="SnowstormSpeed" name="SnowstormSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormHorizontalWind">Horizontal Wind</label>
|
||||
<input is="emby-input" type="number" id="SnowstormHorizontalWind" name="SnowstormHorizontalWind" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SnowstormVerticalVariation">Vertical Variation</label>
|
||||
<input is="emby-input" type="number" id="SnowstormVerticalVariation" name="SnowstormVerticalVariation" step="0.1" />
|
||||
</div>
|
||||
|
||||
<h3>Fireworks</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableFireworks" name="EnableFireworks" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Fireworks</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="FireworksParticles">Particle Count</label>
|
||||
<input is="emby-input" type="number" id="FireworksParticles" name="FireworksParticles" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="FireworksInterval">Launch Interval (ms)</label>
|
||||
<input is="emby-input" type="number" id="FireworksInterval" name="FireworksInterval" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="ScrollFireworks" name="ScrollFireworks" type="checkbox" is="emby-checkbox" />
|
||||
<span>Scroll Fireworks</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinFireworks">Min Fireworks</label>
|
||||
<input is="emby-input" type="number" id="MinFireworks" name="MinFireworks" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxFireworks">Max Fireworks</label>
|
||||
<input is="emby-input" type="number" id="MaxFireworks" name="MaxFireworks" />
|
||||
</div>
|
||||
|
||||
<h3>Halloween</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableHalloween" name="EnableHalloween" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Halloween</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="HalloweenCount">Symbol Count</label>
|
||||
<input is="emby-input" type="number" id="HalloweenCount" name="HalloweenCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHalloween" name="EnableRandomHalloween" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHalloweenMobile" name="EnableRandomHalloweenMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationHalloween" name="EnableDifferentDurationHalloween" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Hearts</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableHearts" name="EnableHearts" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Hearts</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="HeartsCount">Symbol Count</label>
|
||||
<input is="emby-input" type="number" id="HeartsCount" name="HeartsCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHearts" name="EnableRandomHearts" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomHeartsMobile" name="EnableRandomHeartsMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Symbols on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationHearts" name="EnableDifferentDurationHearts" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Christmas</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableChristmas" name="EnableChristmas" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Christmas</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="ChristmasCount">Symbol Count</label>
|
||||
<input is="emby-input" type="number" id="ChristmasCount" name="ChristmasCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomChristmas" name="EnableRandomChristmas" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Christmas</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomChristmasMobile" name="EnableRandomChristmasMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Christmas on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationChristmas" name="EnableDifferentDurationChristmas" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<h3>Santa</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableSanta" name="EnableSanta" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Santa</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSnowflakes">Snowflakes Count</label>
|
||||
<input is="emby-input" type="number" id="SantaSnowflakes" name="SantaSnowflakes" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSnowflakesMobile">Snowflakes Count (Mobile)</label>
|
||||
<input is="emby-input" type="number" id="SantaSnowflakesMobile" name="SantaSnowflakesMobile" />
|
||||
<div class="fieldDescription">Warning: High values may affect performance</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSpeed">Santa Speed (seconds)</label>
|
||||
<input is="emby-input" type="number" id="SantaSpeed" name="SantaSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSpeedMobile">Santa Speed Mobile (seconds)</label>
|
||||
<input is="emby-input" type="number" id="SantaSpeedMobile" name="SantaSpeedMobile" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="SantaSnowFallSpeed">Snowfall Speed</label>
|
||||
<input is="emby-input" type="number" id="SantaSnowFallSpeed" name="SantaSnowFallSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxSantaRestTime">Max Santa Rest Time (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MaxSantaRestTime" name="MaxSantaRestTime" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinSantaRestTime">Min Santa Rest Time (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MinSantaRestTime" name="MinSantaRestTime" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxPresentFallSpeed">Max Present Fall Speed (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MaxPresentFallSpeed" name="MaxPresentFallSpeed" step="0.1" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinPresentFallSpeed">Min Present Fall Speed (seconds)</label>
|
||||
<input is="emby-input" type="number" id="MinPresentFallSpeed" name="MinPresentFallSpeed" step="0.1" />
|
||||
</div>
|
||||
|
||||
<h3>Easter</h3>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableEaster" name="EnableEaster" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Easter</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="EasterEggCount">Egg Count</label>
|
||||
<input is="emby-input" type="number" id="EasterEggCount" name="EasterEggCount" />
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomEaster" name="EnableRandomEaster" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Easter</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableRandomEasterMobile" name="EnableRandomEasterMobile" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Random Easter on Mobile (Warning: High values may affect performance)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EnableDifferentDurationEaster" name="EnableDifferentDurationEaster" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Different Duration</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkboxContainer">
|
||||
<label class="emby-checkbox-label">
|
||||
<input id="EasterBunny" name="EasterBunny" type="checkbox" is="emby-checkbox" />
|
||||
<span>Enable Bunny</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="BunnyDuration">Bunny Duration (ms)</label>
|
||||
<input is="emby-input" type="number" id="BunnyDuration" name="BunnyDuration" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="HopHeight">Hop Height (px)</label>
|
||||
<input is="emby-input" type="number" id="HopHeight" name="HopHeight" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MinBunnyRestTime">Min Bunny Rest Time (ms)</label>
|
||||
<input is="emby-input" type="number" id="MinBunnyRestTime" name="MinBunnyRestTime" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<label class="inputLabel" for="MaxBunnyRestTime">Max Bunny Rest Time (ms)</label>
|
||||
<input is="emby-input" type="number" id="MaxBunnyRestTime" name="MaxBunnyRestTime" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button is="emby-button" type="submit" class="raised button-submit block emby-button">
|
||||
<span>Save</span>
|
||||
<span>${Save}</span>
|
||||
</button>
|
||||
<button is="emby-button" type="button" class="raised button-cancel block btnCancel" onclick="history.back();">
|
||||
<span>${ButtonCancel}</span>
|
||||
</button>
|
||||
<div class="fieldDescription" style="margin-top: 1em;">Please reload the page (F5) after saving for changes to take effect.</div>
|
||||
</div>
|
||||
@@ -53,6 +401,91 @@
|
||||
ApiClient.getPluginConfiguration(SeasonalsConfig.pluginUniqueId).then(function (config) {
|
||||
document.querySelector('#SelectedSeason').value = config.SelectedSeason;
|
||||
document.querySelector('#AutomateSeasonSelection').checked = config.AutomateSeasonSelection;
|
||||
|
||||
// Advanced Config
|
||||
// Autumn
|
||||
document.querySelector('#EnableAutumn').checked = config.Autumn.EnableAutumn;
|
||||
document.querySelector('#AutumnLeafCount').value = config.Autumn.LeafCount;
|
||||
document.querySelector('#EnableRandomLeaves').checked = config.Autumn.EnableRandomLeaves;
|
||||
document.querySelector('#EnableRandomLeavesMobile').checked = config.Autumn.EnableRandomLeavesMobile;
|
||||
document.querySelector('#EnableDifferentDurationAutumn').checked = config.Autumn.EnableDifferentDuration;
|
||||
document.querySelector('#EnableRotation').checked = config.Autumn.EnableRotation;
|
||||
|
||||
// Snowflakes
|
||||
document.querySelector('#SnowflakesCount').value = config.Snowflakes.SnowflakeCount;
|
||||
document.querySelector('#EnableSnowflakes').checked = config.Snowflakes.EnableSnowflakes;
|
||||
document.querySelector('#EnableRandomSnowflakes').checked = config.Snowflakes.EnableRandomSnowflakes;
|
||||
document.querySelector('#EnableRandomSnowflakesMobile').checked = config.Snowflakes.EnableRandomSnowflakesMobile;
|
||||
document.querySelector('#EnableColoredSnowflakes').checked = config.Snowflakes.EnableColoredSnowflakes;
|
||||
document.querySelector('#EnableDifferentDurationSnowflakes').checked = config.Snowflakes.EnableDifferentDuration;
|
||||
|
||||
// Snowfall
|
||||
document.querySelector('#EnableSnowfall').checked = config.Snowfall.EnableSnowfall;
|
||||
document.querySelector('#SnowfallCount').value = config.Snowfall.SnowflakesCount;
|
||||
document.querySelector('#SnowfallCountMobile').value = config.Snowfall.SnowflakesCountMobile;
|
||||
document.querySelector('#SnowfallSpeed').value = config.Snowfall.Speed;
|
||||
|
||||
// Snowstorm
|
||||
document.querySelector('#EnableSnowstorm').checked = config.Snowstorm.EnableSnowstorm;
|
||||
document.querySelector('#SnowstormCount').value = config.Snowstorm.SnowflakesCount;
|
||||
document.querySelector('#SnowstormCountMobile').value = config.Snowstorm.SnowflakesCountMobile;
|
||||
document.querySelector('#SnowstormSpeed').value = config.Snowstorm.Speed;
|
||||
document.querySelector('#SnowstormHorizontalWind').value = config.Snowstorm.HorizontalWind;
|
||||
document.querySelector('#SnowstormVerticalVariation').value = config.Snowstorm.VerticalVariation;
|
||||
|
||||
// Fireworks
|
||||
document.querySelector('#EnableFireworks').checked = config.Fireworks.EnableFireworks;
|
||||
document.querySelector('#FireworksParticles').value = config.Fireworks.ParticleCount;
|
||||
document.querySelector('#FireworksInterval').value = config.Fireworks.LaunchInterval;
|
||||
document.querySelector('#ScrollFireworks').checked = config.Fireworks.ScrollFireworks;
|
||||
document.querySelector('#MinFireworks').value = config.Fireworks.MinFireworks;
|
||||
document.querySelector('#MaxFireworks').value = config.Fireworks.MaxFireworks;
|
||||
|
||||
// Halloween
|
||||
document.querySelector('#EnableHalloween').checked = config.Halloween.EnableHalloween;
|
||||
document.querySelector('#HalloweenCount').value = config.Halloween.SymbolCount;
|
||||
document.querySelector('#EnableRandomHalloween').checked = config.Halloween.EnableRandomSymbols;
|
||||
document.querySelector('#EnableRandomHalloweenMobile').checked = config.Halloween.EnableRandomSymbolsMobile;
|
||||
document.querySelector('#EnableDifferentDurationHalloween').checked = config.Halloween.EnableDifferentDuration;
|
||||
|
||||
// Hearts
|
||||
document.querySelector('#EnableHearts').checked = config.Hearts.EnableHearts;
|
||||
document.querySelector('#HeartsCount').value = config.Hearts.SymbolCount;
|
||||
document.querySelector('#EnableRandomHearts').checked = config.Hearts.EnableRandomSymbols;
|
||||
document.querySelector('#EnableRandomHeartsMobile').checked = config.Hearts.EnableRandomSymbolsMobile;
|
||||
document.querySelector('#EnableDifferentDurationHearts').checked = config.Hearts.EnableDifferentDuration;
|
||||
|
||||
// Christmas
|
||||
document.querySelector('#EnableChristmas').checked = config.Christmas.EnableChristmas;
|
||||
document.querySelector('#ChristmasCount').value = config.Christmas.SymbolCount;
|
||||
document.querySelector('#EnableRandomChristmas').checked = config.Christmas.EnableRandomChristmas;
|
||||
document.querySelector('#EnableRandomChristmasMobile').checked = config.Christmas.EnableRandomChristmasMobile;
|
||||
document.querySelector('#EnableDifferentDurationChristmas').checked = config.Christmas.EnableDifferentDuration;
|
||||
|
||||
// Santa
|
||||
document.querySelector('#EnableSanta').checked = config.Santa.EnableSanta;
|
||||
document.querySelector('#SantaSnowflakes').value = config.Santa.SnowflakesCount;
|
||||
document.querySelector('#SantaSnowflakesMobile').value = config.Santa.SnowflakesCountMobile;
|
||||
document.querySelector('#SantaSpeed').value = config.Santa.SantaSpeed;
|
||||
document.querySelector('#SantaSpeedMobile').value = config.Santa.SantaSpeedMobile;
|
||||
document.querySelector('#SantaSnowFallSpeed').value = config.Santa.SnowFallSpeed;
|
||||
document.querySelector('#MaxSantaRestTime').value = config.Santa.MaxSantaRestTime;
|
||||
document.querySelector('#MinSantaRestTime').value = config.Santa.MinSantaRestTime;
|
||||
document.querySelector('#MaxPresentFallSpeed').value = config.Santa.MaxPresentFallSpeed;
|
||||
document.querySelector('#MinPresentFallSpeed').value = config.Santa.MinPresentFallSpeed;
|
||||
|
||||
// Easter
|
||||
document.querySelector('#EnableEaster').checked = config.Easter.EnableEaster;
|
||||
document.querySelector('#EasterEggCount').value = config.Easter.EggCount;
|
||||
document.querySelector('#EnableRandomEaster').checked = config.Easter.EnableRandomEaster;
|
||||
document.querySelector('#EnableRandomEasterMobile').checked = config.Easter.EnableRandomEasterMobile;
|
||||
document.querySelector('#EnableDifferentDurationEaster').checked = config.Easter.EnableDifferentDuration;
|
||||
document.querySelector('#EasterBunny').checked = config.Easter.EnableBunny;
|
||||
document.querySelector('#BunnyDuration').value = config.Easter.BunnyDuration;
|
||||
document.querySelector('#HopHeight').value = config.Easter.HopHeight;
|
||||
document.querySelector('#MinBunnyRestTime').value = config.Easter.MinBunnyRestTime;
|
||||
document.querySelector('#MaxBunnyRestTime').value = config.Easter.MaxBunnyRestTime;
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
});
|
||||
@@ -63,6 +496,91 @@
|
||||
ApiClient.getPluginConfiguration(SeasonalsConfig.pluginUniqueId).then(function (config) {
|
||||
config.SelectedSeason = document.querySelector('#SelectedSeason').value;
|
||||
config.AutomateSeasonSelection = document.querySelector('#AutomateSeasonSelection').checked;
|
||||
|
||||
// Advanced Config
|
||||
// Autumn
|
||||
config.Autumn.EnableAutumn = document.querySelector('#EnableAutumn').checked;
|
||||
config.Autumn.LeafCount = parseInt(document.querySelector('#AutumnLeafCount').value);
|
||||
config.Autumn.EnableRandomLeaves = document.querySelector('#EnableRandomLeaves').checked;
|
||||
config.Autumn.EnableRandomLeavesMobile = document.querySelector('#EnableRandomLeavesMobile').checked;
|
||||
config.Autumn.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationAutumn').checked;
|
||||
config.Autumn.EnableRotation = document.querySelector('#EnableRotation').checked;
|
||||
|
||||
// Snowflakes
|
||||
config.Snowflakes.SnowflakeCount = parseInt(document.querySelector('#SnowflakesCount').value);
|
||||
config.Snowflakes.EnableSnowflakes = document.querySelector('#EnableSnowflakes').checked;
|
||||
config.Snowflakes.EnableRandomSnowflakes = document.querySelector('#EnableRandomSnowflakes').checked;
|
||||
config.Snowflakes.EnableRandomSnowflakesMobile = document.querySelector('#EnableRandomSnowflakesMobile').checked;
|
||||
config.Snowflakes.EnableColoredSnowflakes = document.querySelector('#EnableColoredSnowflakes').checked;
|
||||
config.Snowflakes.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationSnowflakes').checked;
|
||||
|
||||
// Snowfall
|
||||
config.Snowfall.EnableSnowfall = document.querySelector('#EnableSnowfall').checked;
|
||||
config.Snowfall.SnowflakesCount = parseInt(document.querySelector('#SnowfallCount').value);
|
||||
config.Snowfall.SnowflakesCountMobile = parseInt(document.querySelector('#SnowfallCountMobile').value);
|
||||
config.Snowfall.Speed = parseFloat(document.querySelector('#SnowfallSpeed').value);
|
||||
|
||||
// Snowstorm
|
||||
config.Snowstorm.EnableSnowstorm = document.querySelector('#EnableSnowstorm').checked;
|
||||
config.Snowstorm.SnowflakesCount = parseInt(document.querySelector('#SnowstormCount').value);
|
||||
config.Snowstorm.SnowflakesCountMobile = parseInt(document.querySelector('#SnowstormCountMobile').value);
|
||||
config.Snowstorm.Speed = parseFloat(document.querySelector('#SnowstormSpeed').value);
|
||||
config.Snowstorm.HorizontalWind = parseFloat(document.querySelector('#SnowstormHorizontalWind').value);
|
||||
config.Snowstorm.VerticalVariation = parseFloat(document.querySelector('#SnowstormVerticalVariation').value);
|
||||
|
||||
// Fireworks
|
||||
config.Fireworks.EnableFireworks = document.querySelector('#EnableFireworks').checked;
|
||||
config.Fireworks.ParticleCount = parseInt(document.querySelector('#FireworksParticles').value);
|
||||
config.Fireworks.LaunchInterval = parseInt(document.querySelector('#FireworksInterval').value);
|
||||
config.Fireworks.ScrollFireworks = document.querySelector('#ScrollFireworks').checked;
|
||||
config.Fireworks.MinFireworks = parseInt(document.querySelector('#MinFireworks').value);
|
||||
config.Fireworks.MaxFireworks = parseInt(document.querySelector('#MaxFireworks').value);
|
||||
|
||||
// Halloween
|
||||
config.Halloween.EnableHalloween = document.querySelector('#EnableHalloween').checked;
|
||||
config.Halloween.SymbolCount = parseInt(document.querySelector('#HalloweenCount').value);
|
||||
config.Halloween.EnableRandomSymbols = document.querySelector('#EnableRandomHalloween').checked;
|
||||
config.Halloween.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomHalloweenMobile').checked;
|
||||
config.Halloween.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationHalloween').checked;
|
||||
|
||||
// Hearts
|
||||
config.Hearts.EnableHearts = document.querySelector('#EnableHearts').checked;
|
||||
config.Hearts.SymbolCount = parseInt(document.querySelector('#HeartsCount').value);
|
||||
config.Hearts.EnableRandomSymbols = document.querySelector('#EnableRandomHearts').checked;
|
||||
config.Hearts.EnableRandomSymbolsMobile = document.querySelector('#EnableRandomHeartsMobile').checked;
|
||||
config.Hearts.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationHearts').checked;
|
||||
|
||||
// Christmas
|
||||
config.Christmas.EnableChristmas = document.querySelector('#EnableChristmas').checked;
|
||||
config.Christmas.SymbolCount = parseInt(document.querySelector('#ChristmasCount').value);
|
||||
config.Christmas.EnableRandomChristmas = document.querySelector('#EnableRandomChristmas').checked;
|
||||
config.Christmas.EnableRandomChristmasMobile = document.querySelector('#EnableRandomChristmasMobile').checked;
|
||||
config.Christmas.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationChristmas').checked;
|
||||
|
||||
// Santa
|
||||
config.Santa.EnableSanta = document.querySelector('#EnableSanta').checked;
|
||||
config.Santa.SnowflakesCount = parseInt(document.querySelector('#SantaSnowflakes').value);
|
||||
config.Santa.SnowflakesCountMobile = parseInt(document.querySelector('#SantaSnowflakesMobile').value);
|
||||
config.Santa.SantaSpeed = parseFloat(document.querySelector('#SantaSpeed').value);
|
||||
config.Santa.SantaSpeedMobile = parseFloat(document.querySelector('#SantaSpeedMobile').value);
|
||||
config.Santa.SnowFallSpeed = parseFloat(document.querySelector('#SantaSnowFallSpeed').value);
|
||||
config.Santa.MaxSantaRestTime = parseFloat(document.querySelector('#MaxSantaRestTime').value);
|
||||
config.Santa.MinSantaRestTime = parseFloat(document.querySelector('#MinSantaRestTime').value);
|
||||
config.Santa.MaxPresentFallSpeed = parseFloat(document.querySelector('#MaxPresentFallSpeed').value);
|
||||
config.Santa.MinPresentFallSpeed = parseFloat(document.querySelector('#MinPresentFallSpeed').value);
|
||||
|
||||
// Easter
|
||||
config.Easter.EnableEaster = document.querySelector('#EnableEaster').checked;
|
||||
config.Easter.EggCount = parseInt(document.querySelector('#EasterEggCount').value);
|
||||
config.Easter.EnableRandomEaster = document.querySelector('#EnableRandomEaster').checked;
|
||||
config.Easter.EnableRandomEasterMobile = document.querySelector('#EnableRandomEasterMobile').checked;
|
||||
config.Easter.EnableDifferentDuration = document.querySelector('#EnableDifferentDurationEaster').checked;
|
||||
config.Easter.EnableBunny = document.querySelector('#EasterBunny').checked;
|
||||
config.Easter.BunnyDuration = parseInt(document.querySelector('#BunnyDuration').value);
|
||||
config.Easter.HopHeight = parseInt(document.querySelector('#HopHeight').value);
|
||||
config.Easter.MinBunnyRestTime = parseInt(document.querySelector('#MinBunnyRestTime').value);
|
||||
config.Easter.MaxBunnyRestTime = parseInt(document.querySelector('#MaxBunnyRestTime').value);
|
||||
|
||||
ApiClient.updatePluginConfiguration(SeasonalsConfig.pluginUniqueId, config).then(function (result) {
|
||||
Dashboard.processPluginConfigurationUpdateResult(result);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user