feat(metadata): wire batch editor over metadata-status buckets (A7)

/metadata/batch?status=pending|failed edits a whole bucket: bulk re-enrich
(AcoustID/MusicBrainz) and stamp common fields onto the selection, with a
select-list and per-track checkboxes. Storage Maintenance failed/missing tabs
link straight into it, closing the A6→A7 flow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Цвылев Александр Вадимович
2026-07-28 20:50:04 +03:00
parent 87fac7a5a1
commit 6efbf4b68b
4 changed files with 379 additions and 7 deletions
@@ -181,9 +181,20 @@ function TrackListTab({
const from = offset + 1;
const to = offset + data.items.length;
// Broken files map to the `failed` metadata bucket; missing → `pending`.
const batchStatus = emptyKey === 'broken' ? 'failed' : 'pending';
return (
<div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>
<div style={{ display: 'flex', justifyContent: 'flex-end', marginBottom: '0.5rem' }}>
<Button
variant="ghost"
size="sm"
onClick={() => void navigate(`/metadata/batch?status=${batchStatus}`)}
>
{t('storage.maintenance.editBatch')}
</Button>
</div>
{data.items.map((track) => (
<TrackRow
key={track.id}