3x-ui/frontend/src/pages
MHSanaei e0e6200e2f
feat(clients): server-side bulk create/delete with per-inbound batching
Replace the panel-side fan-out (Promise.all of single /add and /del
calls) that raced on the shared inbound config and capped throughput at
roughly one round-trip per client. New endpoints batch the work on the
server:

- POST /panel/api/clients/bulkDel  { emails, keepTraffic }
- POST /panel/api/clients/bulkCreate  [ {client, inboundIds}, ... ]

BulkDelete groups emails by inbound and performs a single
read-modify-write per inbound (one JSON parse, one marshal, one Save)
instead of N. Per-row DB cleanups (ClientInbound, ClientTraffic,
InboundClientIps, ClientRecord) are batched with WHERE...IN queries.
Per-email failures are reported via Skipped[] and processing continues.

BulkCreate iterates payloads sequentially through the same Create path
single-add uses, so heterogeneous batches (different inboundIds, plans)
remain valid in one round-trip.

Frontend bulkDelete/bulkCreate hooks parse the new response shape
({ deleted|created, skipped[] }) and the bulk-add modal now posts a
single request instead of fanning out emails.
2026-05-27 00:20:52 +02:00
..
api-docs feat(clients): server-side bulk create/delete with per-inbound batching 2026-05-27 00:20:52 +02:00
clients feat(clients): server-side bulk create/delete with per-inbound batching 2026-05-27 00:20:52 +02:00
inbounds feat(frontend): align finalmask + sockopt with xray docs, add golden fixtures 2026-05-26 22:14:38 +02:00
index refactor(frontend): retire class-based xray models (Step 5) 2026-05-26 19:49:42 +02:00
login feat(frontend): add Zod runtime validation at API boundary 2026-05-25 16:02:27 +02:00
nodes feat(frontend): drive form validation from Zod schemas 2026-05-25 16:41:56 +02:00
settings feat(frontend): block invalid settings saves with Zod pre-save check 2026-05-25 17:55:21 +02:00
sub Migrate frontend models/api/utils to TypeScript and modernize AntD theming (#4563) 2026-05-25 14:34:53 +02:00
xray feat(frontend): migrate DNS + Routing to Zod, align with xray docs 2026-05-26 23:36:01 +02:00