3x-ui/frontend/src
MHSanaei e9fce827ac
feat(clients,inbounds): move search/filter to Clients page + small fixes
Search/filter relocation:
- Remove the search/filter toolbar (search switch + filter radio +
  protocol/node selects + the visibleInbounds projection +
  inboundsFilterState localStorage + filter CSS + the SearchOutlined/
  FilterOutlined/ObjectUtil/Inbound imports it required) from
  InboundList. The filters were all client-oriented buckets bolted
  onto the inbound row.
- Add a search/filter toolbar to ClientsPage with the same shape:
  switch between deep-text search and bucket filter (active /
  deactive / depleted / expiring / online) + protocol filter that
  matches clients attached to at least one inbound with the chosen
  protocol. State persists in clientsFilterState localStorage.
  filteredClients drives both the desktop table and the mobile card
  list, and select-all / allSelected / someSelected only span the
  visible subset.
- useClients now also fetches expireDiff and trafficDiff from
  /panel/setting/defaultSettings (used to detect the expiring
  bucket); ClientsPage threads them into the client-bucket helper.

Loose fixes folded in:
- Add Client: email field is auto-filled with a random handle on
  open, matching uuid/subId/password/auth.
- Inbound clone: parse and reuse the source settings JSON (with
  clients reset to []) instead of building a fresh defaulted
  Settings, so VLESS Encryption/Decryption and other non-client
  fields survive the clone.
- en-US.json: add the ipLog string used by the edit-client modal.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 12:37:05 +02:00
..
api feat(clients): add top-level Clients tab and CRUD API 2026-05-17 07:28:55 +02:00
components feat(clients): add top-level Clients tab and CRUD API 2026-05-17 07:28:55 +02:00
composables fix(inbounds): hide node UI when no enabled node exists 2026-05-13 17:42:40 +02:00
entries feat(clients): add top-level Clients tab and CRUD API 2026-05-17 07:28:55 +02:00
i18n fix: split locale chunks by removing eager i18n glob 2026-05-15 10:50:40 +02:00
models feat(inbounds,clients): clean up inbound modal + enrich client modal 2026-05-17 11:53:27 +02:00
pages feat(clients,inbounds): move search/filter to Clients page + small fixes 2026-05-17 12:37:05 +02:00
utils feat(ui): use the host as the browser tab title prefix 2026-05-13 14:23:57 +02:00