feat: multi-tariff bulk actions UI — subscription-level selection

- Detect multi-tariff mode when users have multiple subscriptions
- Expandable user rows with chevron: click to show subscription sub-rows
- Each subscription sub-row shows: tariff name, status badge, days
  remaining (color-coded green/amber/red), traffic progress bar
- Independent subscription checkboxes for subscription-level actions
- FloatingActionBar shows dual counters: users (accent) + subscriptions
  (green), actions grouped by target type with disabled state
- Subscription-level actions send subscription_ids, user-level send
  user_ids to the backend
- Backward compatible: single-tariff mode unchanged (no chevrons,
  no sub-rows, user-only selection)
- i18n: subscriptionsSelected, usersSelected, expand/collapse,
  daysUnit, trafficOf, trafficGbUnit (ru + en)
This commit is contained in:
Fringg
2026-04-24 05:49:38 +03:00
parent 161fde4301
commit 78b41dc338
5 changed files with 484 additions and 121 deletions

View File

@@ -14,7 +14,8 @@ export type BulkActionType =
export interface BulkActionRequest {
action: BulkActionType;
user_ids: number[];
user_ids?: number[];
subscription_ids?: number[];
params: BulkActionParams;
dry_run?: boolean;
}
@@ -48,6 +49,7 @@ export interface BulkProgressEvent {
current: number;
total: number;
user_id: number;
subscription_id?: number;
username?: string;
success: boolean;
message?: string;