mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-05 12:44:22 +00:00
ClientInfoModal — Copy URL section reskinned:
- Each link is a single row: [PROTOCOL] [remark] [copy] [QR]
instead of a card with the raw 200-char URL printed inline
- Remark is parsed per-protocol — VMess pulls it from the
base64-JSON `ps` field, the rest from the `#fragment`
- The row title strips the client email suffix so the same
string isn't repeated three times in the modal; the QR
popover still uses the full remark (it's the QR's own name
for the download file)
- QR button opens an inline Popover with the existing QrPanel,
size 220, destroyed on close
- Subscription section uses the same row layout (SUB / JSON
tags, clickable subId, copy + QR actions)
- New per-protocol Tag colors so the protocol is identifiable
at a glance
ClientInfoModal — Attached inbounds + ClientsPage table column:
- Chip format changed from `${remark} (${proto}:${port})` to
just `${proto}:${port}` — when an admin attaches 5 inbounds
to one client the remark was repeated 5 times and wrapped onto
two lines
- Only the first inbound chip is shown; the rest collapse into
a `+N` chip that opens a Popover with the full list (remark
included). INBOUND_CHIP_LIMIT = 1
- Per-protocol Tag colors
- Tooltip on each chip shows the full `${remark}
(${proto}:${port})`
- Table column pinned to width: 170 so the row doesn't reserve
the old 300px of whitespace next to the compact chip
Comment row in the info table is always shown now (renders `-`
when unset) so the layout doesn't jump per-client.
VmessSecuritySchema gets a preprocess pass that maps legacy
`security: ""` (persisted on pre-enum-lock VMess inbounds) back
to `'auto'`. z.enum's `.default()` only fires on a missing
field, not on an empty string — without this, old rows fail
validation with "expected one of aes-128-gcm|chacha20-poly1305|
auto|none|zero". `z.infer` is taken from the raw enum so the
inferred type stays the union, not `unknown`.
i18n adds a `more` key (en-US + fa-IR) used by the overflow
chip label.
|
||
|---|---|---|
| .. | ||
| controller | ||
| entity | ||
| global | ||
| job | ||
| locale | ||
| middleware | ||
| network | ||
| runtime | ||
| service | ||
| session | ||
| translation | ||
| websocket | ||
| web.go | ||