feat: ticket create - sub-server selector
- ticket-create.js: added 子服务器 dropdown (group/server from /polls/server-list, supports anonymous users), sends 'server' field - tickets.js POST: accept server param, resolve 'group/server' or alias/server_name from server_groups, store into tickets.server_name - polls.js: new public GET /server-list (group_name+server_name only, no auth required) for ticket create page - verified: 13 checks (frontend/backend/db/column/syntax)
This commit is contained in:
@@ -41,6 +41,17 @@ const TicketCreate = {
|
||||
}).catch(() => {});
|
||||
}
|
||||
|
||||
// 子服务器列表(server_groups: 分组/子服)
|
||||
this.servers = [];
|
||||
API.get('/polls/server-list').then(list => {
|
||||
this.servers = list || [];
|
||||
const sel = container.querySelector('#server-select');
|
||||
if (sel) {
|
||||
sel.innerHTML = '<option value="">不指定</option>' + this.servers.map(g =>
|
||||
`<option value="${U.escJs(g.group_name)}/${U.escJs(g.server_name)}">${U.esc(g.group_name)} / ${U.esc(g.server_name)}</option>`).join('');
|
||||
}
|
||||
}).catch(() => {});
|
||||
|
||||
container.innerHTML = `
|
||||
${hideTabs ? '' : `<div class="tab-nav" id="type-tabs">
|
||||
<button class="${isReport?'active':''}" data-type="report">举报</button>
|
||||
@@ -58,6 +69,11 @@ const TicketCreate = {
|
||||
<input name="title" required placeholder="${isReport ? '如:玩家破坏建筑' : isAppeal ? '如:申请解除封禁' : '如:增加领地保护功能'}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>子服务器</label>
|
||||
<select name="server" id="server-select"><option value="">不指定</option></select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>优先级</label>
|
||||
<select name="priority">
|
||||
|
||||
Reference in New Issue
Block a user