3x-ui/web/html
MHSanaei aaaa1a015f
feat(frontend): migrate subpage.html to Vue 3 SPA
The subscription info page was the last page still rendered by Go
templates. Move it to the Vite multi-page setup so the whole panel
loads through one toolchain.

Frontend: SubPage.vue mounts at /sub/<id>?html=1 and reads window.__SUB_PAGE_DATA__
for the parsed view-model (traffic / quota / expiry + rendered share
links). Fix descriptions borders against the light-theme card by
painting the row divider on each cell's bottom edge — AD-Vue's <tr>
border doesn't render reliably under border-collapse:collapse.

Backend: serveSubPage reads dist/subpage.html, injects
window.__X_UI_BASE_PATH__ + window.__SUB_PAGE_DATA__ before </head>,
and rewrites Vite's absolute /assets/ URLs when the panel runs under
a URL prefix. Drop the legacy template-FuncMap wiring and switch the
sub server's static mount from web/assets to web/dist/assets.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 19:44:50 +02:00
..
common Implement CSRF protection and security hardening across the application (#4179) 2026-05-07 23:36:11 +02:00
component fix design 2026-05-06 17:12:08 +02:00
form refactor(fallbacks): share template, tighter UX, cleaner JSON 2026-05-07 20:27:34 +02:00
modals fix(warp): harden API client and frontend, bump to v0a4005 2026-05-08 09:29:42 +02:00
settings feat(frontend): migrate subpage.html to Vue 3 SPA 2026-05-08 19:44:50 +02:00
inbounds.html fix: filter view in mobile 2026-05-06 14:45:46 +02:00
index.html feat(custom-geo): refresh index UI 2026-05-08 10:09:33 +02:00
login.html fix(security): sanitize remote IP headers and escape log viewer output 2026-05-04 16:39:29 +02:00
settings.html fix(security): sanitize remote IP headers and escape log viewer output 2026-05-04 16:39:29 +02:00
xray.html outbound: mobile style 2026-05-06 13:27:40 +02:00