Browse Source

allow block durations with 5-minute increments (#1662)

pull/1663/head
Jason Dove 1 year ago committed by GitHub
parent
commit
8113827802
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 4
      ErsatzTV.Application/Scheduling/Commands/ReplaceBlockItemsHandler.cs
  3. 9
      ErsatzTV/Pages/BlockEditor.razor
  4. 6
      ErsatzTV/Pages/TemplateEditor.razor

1
CHANGELOG.md

@ -67,6 +67,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -67,6 +67,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Use different library for reading song metadata that supports multiple tag entries
- Update `/iptv` routing to make UI completely inaccessible from that path prefix
- Use CUDA 11 instead of CUDA 12 in NVIDIA docker image to significantly lower required driver version
- Allow block durations with 5-minute increments (e.g., 5 min, 10 min, 15 min, etc.)
## [0.8.5-beta] - 2024-01-30
### Added

4
ErsatzTV.Application/Scheduling/Commands/ReplaceBlockItemsHandler.cs

@ -70,8 +70,8 @@ public class ReplaceBlockItemsHandler(IDbContextFactory<TvContext> dbContextFact @@ -70,8 +70,8 @@ public class ReplaceBlockItemsHandler(IDbContextFactory<TvContext> dbContextFact
private static Validation<BaseError, Block> MinutesMustBeValid(ReplaceBlockItems request, Block block) =>
Optional(block)
.Filter(_ => request.Minutes > 0 && request.Minutes % 15 == 0 && request.Minutes <= 24 * 60)
.ToValidation<BaseError>("Block duration must be between 15 minutes and 24 hours");
.Filter(_ => request.Minutes > 0 && request.Minutes % 5 == 0 && request.Minutes <= 24 * 60)
.ToValidation<BaseError>("Block duration must be between 5 minutes and 24 hours");
private static Validation<BaseError, Block> CollectionTypesMustBeValid(ReplaceBlockItems request, Block block) =>
request.Items.Map(item => CollectionTypeMustBeValid(item, block)).Sequence().Map(_ => block);

9
ErsatzTV/Pages/BlockEditor.razor

@ -27,13 +27,22 @@ @@ -27,13 +27,22 @@
<MudItem xs="6">
<MudSelect T="int" @bind-Value="_durationMinutes" Adornment="Adornment.End" AdornmentText="minutes">
<MudSelectItem Value="0"/>
<MudSelectItem Value="5"/>
<MudSelectItem Value="10"/>
<MudSelectItem Value="15"/>
<MudSelectItem Value="20"/>
<MudSelectItem Value="25"/>
<MudSelectItem Value="30"/>
<MudSelectItem Value="35"/>
<MudSelectItem Value="40"/>
<MudSelectItem Value="45"/>
<MudSelectItem Value="50"/>
<MudSelectItem Value="55"/>
</MudSelect>
</MudItem>
</MudGrid>
<MudSelect T="BlockStopScheduling"
Class="mt-3"
@bind-Value="_block.StopScheduling"
For="@(() => _block.StopScheduling)"
Label="Stop scheduling block items">

6
ErsatzTV/Pages/TemplateEditor.razor

@ -93,7 +93,7 @@ @@ -93,7 +93,7 @@
ShowPrevNextButtons="false"
ShowDatePicker="false"
ShowTodayButton="false"
DayTimeInterval="CalendarTimeInterval.Minutes15"
DayTimeInterval="CalendarTimeInterval.Minutes10"
Use24HourClock="@(CultureInfo.CurrentUICulture.DateTimeFormat.ShortTimePattern.Contains("H"))"
EnableDragItems="true"
EnableResizeItems="false"
@ -132,7 +132,7 @@ @@ -132,7 +132,7 @@
while (start.Date == DateTime.Today.Date)
{
_startTimes.Add(start);
start = start.AddMinutes(15);
start = start.AddMinutes(5);
}
}
@ -204,7 +204,7 @@ @@ -204,7 +204,7 @@
break;
}
maybeStart = maybeStart.AddMinutes(15);
maybeStart = maybeStart.AddMinutes(5);
}
}

Loading…
Cancel
Save