Allow re-copying invite configs and end-user server choice (v3.0.1).

Invite pages keep created configs for repeat copy; guest/invite can pick a server when enabled.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
orohimaru2
2026-08-09 18:31:46 +03:00
co-authored by Cursor
parent abbd160dd8
commit 3ea638d9c5
10 changed files with 610 additions and 163 deletions
+11
View File
@@ -174,6 +174,14 @@
<input class="form-input" type="text" id="inviteNote" placeholder="{{ _('invite_note_placeholder') }}">
</div>
<div class="form-group">
<label style="display:flex; align-items:center; gap:var(--space-sm); cursor:pointer;">
<input type="checkbox" id="inviteAllowServerChoice" checked>
{{ _('allow_server_choice') }}
</label>
<div class="form-hint">{{ _('allow_server_choice_hint') }}</div>
</div>
<div class="form-group" id="inviteResetUsedWrap" style="display:none;">
<label style="display:flex; align-items:center; gap:var(--space-sm); cursor:pointer;">
<input type="checkbox" id="inviteResetUsed"> {{ _('invite_reset_used') }}
@@ -355,6 +363,7 @@
document.getElementById('inviteNote').value = '';
document.getElementById('inviteClearPwdWrap').style.display = 'none';
document.getElementById('inviteResetUsedWrap').style.display = 'none';
document.getElementById('inviteAllowServerChoice').checked = true;
const serverSel = document.getElementById('inviteServer');
if (xuiConfigured && [...serverSel.options].some(o => o.value === 'xui')) serverSel.value = 'xui';
else if (serverSel.options.length) serverSel.selectedIndex = 0;
@@ -384,6 +393,7 @@
document.getElementById('inviteClearPassword').checked = false;
document.getElementById('inviteResetUsedWrap').style.display = 'block';
document.getElementById('inviteResetUsed').checked = false;
document.getElementById('inviteAllowServerChoice').checked = inv.allow_server_choice !== false;
setInviteSelection(inv.protocol || 'xui', inv.server_id || 0);
const panelSel = document.getElementById('inviteXuiPanel');
if (panelSel && inv.xui_panel_id && [...panelSel.options].some(o => o.value === inv.xui_panel_id)) {
@@ -417,6 +427,7 @@
xui_inbound_id: inbound,
xui_panel_id: document.getElementById('inviteXuiPanel')?.value || '',
note: document.getElementById('inviteNote').value || '',
allow_server_choice: document.getElementById('inviteAllowServerChoice').checked,
};
const pwd = document.getElementById('invitePassword').value;
if (pwd) body.password = pwd;