Browse Source

rearrange order of schedule items

pull/26/head
Jason Dove 6 years ago
parent
commit
955a80a65a
  1. 41
      ErsatzTV/Pages/ScheduleItemsEditor.razor
  2. 9
      ErsatzTV/ViewModels/ProgramScheduleItemEditViewModel.cs

41
ErsatzTV/Pages/ScheduleItemsEditor.razor

@ -20,12 +20,16 @@ @@ -20,12 +20,16 @@
<col/>
<col/>
<col style="width: 60px;"/>
<col style="width: 60px;"/>
<col style="width: 60px;"/>
</ColGroup>
<HeaderContent>
<MudTh>Start Time</MudTh>
<MudTh>Media Collection</MudTh>
<MudTh>Playout Mode</MudTh>
<MudTh/>
<MudTh/>
<MudTh/>
</HeaderContent>
<RowTemplate>
<MudTd DataLabel="Start Time">
@ -48,7 +52,21 @@ @@ -48,7 +52,21 @@
</MudText>
</MudTd>
<MudTd>
<MudIconButton Icon="@Icons.Material.Filled.Delete" OnClick="@(_ => RemoveScheduleItem(context))"></MudIconButton>
<MudIconButton Icon="@Icons.Material.Filled.ArrowUpward"
OnClick="@(_ => MoveItemUp(context))"
Disabled="@(_schedule.Items.All(x => x.Index >= context.Index))">
</MudIconButton>
</MudTd>
<MudTd>
<MudIconButton Icon="@Icons.Material.Filled.ArrowDownward"
OnClick="@(_ => MoveItemDown(context))"
Disabled="@(_schedule.Items.All(x => x.Index <= context.Index))">
</MudIconButton>
</MudTd>
<MudTd>
<MudIconButton Icon="@Icons.Material.Filled.Delete"
OnClick="@(_ => RemoveScheduleItem(context))">
</MudIconButton>
</MudTd>
</RowTemplate>
<PagerContent>
@ -170,8 +188,7 @@ @@ -170,8 +188,7 @@
CollectionType = item.CollectionType,
MediaCollection = item.MediaCollection,
TelevisionShow = item.TelevisionShow,
TelevisionSeason = item.TelevisionSeason,
CollectionName = item.Name
TelevisionSeason = item.TelevisionSeason
};
switch (item)
@ -208,6 +225,24 @@ @@ -208,6 +225,24 @@
_schedule.Items.Remove(item);
}
private void MoveItemUp(ProgramScheduleItemEditViewModel item)
{
// swap with lower index
ProgramScheduleItemEditViewModel toSwap = _schedule.Items.OrderByDescending(x => x.Index).First(x => x.Index < item.Index);
int temp = toSwap.Index;
toSwap.Index = item.Index;
item.Index = temp;
}
private void MoveItemDown(ProgramScheduleItemEditViewModel item)
{
// swap with higher index
ProgramScheduleItemEditViewModel toSwap = _schedule.Items.OrderBy(x => x.Index).First(x => x.Index > item.Index);
int temp = toSwap.Index;
toSwap.Index = item.Index;
item.Index = temp;
}
private Task<IEnumerable<MediaCollectionViewModel>> SearchMediaCollections(string value) =>
_mediaCollections.Filter(c => c.Name.Contains(value ?? string.Empty, StringComparison.OrdinalIgnoreCase)).AsTask();

9
ErsatzTV/ViewModels/ProgramScheduleItemEditViewModel.cs

@ -61,7 +61,14 @@ namespace ErsatzTV.ViewModels @@ -61,7 +61,14 @@ namespace ErsatzTV.ViewModels
public TelevisionShowViewModel TelevisionShow { get; set; }
public TelevisionSeasonViewModel TelevisionSeason { get; set; }
public string CollectionName { get; set; }
public string CollectionName => CollectionType switch
{
ProgramScheduleItemCollectionType.Collection => MediaCollection?.Name,
ProgramScheduleItemCollectionType.TelevisionShow => $"{TelevisionShow?.Title} ({TelevisionShow?.Year})",
ProgramScheduleItemCollectionType.TelevisionSeason =>
$"{TelevisionSeason?.Title} ({TelevisionSeason?.Plot})",
_ => string.Empty
};
public int? MultipleCount
{

Loading…
Cancel
Save