mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-30 02:23:47 +00:00
feat: bulk actions — live progress, grant subscription, error details
- Real-time progress: SSE streaming with animated progress bar, live success/error counters, scrollable log of last 10 results with auto-scroll, percentage display - New action "Выдать подписку": tariff selector + days input, warning about users with existing subscriptions being skipped - Error details: collapsible section with per-user error list, colored summary line (green successes / red errors) - Fix: modal cannot be closed during loading (backdrop + Escape) - Fix: row checkbox aria-labels now user-specific - i18n: full progress/grant/error translations (ru + en)
This commit is contained in:
@@ -2028,6 +2028,8 @@
|
||||
"selectedCount": "Selected: {{count}}",
|
||||
"selectAll": "Select all",
|
||||
"deselectAll": "Deselect all",
|
||||
"selectUser": "Select user {{name}}",
|
||||
"deselectUser": "Deselect user {{name}}",
|
||||
"noResults": "No users found",
|
||||
"actions": {
|
||||
"extend": "Extend subscription",
|
||||
@@ -2036,7 +2038,8 @@
|
||||
"changeTariff": "Change tariff",
|
||||
"addTraffic": "Add traffic",
|
||||
"addBalance": "Add balance",
|
||||
"assignPromoGroup": "Assign promo group"
|
||||
"assignPromoGroup": "Assign promo group",
|
||||
"grantSubscription": "Grant subscription"
|
||||
},
|
||||
"params": {
|
||||
"days": "Number of days",
|
||||
@@ -2046,12 +2049,28 @@
|
||||
"promoGroup": "Promo group",
|
||||
"removePromoGroup": "Remove promo group"
|
||||
},
|
||||
"grantSubscription": {
|
||||
"warning": "Users who already have a subscription on the selected tariff will be skipped"
|
||||
},
|
||||
"confirm": "Apply",
|
||||
"cancel": "Cancel",
|
||||
"executing": "Executing...",
|
||||
"complete": "Complete",
|
||||
"successCount": "Succeeded: {{count}}",
|
||||
"errorCount": "Errors: {{count}}",
|
||||
"progress": {
|
||||
"processed": "Processed: {{current}} / {{total}}",
|
||||
"succeeded": "succeeded",
|
||||
"failed": "failed",
|
||||
"ok": "OK",
|
||||
"errorGeneric": "Error",
|
||||
"doNotClose": "Please do not close this window while the operation is in progress",
|
||||
"summarySuccess": "{{count}} succeeded",
|
||||
"summaryErrors": "{{count}} errors"
|
||||
},
|
||||
"errors": {
|
||||
"title": "{{count}} errors — show details"
|
||||
},
|
||||
"filters": {
|
||||
"search": "Search by ID, username, email",
|
||||
"status": "Subscription status",
|
||||
|
||||
@@ -3776,6 +3776,8 @@
|
||||
"selectedCount": "Выбрано: {{count}}",
|
||||
"selectAll": "Выбрать всех",
|
||||
"deselectAll": "Снять выделение",
|
||||
"selectUser": "Выбрать пользователя {{name}}",
|
||||
"deselectUser": "Снять выбор пользователя {{name}}",
|
||||
"noResults": "Пользователи не найдены",
|
||||
"actions": {
|
||||
"extend": "Продлить подписку",
|
||||
@@ -3784,7 +3786,8 @@
|
||||
"changeTariff": "Сменить тариф",
|
||||
"addTraffic": "Начислить трафик",
|
||||
"addBalance": "Начислить баланс",
|
||||
"assignPromoGroup": "Назначить промогруппу"
|
||||
"assignPromoGroup": "Назначить промогруппу",
|
||||
"grantSubscription": "Выдать подписку"
|
||||
},
|
||||
"params": {
|
||||
"days": "Количество дней",
|
||||
@@ -3794,12 +3797,28 @@
|
||||
"promoGroup": "Промогруппа",
|
||||
"removePromoGroup": "Убрать промогруппу"
|
||||
},
|
||||
"grantSubscription": {
|
||||
"warning": "Пользователи, у которых уже есть подписка на выбранный тариф, будут пропущены"
|
||||
},
|
||||
"confirm": "Применить",
|
||||
"cancel": "Отмена",
|
||||
"executing": "Выполнение...",
|
||||
"complete": "Выполнено",
|
||||
"successCount": "Успешно: {{count}}",
|
||||
"errorCount": "Ошибок: {{count}}",
|
||||
"progress": {
|
||||
"processed": "Обработано: {{current}} / {{total}}",
|
||||
"succeeded": "успешно",
|
||||
"failed": "ошибок",
|
||||
"ok": "ОК",
|
||||
"errorGeneric": "Ошибка",
|
||||
"doNotClose": "Не закрывайте это окно, пока операция выполняется",
|
||||
"summarySuccess": "{{count}} успешно",
|
||||
"summaryErrors": "{{count}} ошибок"
|
||||
},
|
||||
"errors": {
|
||||
"title": "{{count}} ошибок — показать детали"
|
||||
},
|
||||
"filters": {
|
||||
"search": "Поиск по ID, нику, email",
|
||||
"status": "Статус подписки",
|
||||
|
||||
Reference in New Issue
Block a user