3x-ui/frontend/src/pages/clients
MHSanaei fc8765917e
feat(inbounds,clients): clean up inbound modal + enrich client modal
Inbound modal rework (InboundFormModal.vue + inbound.js):
- Drop the embedded Client subform in the Protocol tab. Multi-inbound
  clients are managed exclusively from the Clients page now; a fresh
  inbound is created with zero clients (settings constructors default
  to []) and the user attaches clients afterwards.
- Hide the Protocol tab entirely when it has nothing to render
  (VMESS, Trojan without fallbacks, Hysteria). Auto-switches active
  tab to Basic when the tab disappears while focused.
- Move the Security section (Security selector + TLS block with certs
  and ECH + Reality block) out of the Stream tab into its own
  Security tab, sharing the canEnableStream gate.

Client modal additions (ClientFormModal.vue + ClientBulkAddModal.vue):
- Flow select (xtls-rprx-vision / -udp443) appears only when the
  panel actually has a Vision-capable inbound (VLESS or PortFallback
  on TCP with TLS or Reality). Hidden otherwise, and cleared when
  it disappears.
- IP Limit input is disabled when the panel-level ipLimitEnable
  setting is off, fetched into useClients alongside subSettings and
  threaded through ClientsPage to both modals.
- Edit modal now shows an "IP Log" section listing IPs that have
  connected with the client's credentials, with refresh and clear
  buttons (calls the renamed /panel/api/clients/ips and /clearIps
  endpoints).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 11:53:27 +02:00
..
ClientBulkAddModal.vue feat(inbounds,clients): clean up inbound modal + enrich client modal 2026-05-17 11:53:27 +02:00
ClientFormModal.vue feat(inbounds,clients): clean up inbound modal + enrich client modal 2026-05-17 11:53:27 +02:00
ClientInfoModal.vue refactor(api): move every client-shaped endpoint off /inbounds onto /clients 2026-05-17 10:15:01 +02:00
ClientQrModal.vue refactor(api): move every client-shaped endpoint off /inbounds onto /clients 2026-05-17 10:15:01 +02:00
ClientsPage.vue feat(inbounds,clients): clean up inbound modal + enrich client modal 2026-05-17 11:53:27 +02:00
useClients.js feat(inbounds,clients): clean up inbound modal + enrich client modal 2026-05-17 11:53:27 +02:00