feat: admin bulk actions page with TanStack Table

Full-featured admin page for mass operations on users:

- TanStack Table with checkbox selection (select all / individual)
- Server-side pagination, search, and filters (status, tariff, promo group)
- Columns: user, subscription status, tariff, balance, days left, promo group
- Floating glass-effect action bar with 7 bulk operations:
  extend subscription, deactivate, activate, change tariff,
  add traffic, add balance, assign promo group
- Action modal dialogs with input fields, loading state, result summary
- Responsive design for desktop, mobile, and Telegram Mini App
- Full i18n support (ru, en)
- Dark theme with accent highlights and status color badges
This commit is contained in:
Fringg
2026-04-24 04:15:28 +03:00
parent 33f32648f0
commit 1772d9632e
6 changed files with 1382 additions and 2 deletions

View File

@@ -333,6 +333,12 @@ const icons = {
<path d="M15 8h-5M15 12h-5" />
</SvgIcon>
),
'list-checks': (
<SvgIcon>
<path d="M10 6h11M10 12h11M10 18h11" />
<path d="m3 6 1 1 2-2M3 12l1 1 2-2M3 18l1 1 2-2" />
</SvgIcon>
),
search: (
<SvgIcon>
<circle cx="11" cy="11" r="8" />
@@ -412,6 +418,12 @@ const sections: AdminSection[] = [
gradient: 'linear-gradient(135deg, rgb(var(--color-accent-400)), rgb(var(--color-error-400)))',
items: [
{ name: 'admin.nav.users', icon: 'users', to: '/admin/users', permission: 'users:read' },
{
name: 'admin.nav.bulkActions',
icon: 'list-checks',
to: '/admin/bulk-actions',
permission: 'users:read',
},
{
name: 'admin.nav.tickets',
icon: 'ticket',