feat(channels): aggregate columns + smarter tag display

- Add Last upload, total Length and a Normal/Shorts/Live breakdown, computed on read in the
  existing grouped query (~35ms over the full catalog — measured, so no denormalization).
- Subscribers shown compact (919K), since the YouTube API already rounds them.
- Tag cell now shows only the tags actually attached to a channel; a '+' opens a per-channel
  picker to attach/detach, instead of listing every user tag on every row.
This commit is contained in:
npeter83 2026-06-17 23:24:25 +02:00
parent 14da25bf19
commit 0aa16543d9
6 changed files with 153 additions and 30 deletions

View file

@ -29,6 +29,10 @@
"channel": "Kanal",
"stored": "Gespeichert",
"subs": "Abonnenten",
"lastUpload": "Letzter Upload",
"length": "Länge",
"types": "N/S/L",
"typesHint": "Videos nach Typ: Normale / Shorts / Live",
"sync": "Sync",
"tags": "Tags",
"actions": "Aktionen"
@ -51,6 +55,7 @@
"stored": "{{formatted}} gespeichert",
"subs": "{{formatted}} Abonnenten",
"openOnYouTube": "Auf YouTube öffnen",
"editTags": "Tags bearbeiten",
"priorityHint": "Deine Einstufung für diesen Kanal. Sortiere den Feed nach „Kanalpriorität“, um Kanäle mit höherer Priorität nach oben zu bringen.",
"raisePriority": "Priorität erhöhen",
"lowerPriority": "Priorität senken",

View file

@ -29,6 +29,10 @@
"channel": "Channel",
"stored": "Stored",
"subs": "Subscribers",
"lastUpload": "Last upload",
"length": "Length",
"types": "N/S/L",
"typesHint": "Videos by type: Normal / Shorts / Live",
"sync": "Sync",
"tags": "Tags",
"actions": "Actions"
@ -51,6 +55,7 @@
"stored": "{{formatted}} stored",
"subs": "{{formatted}} subs",
"openOnYouTube": "Open on YouTube",
"editTags": "Edit tags",
"priorityHint": "Your ranking for this channel. Sort the feed by “Channel priority” to bring higher-priority channels to the top.",
"raisePriority": "Raise priority",
"lowerPriority": "Lower priority",

View file

@ -29,6 +29,10 @@
"channel": "Csatorna",
"stored": "Tárolt",
"subs": "Feliratkozók",
"lastUpload": "Utolsó feltöltés",
"length": "Hossz",
"types": "N/S/L",
"typesHint": "Videók típusonként: Normál / Short / Live",
"sync": "Szinkron",
"tags": "Címkék",
"actions": "Műveletek"
@ -51,6 +55,7 @@
"stored": "{{formatted}} tárolt",
"subs": "{{formatted}} feliratkozó",
"openOnYouTube": "Megnyitás a YouTube-on",
"editTags": "Címkék szerkesztése",
"priorityHint": "A te rangsorod ehhez a csatornához. Rendezd a hírfolyamot „Csatorna prioritás” szerint, hogy a magasabb prioritású csatornák felülre kerüljenek.",
"raisePriority": "Prioritás növelése",
"lowerPriority": "Prioritás csökkentése",