mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-17 07:37:15 +00:00
feat(sub): add dummy info node and status configs for subscriptions (#6412)
* feat(settings): add subInfoNodeEnable and status template settings * feat(sub): add dummy info node and status configs for raw links * feat(sub): support dummy info node in clash and json subscriptions * feat(ui): add subscription info node switch and status templates to settings * style: apply gofumpt formatting * fix(sub): address review feedback on subscription info node - Restore GetSubs contract to avoid unintended remark expansions on non-subscription-body calls. - Exclude dummy info node from Clash PROXY select group when active server nodes exist. - Track hasEnabledClient and set traffic.Enable in JSON and Clash paths so status tokens evaluate correctly. - Deterministically sort client emails across subscriptions before selecting primaryEmail. - Consolidate duplicated info-node evaluation logic into resolveInfoNodeRemark helper. - Remove redundant pure-getter test from setting_sub_info_node_test.go. Co-Authored-By: Claude Code <noreply@anthropic.com> --------- Co-authored-by: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -182,6 +182,41 @@ export default function SubscriptionGeneralTab({
|
||||
/>
|
||||
</SettingListItem>
|
||||
|
||||
<SettingListItem
|
||||
paddings="small"
|
||||
title={t('pages.settings.subInfoNodeEnable')}
|
||||
description={t('pages.settings.subInfoNodeEnableDesc')}
|
||||
>
|
||||
<Switch
|
||||
checked={allSetting.subInfoNodeEnable}
|
||||
onChange={(v) => updateSetting({ subInfoNodeEnable: v })}
|
||||
/>
|
||||
</SettingListItem>
|
||||
|
||||
<SettingListItem
|
||||
paddings="small"
|
||||
title={t('pages.settings.subExpiredTemplate')}
|
||||
description={t('pages.settings.subExpiredTemplateDesc')}
|
||||
>
|
||||
<RemarkTemplateField
|
||||
value={allSetting.subExpiredTemplate}
|
||||
onChange={(v) => updateSetting({ subExpiredTemplate: v })}
|
||||
maxLength={256}
|
||||
/>
|
||||
</SettingListItem>
|
||||
|
||||
<SettingListItem
|
||||
paddings="small"
|
||||
title={t('pages.settings.subTrafficDepletedTemplate')}
|
||||
description={t('pages.settings.subTrafficDepletedTemplateDesc')}
|
||||
>
|
||||
<RemarkTemplateField
|
||||
value={allSetting.subTrafficDepletedTemplate}
|
||||
onChange={(v) => updateSetting({ subTrafficDepletedTemplate: v })}
|
||||
maxLength={256}
|
||||
/>
|
||||
</SettingListItem>
|
||||
|
||||
<SettingListItem
|
||||
paddings="small"
|
||||
title={t('pages.settings.subUpdates')}
|
||||
|
||||
Reference in New Issue
Block a user