Browse Source

fix multi collection editor id collision (#1644)

pull/1645/head
Jason Dove 1 year ago committed by GitHub
parent
commit
21d39bc26f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 7
      ErsatzTV.Application/MediaCollections/Mapper.cs
  3. 1
      ErsatzTV.Application/MediaCollections/MediaCollectionViewModel.cs
  4. 4
      ErsatzTV/Pages/MultiCollectionEditor.razor
  5. 8
      ErsatzTV/Shared/AddToCollectionDialog.razor
  6. 1
      ErsatzTV/ViewModels/MultiCollectionSmartItemEditViewModel.cs

1
CHANGELOG.md

@ -47,6 +47,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Fix VAAPI transcoding of OTA content containing A53 CC data - Fix VAAPI transcoding of OTA content containing A53 CC data
- Fix AV1 software decoder priority (`libdav1d`, `libaom-av1`, `av1`) - Fix AV1 software decoder priority (`libdav1d`, `libaom-av1`, `av1`)
- Fix some stream failures caused by loudnorm filter - Fix some stream failures caused by loudnorm filter
- Fix multi-collection editor improperly disabling collections/smart collections that haven't already been added to the multi-collection
### Changed ### Changed
- Log search index updates under scanner category at debug level, to indicate a potential cause for the UI being out of date - Log search index updates under scanner category at debug level, to indicate a potential cause for the UI being out of date

7
ErsatzTV.Application/MediaCollections/Mapper.cs

@ -5,7 +5,12 @@ namespace ErsatzTV.Application.MediaCollections;
internal static class Mapper internal static class Mapper
{ {
internal static MediaCollectionViewModel ProjectToViewModel(Collection collection) => internal static MediaCollectionViewModel ProjectToViewModel(Collection collection) =>
new(collection.Id, collection.Name, collection.UseCustomPlaybackOrder, MediaItemState.Normal); new(
ProgramScheduleItemCollectionType.Collection,
collection.Id,
collection.Name,
collection.UseCustomPlaybackOrder,
MediaItemState.Normal);
internal static MultiCollectionViewModel ProjectToViewModel(MultiCollection multiCollection) => internal static MultiCollectionViewModel ProjectToViewModel(MultiCollection multiCollection) =>
new( new(

1
ErsatzTV.Application/MediaCollections/MediaCollectionViewModel.cs

@ -4,6 +4,7 @@ using ErsatzTV.Core.Domain;
namespace ErsatzTV.Application.MediaCollections; namespace ErsatzTV.Application.MediaCollections;
public record MediaCollectionViewModel( public record MediaCollectionViewModel(
ProgramScheduleItemCollectionType CollectionType,
int Id, int Id,
string Name, string Name,
bool UseCustomPlaybackOrder, bool UseCustomPlaybackOrder,

4
ErsatzTV/Pages/MultiCollectionEditor.razor

@ -26,7 +26,7 @@
HelperText="Disabled collections are already present in this multi collection"> HelperText="Disabled collections are already present in this multi collection">
@foreach (MediaCollectionViewModel collection in _collections) @foreach (MediaCollectionViewModel collection in _collections)
{ {
<MudSelectItem Disabled="@(_model.Items.Any(i => i.Collection.Id == collection.Id))" <MudSelectItem Disabled="@(_model.Items.Any(i => i.Collection.CollectionType == collection.CollectionType && i.Collection.Id == collection.Id))"
Value="@collection"> Value="@collection">
@collection.Name @collection.Name
</MudSelectItem> </MudSelectItem>
@ -43,7 +43,7 @@
HelperText="Disabled collections are already present in this multi collection"> HelperText="Disabled collections are already present in this multi collection">
@foreach (SmartCollectionViewModel collection in _smartCollections) @foreach (SmartCollectionViewModel collection in _smartCollections)
{ {
<MudSelectItem Disabled="@(_model.Items.Any(i => i.Collection.Id == collection.Id))" <MudSelectItem Disabled="@(_model.Items.Any(i => i.Collection.CollectionType == ProgramScheduleItemCollectionType.SmartCollection && i.Collection.Id == collection.Id))"
Value="@collection"> Value="@collection">
@collection.Name @collection.Name
</MudSelectItem> </MudSelectItem>

8
ErsatzTV/Shared/AddToCollectionDialog.razor

@ -55,7 +55,13 @@
[Parameter] [Parameter]
public string DetailHighlight { get; set; } public string DetailHighlight { get; set; }
private readonly MediaCollectionViewModel _newCollection = new(-1, "(New Collection)", false, MediaItemState.Normal); private readonly MediaCollectionViewModel _newCollection = new(
ProgramScheduleItemCollectionType.Collection,
-1,
"(New Collection)",
false,
MediaItemState.Normal);
private string _newCollectionName; private string _newCollectionName;
private List<MediaCollectionViewModel> _collections = new(); private List<MediaCollectionViewModel> _collections = new();

1
ErsatzTV/ViewModels/MultiCollectionSmartItemEditViewModel.cs

@ -15,6 +15,7 @@ public class MultiCollectionSmartItemEditViewModel : MultiCollectionItemEditView
_smartCollection = value; _smartCollection = value;
Collection = new MediaCollectionViewModel( Collection = new MediaCollectionViewModel(
ProgramScheduleItemCollectionType.SmartCollection,
_smartCollection.Id, _smartCollection.Id,
_smartCollection.Name, _smartCollection.Name,
false, false,

Loading…
Cancel
Save