feat(tracks): add ReleaseType and TrackNumber to track metadata model and CMS edit form

This commit is contained in:
daniel-c-harvey
2026-06-10 21:36:00 -04:00
parent f8186fb7c7
commit d47a5e00af
15 changed files with 292 additions and 6 deletions
@@ -1,5 +1,6 @@
@page "/tracks/{Id:long}"
@using DeepDrftManager.Services
@using DeepDrftModels.Enums
@using Microsoft.AspNetCore.Components.Forms
@attribute [Authorize]
@inject ICmsTrackService CmsTrackService
@@ -62,6 +63,20 @@
Label="Genre"
Variant="Variant.Outlined" />
<MudSelect @bind-Value="_form.ReleaseType"
Label="Release Type"
Variant="Variant.Outlined">
@foreach (var releaseType in Enum.GetValues<ReleaseType>())
{
<MudSelectItem Value="releaseType">@releaseType</MudSelectItem>
}
</MudSelect>
<MudNumericField @bind-Value="_form.TrackNumber"
Label="Track Number"
Min="1"
Variant="Variant.Outlined" />
<MudField Label="Cover Art" Variant="Variant.Outlined" InnerPadding="false">
<MudStack Spacing="3">
@if (ImagePreviewUrl is { } previewUrl)
@@ -207,7 +222,9 @@
string.IsNullOrWhiteSpace(_form.Album) ? null : _form.Album,
string.IsNullOrWhiteSpace(_form.Genre) ? null : _form.Genre,
releaseDate,
string.IsNullOrEmpty(_form.ImagePath) ? "" : _form.ImagePath);
string.IsNullOrEmpty(_form.ImagePath) ? "" : _form.ImagePath,
_form.ReleaseType,
_form.TrackNumber);
if (updated.Success)
{
Snackbar.Add("Track updated.", Severity.Success);
@@ -287,6 +304,8 @@
public string? Genre { get; set; }
public string? ImagePath { get; set; }
public DateTime? ReleaseDate { get; set; }
public ReleaseType ReleaseType { get; set; } = ReleaseType.Single;
public int TrackNumber { get; set; } = 1;
public static TrackEditForm From(TrackDto track) => new()
{
@@ -297,7 +316,9 @@
ImagePath = track.ImagePath,
ReleaseDate = track.ReleaseDate is { } d
? d.ToDateTime(TimeOnly.MinValue)
: null
: null,
ReleaseType = track.ReleaseType,
TrackNumber = track.TrackNumber
};
}
}