diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6f8bcae5e..530683996 100644
--- a/CHANGELOG.md
+++ b/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 AV1 software decoder priority (`libdav1d`, `libaom-av1`, `av1`)
- 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
- Log search index updates under scanner category at debug level, to indicate a potential cause for the UI being out of date
diff --git a/ErsatzTV.Application/MediaCollections/Mapper.cs b/ErsatzTV.Application/MediaCollections/Mapper.cs
index 964bdd821..dcce47381 100644
--- a/ErsatzTV.Application/MediaCollections/Mapper.cs
+++ b/ErsatzTV.Application/MediaCollections/Mapper.cs
@@ -5,7 +5,12 @@ namespace ErsatzTV.Application.MediaCollections;
internal static class Mapper
{
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) =>
new(
diff --git a/ErsatzTV.Application/MediaCollections/MediaCollectionViewModel.cs b/ErsatzTV.Application/MediaCollections/MediaCollectionViewModel.cs
index b91c34f08..a30f7275d 100644
--- a/ErsatzTV.Application/MediaCollections/MediaCollectionViewModel.cs
+++ b/ErsatzTV.Application/MediaCollections/MediaCollectionViewModel.cs
@@ -4,6 +4,7 @@ using ErsatzTV.Core.Domain;
namespace ErsatzTV.Application.MediaCollections;
public record MediaCollectionViewModel(
+ ProgramScheduleItemCollectionType CollectionType,
int Id,
string Name,
bool UseCustomPlaybackOrder,
diff --git a/ErsatzTV/Pages/MultiCollectionEditor.razor b/ErsatzTV/Pages/MultiCollectionEditor.razor
index 6337cc730..4d0f69084 100644
--- a/ErsatzTV/Pages/MultiCollectionEditor.razor
+++ b/ErsatzTV/Pages/MultiCollectionEditor.razor
@@ -26,7 +26,7 @@
HelperText="Disabled collections are already present in this multi collection">
@foreach (MediaCollectionViewModel collection in _collections)
{
-
@collection.Name
@@ -43,7 +43,7 @@
HelperText="Disabled collections are already present in this multi collection">
@foreach (SmartCollectionViewModel collection in _smartCollections)
{
-
@collection.Name
diff --git a/ErsatzTV/Shared/AddToCollectionDialog.razor b/ErsatzTV/Shared/AddToCollectionDialog.razor
index 456d1ed8d..15ed4315b 100644
--- a/ErsatzTV/Shared/AddToCollectionDialog.razor
+++ b/ErsatzTV/Shared/AddToCollectionDialog.razor
@@ -55,7 +55,13 @@
[Parameter]
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 List _collections = new();
diff --git a/ErsatzTV/ViewModels/MultiCollectionSmartItemEditViewModel.cs b/ErsatzTV/ViewModels/MultiCollectionSmartItemEditViewModel.cs
index c4ac6c219..20ca27d91 100644
--- a/ErsatzTV/ViewModels/MultiCollectionSmartItemEditViewModel.cs
+++ b/ErsatzTV/ViewModels/MultiCollectionSmartItemEditViewModel.cs
@@ -15,6 +15,7 @@ public class MultiCollectionSmartItemEditViewModel : MultiCollectionItemEditView
_smartCollection = value;
Collection = new MediaCollectionViewModel(
+ ProgramScheduleItemCollectionType.SmartCollection,
_smartCollection.Id,
_smartCollection.Name,
false,