web-ui: добавлена страница группового удаления загрузок
- выбор → поимённое подтверждение → отчёт: пачка до 20 загрузок, гарды входа на обеих границах, потолок времени и остановка после трёх подряд отказов внешнего сервиса - допуск полного удаления сведён в единую точку store.State.CanDelete() — worker, страница загрузки и Telegram больше не держат своих перечней
This commit is contained in:
@@ -20,21 +20,37 @@ type stubReader struct {
|
||||
sizes map[string]int64 // размеры разложенных файлов по download_id (фолбэк)
|
||||
getErr error // отказ чтения задачи (не ErrNotFound)
|
||||
sizesErr error // отказ чтения размеров раскладки
|
||||
|
||||
// Для страницы группового удаления: список разрешённых к удалению и
|
||||
// поштучное чтение по id (страница подтверждения называет каждую поимённо).
|
||||
deletable []store.Download
|
||||
deletableErr error
|
||||
byID map[string]store.Download
|
||||
}
|
||||
|
||||
func (s stubReader) ListDownloads(context.Context) ([]store.Download, error) { return s.list, nil }
|
||||
func (s stubReader) ListDownloadsPage(context.Context, store.ListFilter) ([]store.Download, int, error) {
|
||||
return s.list, len(s.list), nil
|
||||
}
|
||||
func (s stubReader) GetDownload(context.Context, string) (*store.Download, error) {
|
||||
func (s stubReader) GetDownload(_ context.Context, id string) (*store.Download, error) {
|
||||
if s.getErr != nil {
|
||||
return nil, s.getErr
|
||||
}
|
||||
if s.byID != nil {
|
||||
d, ok := s.byID[id]
|
||||
if !ok {
|
||||
return nil, store.ErrNotFound
|
||||
}
|
||||
return &d, nil
|
||||
}
|
||||
if s.one == nil {
|
||||
return nil, store.ErrNotFound
|
||||
}
|
||||
return s.one, nil
|
||||
}
|
||||
func (s stubReader) ListDeletableDownloads(context.Context) ([]store.Download, error) {
|
||||
return s.deletable, s.deletableErr
|
||||
}
|
||||
func (s stubReader) LayoutSizeByDownload(context.Context, []string) (map[string]int64, error) {
|
||||
if s.sizesErr != nil {
|
||||
return nil, s.sizesErr
|
||||
|
||||
Reference in New Issue
Block a user