Список: скрытие cancelled, значок типа, ellipsis имени .torrent

Три мелкие правки веб-UI списка загрузок:

- Скрываем cancelled в общем списке наравне с deleted: под группой all
  без IncludeDeleted теперь `state NOT IN (deleted, cancelled)`. reverted
  остаётся видимым. Тумблер и комментарии-инварианты приведены в
  соответствие («включая отменённые и удалённые»).
- Значок типа (🎬 фильм / 📺 сериал) в строке списка: media_type текущей
  попытки распознавания протянут через LEFT JOIN в ListDownloadsPage
  (Download.RecMediaType, симметрично RecTitle) и downloadView.MediaType;
  значок рендерится в card.html, при нераспознанном типе значка нет.
- Ellipsis для длинного имени .torrent-файла: у .btn-file max-width +
  overflow/ellipsis на лейбле, чтобы длинное имя не распирало .add-row;
  показываем базовое имя без .torrent, полное — в title (JS-энхансмент).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
av
2026-07-11 09:31:27 +03:00
co-authored by Claude Opus 4.8
parent e8ce828296
commit 44c5952e49
7 changed files with 74 additions and 20 deletions
+2
View File
@@ -200,6 +200,7 @@ type pageLink struct {
type downloadView struct {
ID string
Title string // отображаемый заголовок карточки
MediaType string // тип контента для значка строки списка (movie/series; пусто — не распознан)
State string
Error string
Terminal bool
@@ -652,6 +653,7 @@ func (s *server) toView(d store.Download, now time.Time) downloadView {
v := downloadView{
ID: d.ID,
Title: downloadTitle(d),
MediaType: d.RecMediaType.String, // пусто, если распознавания/типа ещё нет
State: state,
Error: d.ErrorMsg.String,
Terminal: d.State.IsTerminal(),