From 2e3b7e29a9e5a598249db23be5f35877d55b6344 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Fri, 8 May 2026 21:53:20 +0200 Subject: [PATCH] fix(frontend): xray Advanced tab parity + finalmask gating MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Advanced tab was a single textarea bound to the full xraySetting blob. Restore the legacy 4-way view: a radio group toggles between All / Inbounds / Outbounds / Routing Rules, and the textarea reads/writes the matching slice through templateSettings. Added the legacy header ("Advanced Xray Configuration Template" + description) so the page introduces itself like main. Outbound finalmask leaked into protocols that don't have a stream (Freedom / Blackhole / DNS / Socks / HTTP / Wireguard) because the v-if only checked outbound.stream. Gate the whole FinalMaskForm on outbound.canEnableStream() to match main. Drop the leading divider inside FinalMaskForm — its parent already provides separation, so the rule above "TCP Masks" was redundant. Co-Authored-By: Claude Opus 4.7 --- frontend/src/components/FinalMaskForm.vue | 2 - frontend/src/pages/xray/OutboundFormModal.vue | 9 +- frontend/src/pages/xray/XrayPage.vue | 85 ++++++++++++++++--- 3 files changed, 83 insertions(+), 13 deletions(-) diff --git a/frontend/src/components/FinalMaskForm.vue b/frontend/src/components/FinalMaskForm.vue index 23856b90..9613ae06 100644 --- a/frontend/src/components/FinalMaskForm.vue +++ b/frontend/src/components/FinalMaskForm.vue @@ -72,8 +72,6 @@ function newNoiseItem() { :label-col="{ md: { span: 8 } }" :wrapper-col="{ md: { span: 14 } }" > - -