feat(subscriptions): gestion des abonnements par groupes façon PocketTube
CI / build-and-test (push) Failing after 8m18s

- Tables subscription_groups + subscription_group_members (migration + schema)
- API CRUD groupes, membres par groupe, groupes par abonnement
- Page Abonnements: onglets Groupes/Chaines, modale creation/edition (icone/couleur), assignation unitaire + lot, filtre par groupe + recherche
- Sidebar: section Groupes avec navigation directe (queryParams)
- i18n nav.groups FR/EN + 4 tests unitaires service
This commit is contained in:
2026-09-26 10:45:34 -04:00
parent 95e4358b01
commit 49c3b5dfdf
11 changed files with 1058 additions and 28 deletions
@@ -61,6 +61,20 @@
</li>
</ul>
</div>
<!-- Groupes d'abonnements (façon PocketTube) -->
<div *ngIf="!collapsed && subscriptionGroups().length > 0">
<div class="px-3 py-2 text-xs uppercase tracking-wide text-slate-400">{{ 'nav.groups' | t : 'Groupes' }}</div>
<ul class="space-y-1">
<li *ngFor="let group of subscriptionGroups()">
<a [routerLink]="['/library/subscriptions']" [queryParams]="{ group: group.id, tab: 'channels' }" routerLinkActive="bg-slate-800" class="flex items-center px-3 py-2 rounded hover:bg-slate-800 transition gap-3">
<span class="flex h-6 w-6 items-center justify-center rounded text-base" [style.background-color]="group.color + '26'">{{ group.icon }}</span>
<span class="flex-1 truncate text-sm">{{ group.name }}</span>
<span class="text-xs text-slate-500">{{ group.channelCount }}</span>
</a>
</li>
</ul>
</div>
}
<!-- Fournisseurs -->