feat(admin): phase 4 — Cmd+K command palette

Global search modal: actions + users + tests + classes.

- GET /api/admin/search?q=X (~50L controller): 3 parameterized LIKE queries, admin-only

- frontend/js/admin/palette.js (~366L): custom lightweight modal (not LS.modal — footer-button oriented), Ctrl+K/Cmd+K capture-phase override of generic /js/search.js, debounce 150ms, race-guard via _reqSeq, min-query 2 chars, 8 hardcoded actions, ↑↓ wrap + Enter, click-outside close

- adminGlobalSearch helper: drop ignored 'limit' param (server hardcodes 5/3/3)

window.AdminPalette = { open, close, isOpen } exposed for Phase 5/6 use.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-16 23:39:59 +03:00
parent 41acbdd0d0
commit f562fe4a71
8 changed files with 471 additions and 16 deletions
+1
View File
@@ -15,6 +15,7 @@ router.use(requireRole('admin'));
router.get('/stats', ctrl.getStats);
router.get('/overview', ctrl.getOverview);
router.get('/search', ctrl.globalSearch);
router.get('/users', ctrl.getUsers);
router.patch('/users/:id/role', ctrl.updateRole);
router.get('/users/:id/sessions', ctrl.getUserSessions);