3x-ui/frontend/src/pages/inbounds
MHSanaei 5543466fcc
fix(forms): validate JSON tabs before applying or saving
InboundFormModal: switching out of the Advanced tab now parses the three
JSON textareas and rebuilds the structured Inbound via Inbound.fromJson,
so the Basic tab reflects what was pasted. Invalid JSON keeps the user
on Advanced with a specific parse error.

XrayPage: Save now parses xraySetting upfront and snaps the user back to
the Advanced tab on invalid JSON instead of letting the backend reject a
generic blob.
2026-05-13 19:01:12 +02:00
..
ClientBulkModal.vue feat(inbounds): bulk-select clients + UX polish 2026-05-11 03:50:28 +02:00
ClientFormModal.vue feat(xray/dns): align DNS settings with Xray docs + UI polish 2026-05-10 17:03:11 +02:00
ClientRowTable.vue fix: delete button missing after searching for a user (#4315) 2026-05-13 01:27:10 +02:00
CopyClientsModal.vue feat(inbounds): restore copy-clients-between-inbounds modal 2026-05-12 12:30:07 +02:00
InboundFormModal.vue fix(forms): validate JSON tabs before applying or saving 2026-05-13 19:01:12 +02:00
InboundInfoModal.vue feat(inbounds): bulk-select clients + UX polish 2026-05-11 03:50:28 +02:00
InboundList.vue fix(inbounds): hide node UI when no enabled node exists 2026-05-13 17:42:40 +02:00
InboundsPage.vue fix(inbounds): hide node UI when no enabled node exists 2026-05-13 17:42:40 +02:00
QrCodeModal.vue refactor(panel): rename injected globals + collapse QR modal entries 2026-05-10 23:40:39 +02:00
QrPanel.vue feat(frontend): swap QRious for ant-design-vue's a-qrcode 2026-05-11 02:07:47 +02:00
useInbounds.js feat(inbounds): bulk-select clients + UX polish 2026-05-11 03:50:28 +02:00