Interface improvements (#34)

* fix plex library synchronization

* add basic plex movie synchronization

* proxy plex movie thumbnails (posters)

* add plex path replacements

* use transcoded plex artwork

* remove unsynchronized plex movies on save; queue plex library scan on save

* log plex path replacements

* prefer buttons instead of menus

* lock plex libraries before sync

* add movie to collection from paged view

* fix plex import memory use; quick add seasons/shows

* quick add episode to collection

* add favicon

* add search page

* disable plex for now
This commit is contained in:
Jason Dove
2021-03-02 02:54:23 +00:00
committed by GitHub
parent aef486103e
commit f281d9fca5
89 changed files with 4727 additions and 472 deletions
+28 -3
View File
@@ -14,7 +14,7 @@
<col/>
<col/>
<col/>
<col style="width: 60px;"/>
<col style="width: 120px;"/>
</ColGroup>
<HeaderContent>
<MudTh>Id</MudTh>
@@ -29,7 +29,18 @@
<MudTd DataLabel="Schedule">@context.ProgramSchedule.Name</MudTd>
@* <MudTd DataLabel="Playout Type">@context.ProgramSchedulePlayoutType</MudTd> *@
<MudTd>
<MudIconButton Icon="@Icons.Material.Filled.Delete" OnClick="@(_ => DeletePlayout(context))"></MudIconButton>
<div style="align-items: center; display: flex;">
<MudTooltip Text="Rebuild Playout">
<MudIconButton Icon="@Icons.Material.Filled.Refresh"
OnClick="@(_ => RebuildPlayout(context))">
</MudIconButton>
</MudTooltip>
<MudTooltip Text="Delete Playout">
<MudIconButton Icon="@Icons.Material.Filled.Delete"
OnClick="@(_ => DeletePlayout(context))">
</MudIconButton>
</MudTooltip>
</div>
</MudTd>
</RowTemplate>
</MudTable>
@@ -63,12 +74,16 @@
@code {
private List<PlayoutViewModel> _playouts;
private List<PlayoutItemViewModel> _selectedPlayoutItems;
private int? _selectedPlayoutId;
protected override Task OnParametersSetAsync() =>
LoadAllPlayouts();
private async Task PlayoutSelected(PlayoutViewModel playout) =>
private async Task PlayoutSelected(PlayoutViewModel playout)
{
_selectedPlayoutId = playout.Id;
_selectedPlayoutItems = await Mediator.Send(new GetPlayoutItemsById(playout.Id));
}
private async Task DeletePlayout(PlayoutViewModel playout)
{
@@ -84,6 +99,16 @@
}
}
private async Task RebuildPlayout(PlayoutViewModel playout)
{
await Mediator.Send(new BuildPlayout(playout.Id, true));
await LoadAllPlayouts();
if (_selectedPlayoutId == playout.Id)
{
await PlayoutSelected(playout);
}
}
private async Task LoadAllPlayouts() =>
_playouts = await Mediator.Send(new GetAllPlayouts());