3x-ui/frontend/src/pages/inbounds
MHSanaei d052de9a93
feat(frontend): Phase 5f-iv — client add/edit + bulk-add modals
Wires per-inbound client management. Both flows go through the same
addClient/updateClient endpoints as legacy; the modals just funnel
the form state into the right shape (`{id, settings: '{"clients": [...]}'}`).

- ClientFormModal.vue: protocol-aware single-client editor — email/
  password/id/auth/security/flow/subId/tgId/comment/ipLimit/totalGB/
  expiry/renewal fields are shown/hidden per protocol like legacy.
  Edit mode displays the per-client traffic stats with a reset
  button; IP-limit log is read on click and clearable. Random
  helpers (sync icon next to each label) regenerate UUID/email/
  password/sub-id values.
- ClientBulkModal.vue: 1–500 clients in one POST, with the legacy
  five email-generation modes (Random / +Prefix / +Num / +Postfix /
  Pure-Prefix-Num-Postfix). Builds clients via the protocol-aware
  factory and concatenates their toString() output into a single
  settings.clients JSON array.
- InboundsPage.vue: opens both modals from the row action menu
  (`addClient` / `addBulkClient`). They both refresh the inbound list
  on success.
- Outstanding row actions still toast as "coming soon": qrcode,
  showInfo, copyClients, clipboard. Those land in 5f-v / 5f-vi.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 13:47:04 +02:00
..
ClientBulkModal.vue feat(frontend): Phase 5f-iv — client add/edit + bulk-add modals 2026-05-08 13:47:04 +02:00
ClientFormModal.vue feat(frontend): Phase 5f-iv — client add/edit + bulk-add modals 2026-05-08 13:47:04 +02:00
InboundFormModal.vue feat(frontend): Phase 5f-iii — inbound add/edit modal + delete/clone/reset 2026-05-08 13:41:21 +02:00
InboundList.vue fix(inbounds): wrap popover-table rows in <tbody> 2026-05-08 13:36:24 +02:00
InboundsPage.vue feat(frontend): Phase 5f-iv — client add/edit + bulk-add modals 2026-05-08 13:47:04 +02:00
useInbounds.js feat(frontend): Phase 5f-i — inbounds page shell + list fetch 2026-05-08 13:28:15 +02:00