From e9ef4255456415388555d6256466fb2411d3eee5 Mon Sep 17 00:00:00 2001 From: canglan Date: Thu, 16 Jul 2026 23:47:24 +0800 Subject: [PATCH] fix: simplify player ticket list - hide type/priority/tab filters --- public/js/pages/tickets.js | 42 +++++++++++++++----------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/public/js/pages/tickets.js b/public/js/pages/tickets.js index 7c99693..aee8cea 100644 --- a/public/js/pages/tickets.js +++ b/public/js/pages/tickets.js @@ -18,16 +18,14 @@ const TicketsPage = { const ct = document.getElementById('page-content'); const isStaff = Auth.isAdmin(); ct.innerHTML = ` -
+ ${isStaff ? `
- + - ${Auth.user().role === 'player' ? '' : ''} -
+
` : ''}
- + ${isStaff ? `` : ''} - @@ -35,14 +33,16 @@ const TicketsPage = {
`; - document.querySelectorAll('#ticket-tabs button').forEach(btn => { - btn.onclick = () => { - document.querySelectorAll('#ticket-tabs button').forEach(b => b.classList.remove('active')); - btn.classList.add('active'); - this.tab = btn.dataset.tab; - this.loadTab(this.tab); - }; - }); + if (document.getElementById('ticket-tabs')) { + document.querySelectorAll('#ticket-tabs button').forEach(btn => { + btn.onclick = () => { + document.querySelectorAll('#ticket-tabs button').forEach(b => b.classList.remove('active')); + btn.classList.add('active'); + this.tab = btn.dataset.tab; + this.loadTab(this.tab); + }; + }); + } }, async loadTab(tab) { @@ -52,20 +52,11 @@ const TicketsPage = { const params = new URLSearchParams(); if (this.filters.type) params.set('type', this.filters.type); if (this.filters.status) params.set('status', this.filters.status); - if (this.filters.priority) params.set('priority', this.filters.priority); - if (this.filters.search) params.set('search', this.filters.search); - if (tab === 'pending') params.set('claimed', '0'); else if (tab === 'claimed') params.set('claimed', '1'); - else if (tab === 'mine') params.set('status', ''); - + if (this.filters.search) params.set('search', this.filters.search); const qs = params.toString(); const tickets = await API.get('/tickets' + (qs ? '?' + qs : '')); - - if (tab === 'mine') { - this.renderList(list, tickets); - return; - } this.renderList(list, tickets); } catch (e) { list.innerHTML = `
${e.message}
`; } }, @@ -92,9 +83,8 @@ const TicketsPage = { applyFilters() { this.filters = { - type: document.getElementById('ft-type').value, + type: document.getElementById('ft-type')?.value, status: document.getElementById('ft-status').value, - priority: document.getElementById('ft-priority').value, search: document.getElementById('ft-search').value, }; this.loadTab(this.tab);