Add client-side toggle option for seasonal settings
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 54s
All checks were successful
Auto Release Plugin / build-and-release (push) Successful in 54s
This commit is contained in:
@@ -15,6 +15,7 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
IsEnabled = true;
|
||||
SelectedSeason = "none";
|
||||
AutomateSeasonSelection = true;
|
||||
EnableClientSideToggle = true;
|
||||
|
||||
Autumn = new AutumnOptions();
|
||||
Snowflakes = new SnowflakesOptions();
|
||||
@@ -43,6 +44,14 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
/// </summary>
|
||||
public bool AutomateSeasonSelection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether to enable client-side toggle for users.
|
||||
/// </summary>
|
||||
public bool EnableClientSideToggle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Seasonals options.
|
||||
/// </summary>
|
||||
public AutumnOptions Autumn { get; set; }
|
||||
public SnowflakesOptions Snowflakes { get; set; }
|
||||
public SnowfallOptions Snowfall { get; set; }
|
||||
|
||||
@@ -6,17 +6,17 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="SeasonalsConfigPage" data-role="page" class="page type-interior pluginConfigurationPage" data-require="emby-input,emby-button,emby-select,emby-checkbox">
|
||||
<style>
|
||||
select option:disabled {
|
||||
color: #a3a3a3 !important;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
select option:disabled {
|
||||
color: #a3a3a3 !important;
|
||||
}
|
||||
</style>
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
<div class="sectionTitleContainer">
|
||||
<h2 class="sectionTitle">Seasonals</h2>
|
||||
<a is="emby-linkbutton" class="raised raised-mini emby-button" style="margin-left: 2em;"
|
||||
target="_blank" href="https://github.com/CodeDevMLH/Jellyfin-Seasonals">
|
||||
target="_blank" href="https://github.com/CodeDevMLH/Jellyfin-Seasonals">
|
||||
<i class="md-icon button-icon button-icon-left secondaryText"></i>
|
||||
<span>Help</span>
|
||||
</a>
|
||||
@@ -38,6 +38,15 @@
|
||||
</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">
|
||||
@@ -530,7 +539,8 @@
|
||||
document.querySelector('#IsEnabled').checked = config.IsEnabled;
|
||||
document.querySelector('#SelectedSeason').value = config.SelectedSeason;
|
||||
document.querySelector('#AutomateSeasonSelection').checked = config.AutomateSeasonSelection;
|
||||
|
||||
document.querySelector('#EnableClientSideToggle').checked = config.EnableClientSideToggle !== undefined ? config.EnableClientSideToggle : true;
|
||||
|
||||
// Advanced Config
|
||||
// Autumn
|
||||
document.querySelector('#EnableAutumn').checked = config.Autumn.EnableAutumn;
|
||||
@@ -621,98 +631,100 @@
|
||||
|
||||
document.querySelector('#SeasonalsConfigForm')
|
||||
.addEventListener('submit', function(e) {
|
||||
Dashboard.showLoadingMsg();
|
||||
ApiClient.getPluginConfiguration(SeasonalsConfig.pluginUniqueId).then(function (config) {
|
||||
config.IsEnabled = document.querySelector('#IsEnabled').checked;
|
||||
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;
|
||||
Dashboard.showLoadingMsg();
|
||||
ApiClient.getPluginConfiguration(SeasonalsConfig.pluginUniqueId).then(function (config) {
|
||||
config.IsEnabled = document.querySelector('#IsEnabled').checked;
|
||||
config.SelectedSeason = document.querySelector('#SelectedSeason').value;
|
||||
config.AutomateSeasonSelection = document.querySelector('#AutomateSeasonSelection').checked;
|
||||
config.EnableClientSideToggle = document.querySelector('#EnableClientSideToggle').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);
|
||||
// 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;
|
||||
|
||||
// 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);
|
||||
// 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;
|
||||
|
||||
// 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);
|
||||
// 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);
|
||||
|
||||
// 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;
|
||||
// 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);
|
||||
|
||||
// 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;
|
||||
// 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);
|
||||
|
||||
// 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;
|
||||
// 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;
|
||||
|
||||
// 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);
|
||||
// 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;
|
||||
|
||||
// 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);
|
||||
// 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;
|
||||
|
||||
ApiClient.updatePluginConfiguration(SeasonalsConfig.pluginUniqueId, config).then(function (result) {
|
||||
Dashboard.processPluginConfigurationUpdateResult(result);
|
||||
// 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