126 Commits

Author SHA1 Message Date
0fd004dd84 fix: result_appeal also uses appeal display logic in ticket detail 2026-07-12 17:35:23 +08:00
93382773e6 fix: add result_appeal badge CSS and export label 2026-07-12 17:34:58 +08:00
10b6ff94ed feat: admin complaint (owner only) + result appeal (one per ticket, owner only) 2026-07-12 15:19:09 +08:00
6657c05dec fix: add escJs for JS string escaping in onclick attributes, apply to users/templates/notifications 2026-07-12 13:09:52 +08:00
da5aa09421 fix: escape single quotes in U.esc to prevent onclick attribute injection 2026-07-12 13:09:10 +08:00
ea7a3c42be fix: escape notification name/url in edit modal to prevent HTML injection 2026-07-12 13:08:45 +08:00
34e821ff1d fix: canClaim logic - must be unassigned AND pending, not OR 2026-07-12 13:07:31 +08:00
c69ad2c36e fix: show appeal reason in ticket detail, correct description labels 2026-07-12 13:07:09 +08:00
4e66db0406 fix: dashboard uses Auth.isOwner for export endpoint, admin was getting 403 2026-07-12 13:06:36 +08:00
de1bca9d8a fix: client-side file size limit 20→50MB to match server 2026-07-12 13:03:46 +08:00
3ec9e80e0d fix: remove fragile setTimeout in confirm, bind handlers directly 2026-07-12 13:03:02 +08:00
62eeb61a71 fix: remove redundant min-height:100vh causing extra scrollbars in flex layout 2026-07-12 13:01:43 +08:00
82c2671149 fix: loadFooter only for admin, only once per session 2026-07-12 04:21:26 +08:00
f2fec8e609 fix: loadFooter after login, escape user-info, error handling on render 2026-07-12 03:16:02 +08:00
58df6c5268 fix: flexbox body layout for proper sticky footer, no scrollbar on public pages 2026-07-12 02:44:32 +08:00
50f3cace51 fix: move install check to init once, route() sync for instant nav, hide top-bar in admin 2026-07-12 02:40:08 +08:00
7699bd0598 fix: keep top bar visible, raise sidebar z-index to 210 to prevent overlap 2026-07-12 02:20:54 +08:00
9241dd6a6f fix: add appeal button, hide top bar when logged in so sidebar is clickable 2026-07-12 02:14:25 +08:00
f09a554ea3 fix: make LoginPage.render async to unify async render contract 2026-07-12 02:04:10 +08:00
989a3ae4cf feat: home page hash-based tab routing for shareable links 2026-07-12 01:53:59 +08:00
5bb2df7b52 fix: login broken by sync/async mismatch, register missing home link, top bar contrast 2026-07-12 01:50:17 +08:00
a4cee1c186 style: modern UI redesign - gradients, glassmorphism, animations, Inter font 2026-07-12 01:39:09 +08:00
a6058bf207 feat: top bar, footer, login/register buttons, ICP/copyright settings 2026-07-12 01:32:18 +08:00
e44ee885ca fix: add missing unclaimed.js and notifications.js script tags to index.html 2026-07-12 01:25:59 +08:00
e654339611 chore: remove stale files from v2 2026-07-12 01:23:35 +08:00
247a4e851d feat: MC Report System - MySQL + Express + Vanilla JS SPA 2026-07-12 01:23:19 +08:00