feat(admin): phase 2 — split admin.js into 13 section modules

Replace ~3500L admin.js monolith with thin orchestrator (~700L) +

14 IIFE-wrapped per-section modules under /js/admin/sections/.

Section modules expose AdminSections.<name>.init/reload (lazy init via

switchTab/router) and re-expose onclick handlers via window.X for

backward compat. Shared helpers (MODES/DIFFS, fmtDate, pctClass,

renderMath, qTypeBadge, pagination) live in /js/admin/_shared.js

exposed on window.AdminCtx.

switchTab now dispatches to AdminSections via ROUTE_TO_SECTION map;

non-extracted system tabs (topics/audit/errors/health/classroom/avatars)

remain inline in admin.js. user-panel overlay markup untouched — Phase 6

will remove it.
This commit is contained in:
Maxim Dolgolyov
2026-05-16 22:50:14 +03:00
parent 8a7bed487f
commit 92030b462c
17 changed files with 3877 additions and 3553 deletions
+15
View File
@@ -1982,6 +1982,21 @@
<script src="/js/api.js"></script>
<script src="/js/sidebar.js"></script>
<script src="/js/admin/router.js"></script>
<script src="/js/admin/_shared.js"></script>
<script src="/js/admin/sections/stats.js"></script>
<script src="/js/admin/sections/sublog.js"></script>
<script src="/js/admin/sections/sims.js"></script>
<script src="/js/admin/sections/games.js"></script>
<script src="/js/admin/sections/tpl.js"></script>
<script src="/js/admin/sections/subjects.js"></script>
<script src="/js/admin/sections/permissions.js"></script>
<script src="/js/admin/sections/shop.js"></script>
<script src="/js/admin/sections/gam.js"></script>
<script src="/js/admin/sections/assignments.js"></script>
<script src="/js/admin/sections/tests.js"></script>
<script src="/js/admin/sections/questions.js"></script>
<script src="/js/admin/sections/users.js"></script>
<script src="/js/admin/sections/sessions.js"></script>
<script src="/js/admin/admin.js"></script>
</div>
</div>