Browse Source

add button to clone schedule item (#2048)

pull/2050/head
Jason Dove 3 days ago committed by GitHub
parent
commit
20e5b8a11a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 56
      ErsatzTV/Pages/ScheduleItemsEditor.razor

1
CHANGELOG.md

@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- This may be needed with misbehaving NVIDIA drivers on Windows
- Add health check error when invalid VAAPI device and VAAPI driver combination is used in an active ffmpeg profile
- This makes it obvious when hardware acceleration will not work as configured
- Add button in schedule editor to clone schedule item
### Changed
- Start to make UI minimally responsive (functional on smaller screens)

56
ErsatzTV/Pages/ScheduleItemsEditor.razor

@ -36,6 +36,7 @@ @@ -36,6 +36,7 @@
<col style="width: 60px;"/>
<col style="width: 60px;"/>
<col style="width: 60px;"/>
<col style="width: 60px;"/>
</ColGroup>
<HeaderContent>
<MudTh>Start Time</MudTh>
@ -44,6 +45,7 @@ @@ -44,6 +45,7 @@
<MudTh/>
<MudTh/>
<MudTh/>
<MudTh/>
</HeaderContent>
<RowTemplate>
<MudTd DataLabel="Start Time">
@ -65,6 +67,11 @@ @@ -65,6 +67,11 @@
}
</MudText>
</MudTd>
<MudTd>
<MudIconButton Icon="@Icons.Material.Filled.ContentCopy"
OnClick="@(_ => CopyItem(context))">
</MudIconButton>
</MudTd>
<MudTd>
@if (!_schedule.ShuffleScheduleItems)
{
@ -609,6 +616,55 @@ @@ -609,6 +616,55 @@
_schedule.Items.Remove(item);
}
private void CopyItem(ProgramScheduleItemEditViewModel item)
{
var newItem = new ProgramScheduleItemEditViewModel
{
Index = item.Index + 1,
StartType = item.StartType,
StartTime = item.StartTime,
FixedStartTimeBehavior = item.FixedStartTimeBehavior,
PlayoutMode = item.PlayoutMode,
CollectionType = item.CollectionType,
Collection = item.Collection,
MultiCollection = item.MultiCollection,
SmartCollection = item.SmartCollection,
Playlist = item.Playlist,
MediaItem = item.MediaItem,
PlaybackOrder = item.PlaybackOrder,
FillWithGroupMode = item.FillWithGroupMode,
CustomTitle = item.CustomTitle,
GuideMode = item.GuideMode,
PreRollFiller = item.PreRollFiller,
MidRollFiller = item.MidRollFiller,
PostRollFiller = item.PostRollFiller,
TailFiller = item.TailFiller,
FallbackFiller = item.FallbackFiller,
Watermark = item.Watermark,
PreferredAudioLanguageCode = item.PreferredAudioLanguageCode,
PreferredAudioTitle = item.PreferredAudioTitle,
PreferredSubtitleLanguageCode = item.PreferredSubtitleLanguageCode,
SubtitleMode = item.SubtitleMode,
MultipleCount = item.MultipleCount,
PlayoutDuration = item.PlayoutDuration,
TailMode = item.TailMode,
DiscardToFillAttempts = item.DiscardToFillAttempts,
};
foreach (ProgramScheduleItemEditViewModel i in _schedule.Items.Filter(si => si.Index >= newItem.Index))
{
i.Index += 1;
}
_schedule.Items.Add(newItem);
if (_selectedItem is not null)
{
_selectedItem = newItem;
}
}
private void MoveItemUp(ProgramScheduleItemEditViewModel item)
{
// swap with lower index

Loading…
Cancel
Save