feat(storage): wire Storage Maintenance screen (A6)
Duplicates / failed / missing-metadata tabs (paginated, reusing TrackRow) plus admin orphan-file cleanup. Adds getDuplicates/getBrokenFiles/getMissingMetadata/ runCleanup endpoints and a DuplicateGroup type; drops the dead scanStorage/ deleteTrackFile stubs that had no backend route. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -287,6 +287,35 @@ const ru: Translations = {
|
||||
},
|
||||
storage: {
|
||||
subtitle: 'Всё, что хранит этот инстанс',
|
||||
maintenance: {
|
||||
subtitle:
|
||||
'Найдите дубликаты, треки с ошибкой обогащения и файлы без метаданных — и уберите осиротевшие записи.',
|
||||
tabs: {
|
||||
duplicates: 'Дубликаты',
|
||||
broken: 'С ошибкой',
|
||||
missing: 'Без метаданных',
|
||||
},
|
||||
cleanup: {
|
||||
title: 'Очистить осиротевшие файлы',
|
||||
description:
|
||||
'Сверить каталог и удалить записи, у которых пропал файл на диске. Выполняется в фоне.',
|
||||
button: 'Запустить очистку',
|
||||
enqueued: 'Очистка поставлена в очередь',
|
||||
},
|
||||
duplicates: {
|
||||
empty: 'Дубликатов не найдено.',
|
||||
groupTitle: '{{count}} треков с одним отпечатком',
|
||||
},
|
||||
broken: {
|
||||
empty: 'Треков с ошибкой нет.',
|
||||
},
|
||||
missing: {
|
||||
empty: 'У всех треков есть метаданные.',
|
||||
},
|
||||
pagination: '{{from}}–{{to}} из {{total}}',
|
||||
prev: 'Назад',
|
||||
next: 'Вперёд',
|
||||
},
|
||||
device: 'На этом устройстве',
|
||||
server: 'На сервере',
|
||||
audioCache: 'Кэш аудио',
|
||||
|
||||
Reference in New Issue
Block a user