Merge p9-w6-t2-batchedit-collapse into dev (9.6.B)
This commit is contained in:
@@ -53,15 +53,15 @@
|
|||||||
</MudStack>
|
</MudStack>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@* Session/Mix are single-track releases (§9.3): suppress the add-track affordance and keep the
|
||||||
|
list collapsed to one row — OnMediumChanged trims rows 2..n when the medium switches to a
|
||||||
|
single-track medium, mirroring BatchUpload's same-named collapse. Cut keeps the full list. *@
|
||||||
<MudGrid>
|
<MudGrid>
|
||||||
<MudItem xs="12" md="5">
|
<MudItem xs="12" md="5">
|
||||||
@* The medium write path persists _medium on save (9.5.B). BatchEdit still shows the full
|
|
||||||
multi-track list for every medium; collapsing to a single-track slot for Session/Mix
|
|
||||||
(matching BatchUpload's @if (_medium == ReleaseMedium.Cut) guard) is deferred form-shape
|
|
||||||
work, not part of the write-path wiring. *@
|
|
||||||
<BatchTrackList Tracks="_tracks"
|
<BatchTrackList Tracks="_tracks"
|
||||||
@bind-SelectedIndex="_selectedIndex"
|
@bind-SelectedIndex="_selectedIndex"
|
||||||
Disabled="_saving"
|
Disabled="_saving"
|
||||||
|
AllowNewTracks="@(_medium == ReleaseMedium.Cut)"
|
||||||
OnWavFilesSelected="HandleWavFilesSelected"
|
OnWavFilesSelected="HandleWavFilesSelected"
|
||||||
OnMoveUp="MoveUp"
|
OnMoveUp="MoveUp"
|
||||||
OnMoveDown="MoveDown"
|
OnMoveDown="MoveDown"
|
||||||
@@ -135,7 +135,20 @@
|
|||||||
// The medium selector drives ReleaseType visibility and is persisted on save: every UpdateAsync /
|
// The medium selector drives ReleaseType visibility and is persisted on save: every UpdateAsync /
|
||||||
// UploadTrackAsync call below passes _medium, and PUT api/track/meta resets ReleaseType to its
|
// UploadTrackAsync call below passes _medium, and PUT api/track/meta resets ReleaseType to its
|
||||||
// default server-side for a non-Cut medium.
|
// default server-side for a non-Cut medium.
|
||||||
private void OnMediumChanged(ReleaseMedium medium) => _medium = medium;
|
//
|
||||||
|
// Switching to a single-track medium (Session/Mix) collapses any multi-track list to the first row
|
||||||
|
// so the single-track invariant (§9.3) holds before save — the same collapse BatchUpload.OnMediumChanged
|
||||||
|
// performs. Dropping rows 2..n is an in-memory trim only; existing tracks are not deleted server-side
|
||||||
|
// (RemoveRow owns deletion), so the hidden rows simply fall out of this edit session.
|
||||||
|
private void OnMediumChanged(ReleaseMedium medium)
|
||||||
|
{
|
||||||
|
_medium = medium;
|
||||||
|
if (medium != ReleaseMedium.Cut && _tracks.Count > 1)
|
||||||
|
{
|
||||||
|
_tracks.RemoveRange(1, _tracks.Count - 1);
|
||||||
|
_selectedIndex = _tracks.Count > 0 ? 0 : -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
@@ -181,6 +194,11 @@
|
|||||||
Status = BatchRowStatus.Queued
|
Status = BatchRowStatus.Queued
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
if (_medium != ReleaseMedium.Cut && _tracks.Count > 1)
|
||||||
|
{
|
||||||
|
_tracks.RemoveRange(1, _tracks.Count - 1);
|
||||||
|
}
|
||||||
|
|
||||||
_selectedIndex = _tracks.Count > 0 ? 0 : -1;
|
_selectedIndex = _tracks.Count > 0 ? 0 : -1;
|
||||||
_loading = false;
|
_loading = false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user